...
Also manages external storage.
Virtualization manager (
...
virtual factory remote service)
This is the common layer to unify and manage the virtualization capabilities of each hypervisor type. Manages the life cycle of the VMs and network and storage configuration for VMs. Job requests and responses are submitted via message queues (RabbitMQ) with an actor-based model using Akka.
...
For example, when deploying a virtual appliance. There are two independent and concurrent tasks: deploy VM 1 and deploy VM 2. Within each task there are two dependent jobs: Configure and Power on.
Inside the
...
virtual factory
The components of the virtual factory and their basic functions are as follows.
- Queue Managermanager: handles incoming queue messages
- Task Orchestratororchestrator: decides when to send a job
- Virtualization Workerworker: executes the VM operation
...
Task orchestrator
- Receives Task Messagestask messages
- saves the current task message
- saves a map of task IDs to jobs IDs
- if it's a sequential task, send the first job to a VW
- it it's a concurrent task, send all the jobs to many VWs
- if the job being sent is a task, send to itself
- Receives Job Resultsjob results
- notify end of job to the outgoing AMQP queue
- check if the task is completed, then check if it should notify itself or the Queue Manager
- if not completed and a sequential task, send the next job
- Receives Task Resultstask results
- only intermediate task results, because task is also a job.
- perform the same logic as a Job Result
Virtualization worker
- Receives Job Messagesjob messages
- create a new instance of Hypervisor Connection and perform the VM operation
- send back a Job Result when it's done