Home > Design Patterns > Rapid Provisioning
Rapid Provisioning

Rapid Provisioning (Erl, Naserpour)

How can the provisioning of IT resources be automated and made available to cloud consumers on-demand?

Problem

When a cloud consumer chooses what IT resources it would like to lease, having the actual provisioning of these IT resources performed manually can require too much time and human interaction to be sufficiently effective and responsive.

Solution

A system can be established to execute and coordinate the automation of a range of provisioning tasks and processes.

Application

Complex auto-provisioning systems can be assembled, each generally comprised of a rapid provisioning engine and an automated provisioning program.

Problem

A conventional provisioning process can involve a number of tasks that are traditionally completed manually by administrators and technology experts that prepare the requested IT resources as per pre-packaged specifications or as per custom client requests. In cloud environments, where higher volumes of customers are serviced and where the average customer requests higher volumes of IT resources, manual provisioning processes are inadequate and can even lead to unreasonable risk due to uncompetitive response times and human error.

For example, consider a cloud consumer that requests twenty-five Windows servers be installed, configured and updated, along with some applications. Half of the applications are to be identical installations while the other half need to be customized. In this scenario, each deployment of the operating system can take 30 minutes, followed by additional time and effort to apply necessary security patches and operating system updates (several of which may require server reboots). Finally, the applications need to be deployed and configured. A manual or semi-automated approach to this project will require an extended amount of time and will introduce a reasonable chance of human error contributing to mistakes in one or more of the new server installations.

Solution

A sophisticated system is introduced to enable the automation of the provisioning of a wide range of IT resources, individually or together. The system relies on an automated provisioning program, a rapid provisioning engine, along with scripts and templates to allow for IT resources to be provisioned on-demand, at the time when the cloud consumer requests the IT resources via a self-service portal.

Application

The application of this pattern can vary, depending on the types of IT resources that need to be rapidly provisioned. A multitude of individual components are available to coordinate and automate various aspects of IT resource provisioning. The assembly of these components comprises a large part of the resulting cloud architecture.

Components that can comprise the system include:

  • Server Templates - Templates of virtual image files used for automating the instantiation of new virtual servers.
  • Server Images - Similar to server templates, but used for provisioning physical servers instead.
  • Application Packages - Collections of applications and other software that is packaged for automated deployment.
  • Application Packager - The software used to create application packages.
  • Custom Scripts - Scripts that automate administrative tasks, as part of an intelligent automation engine.
  • Sequence Manager - A program used to organize sequences of automated provisioning tasks.
  • Sequence Logger - A component that logs the execution of automated provisioning task sequences.
  • Operating System Baseline - A configuration template applied after the operating system is installed to quickly prepare it for usage.
  • Application Configuration Baseline - A configuration template with settings and environment parameters needed to prepare new applications for usage.
  • Deployment Data Store - The repository that stores virtual images, templates, scripts, baseline configurations and other related data.

The system produced by the application of this pattern is typically further integrated with the self-service portal resulting from the Self-Provisioning pattern as well as various scripts and the use of the intelligent automation engine, as part of the application of the Automated Administration pattern.

The various artifacts used to establish the provisioning systems are typically stored within a deployment repository supplied by the cloud provider.

Rapid Provisioning: The cloud provider creates a deployment repository that stores system components.

Figure 1 - The cloud provider creates a deployment repository that stores system components.

Rapid Provisioning: A sample cloud architecture resulting from the application of the Rapid Provisioning pattern.

Figure 2 - A sample cloud architecture resulting from the application of the Rapid Provisioning pattern.

  1. A cloud consumer requests a new cloud services through the self-service portal.
  2. The self-service portal passes the request to the automated service provisioning program.
  3. The automated service provisioning program passes the necessary tasks to be carried out to the rapid provisioning engine.
  4. The rapid provisioning engine announces when the new cloud service is ready.
  5. Once available, the automated service provisioning program finalizes the cloud service and publishes it on the usage and administration portal from where the cloud consumer can access it.

The preceding example is significantly simplified. The following step-by-step descriptions provide better insight into the mechanics behind a typical rapid provisioning engine. This scenario involves a number of the previously listed system components.

  1. A cloud consumer requests a new server through the self-service portal.
  2. The sequence manager forwards the request to the deployment engine for an operating system to be prepared.
  3. If the request is for building a virtual server, then the deployment engine uses the virtual server templates for provisioning. Otherwise, the deployment engine sends the request to provision a physical server.
  4. If there was an already pre-defined image for the type of operating system requested, then it will be used for the provisioning of the operating system. Alternatively, the regular deployment process will be followed to install the operating system.
  5. When the operating system is ready, the deployment engine informs the sequence manager.
  6. The sequence manager updates the logs and sends them to the sequence logger for storage.
  7. The sequence manager requests that the deployment engine apply the operating system baseline to the provisioned operating system.
  8. The deployment engine applies the requested operating system baseline.
  9. The deployment engine informs the sequence manager that operating system baseline is applied.
  10. The sequence manager updates and sends the logs of past steps to the sequence logger for storage.
  11. The sequence manager requests that the deployment engine install the applications. (There may be more than one application which the sequence manger provides in its list.)
  12. The deployment engine deploys the applications on the provisioned server.
  13. The deployment engine informs the sequence manager that the applications have been installed.
  14. The sequence manager updates and sends the logs of past steps to the sequence logger for storage.
  15. The sequence manager requests that the deployment engine apply the application's configuration baseline.
  16. The deployment engine applies the application's configuration baseline.
  17. The deployment engine informs the sequence manager that the application configuration has been applied.
  18. The sequence manager updates and sends the logs of past steps to the sequence logger for storage.

NIST Reference Architecture Mapping

This pattern relates to the highlighted parts of the NIST reference architecture, as follows:

Rapid Provisioning: NIST Reference Architecture Mapping
Rapid Provisioning: NIST Reference Architecture Mapping
CloudSchool.com Cloud Certified Professional (CCP) Module 4: Fundamental Cloud Architecture

This pattern is covered in CCP Module 4: Fundamental Cloud Architecture.

For more information regarding the Cloud Certified Professional (CCP) curriculum, visit www.cloudschool.com.