VMWeb Front-End
Download
Report
Transcript VMWeb Front-End
Milestone V
Team Members:
Matthew Fusaro
Ryan McGivern
Brendan Heckman
Back-End Features
Java based engine to control VMware hosts and
virtual machines.
Consists of a Job Checker, Scheduler, MySQL
Database Module, and Worker Threads.
Completely configurable: uses one central
configuration file to specify several run time
options.
Can run N-many jobs against a physical host
where N is how many threads the administrator
wants to allow to run.
VMweb In Your Datacenter
Control your VMware virtual machines using an
intuitive web based control panel.
Elminate the need for installable, Windows-only
clients.
Back-End is compatible with any front-end
application.
Simple extensions can allow an administrator to
control hundreds of hosts and even more virtual
machines.
Point it at a VirtualCenter server or an individual
host.
Back-End Technicals
Typical usage implies that comodity hardware is
suitable for running this application.
Test-bed used 6GB Ram, WAN connections, and
2.4Ghz Dual Core machine.
Special care was taken to make all shareable
objects thread safe such as all queues and
Connection objects.
Can be separated from other components as to
help with load and redundancy.
VMWeb Front-End
What have we built?
A light-weight, extensible web application
Display and operate on all ESX hypervisor entities
Using...
Catalyst web framework
Perl Object-Relational-Mapping (ORM) technology
Model-View-Controller
Layer of abstraction over database --> Results sets
Thin controller-fat model
Maintain user context ($c)
Efficiently integrate user action with model operations
Front-End Continued...
Installation
Copy application directory to host.
Perl MAKEFILE.pl (top-level)
Installs catalyst web framework
All Perl dependancies
Powering it on...
Script directory
vmweb_server.pl
Front-End Bug
One transient issue...
Main menu sometimes truncates for no apparent
reason.
Never consistent for entire session
Possible Front-End Extensions
Rule-based job scheduling
Console view for virtual machines
Smart phone extension
Catalyst facilitates JSON/XML/etc as views
Therefore we can send/receive same content
Render data on smart-phone device
Extend to support multiple hosts
Currently only limited by development
environment
Basic Layout
System interface consists of a set of UI screens
and actions accessible to the user.
Interfaces availible are...
Login Screen
VMWeb Dashboard
Inventory Item View
Job History View
System Login Screen
Login Bar
Users must enter their user-name and
corresponding password to access the
system.
Users can logout by selecting the logout
option shown below.
VMWeb Dashboard
Inventory View
Users can select hosts as well as their respective VM's from the
Inventory pull down menu.
Upon selecting either a host or a VM you will be brought to the
Inventory view shown below.
Most functions will bring the user to the Job History table to view
the jobs status
Others will have Inventory sub-views to be shown in the demo.
Job History View
Here users can view information about all jobs that have been processed on
the system.
Includes TaskID, Name, Description, Progress, Start/end times, etc.
Backend Implementation (Matt and Brendan)
Milestone
Project Component
1
2
3
4
5
Setup a VMWare ESX server
I
C
-
-
-
Setup SVN
I
C
-
-
-
Prep a server to run vmweb backend and host the Web Interface
I
C
-
-
-
Build stubs, create packages from VMWare provided API and import these into our development
environment
I
C
-
-
-
Establish a session with the ESX box over HTTPS using SOAP
I
C
-
-
-
I
C
-
-
-
I
P
P
C
-
I
I
P
C
-
Develop functions that will abstract the tedious SQL statements out of the functional code
I
I
P
C
-
Create a task tracking module to update progress on requested jobs from the front-end
I
I
P
P
C
Make a scheduler that will take jobs destined for the ESX server and serialize them as to not do out
of order execution of requested actions.
I
I
P
C
-
Time permitting; add ability to create new virtual machines.
I
I
I
I
I
Decide upon utility functions which are most relevant and achievable during the scope if this project
I
P
P
C
-
Implement utilities relevant to the Host machine
I
P
P
C
-
Implement utilities relevant to the Resource Pool
I
P
P
C
-
Implement utilities relevant to the Virtual Machines
I
P
P
C
-
Create objects that will mimic the important entities in vmware (such as virtual machine, host, task)
these will be represented as Object Classes in java.
Develop functions that will query the object structures on the ESX server and return the properties
we are looking for.
Take the returned "Inventory" and instantiate the mimicked objects with the data. These objects will
be used to enter data into the MySQL database.
Front-end Implementation (Ryan)
Project Component
Milestone
1
2
3
4
5
Initialize Project Skelton
I
C
-
-
-
Install Perl
I
C
-
-
-
Install Catalyst Web-Application Framework
I
C
-
-
-
Initialize Application Directory
I
P
C
-
-
Install Perl Module Dependencies
I
C
-
-
-
Include JavaScript framework
I
I
P
C
-
Implement Authentication Module
I
C
-
-
-
Design Authentication DB Schema
I
C
-
-
-
Create Authentication DB
I
C
-
-
-
Create Model for Authentication DB
I
C
-
-
-
Implement UI for login
I
P
C
-
-
Enable model in authentication controller
I
P
C
-
-
Implement Inventory Module
I
P
C
-
-
Create Model for Inventory DB
I
P
C
-
-
Implement UI for Inventory
I
I
I
I
P
I
I
P
C
P
I
P
C
I
C
C
-
Implement Task Module
Implement CRUD functions for Tasks
Implement UI for Adding Tasks