Provisioning of Virtual Machine instances and services
Problem
The service management interface must provide the ability to dynamically provision VM instances and services such as load balancing, message queues, etc. consistently, reliably and on demand.
Solution
Provide capabilities to:
- Provision from a pool of pre-launched standard VMs managed by a VM pool manager.
- Launch an instance by selecting an image that meets the configuration requirements
- Build an image from a blueprint, inject configuration requirements and launch it
- Build a blueprint from a set of requirements not available in the above
A catalog of available images and blueprints should be accessible to the “provisioner” (e.g., auto-scale, human, …) . VM pool manager must be able to advertise the list of available instances in the pool.
Application
- Provisioning of instances and services on demand to meet dynamic scaling requirements
- Provisioning of instances and services to build a new cloud environment
Impacts
- Provisioning from a pool may lock resources
- Provisioning from images may lock disk space and have some instance spinning time
- Provisioning from blueprints or custom may incur noticeable times in spinning new instances
Anti-Patterns
- Pre-provision all instances and services and scale manually during maintenance down-times and upgrade schedules
Related Patterns
- As-a-Service Pattern
- Auto Scale Pattern
- VM Factory Pattern
- VM Pool Manager



