| Name (Title) | Cloud Application Static Image Compute Provisioning |
|---|---|
| Description | Simple provisioning of new subscriber compute resources into the cloud |
| Alias | image provisioning, static provisioning, Deploy Everything as an Image or Golden Image |
| Intent | This pattern deploys previously constructed and configured server images (includes OS kernel, packages, agents, etc based on standard operating system deployment pattern (or SOE, standard operating environment model) into the cloud with minimal customisation. It is useful when the application requires few images and the code base is relatively static. Desire to get a OS deployed and configured on server so it can run applications |
| Motivation | This pattern is needed for applications with low complexity or where there are few programming/script skills available. Based on a golden (virtual) image(s), this method is easy to manage and deploy as it integrates well into existing management processes. |
| Applicability | This pattern is useful when little customization is needed and the application changes infrequently. It is especially useful for appliances. It is inappropriate for architectures with rapid software lifecycles (image creation can become burdensome and inhibit provisioning). It is also inappropriate for architectures that require the ability to change running images, as this is not automated in this pattern. |
| Structure | This diagram hides most of the cloud provider complexity (such as resource allocation, interaction with the image catalogue, etc) as it is hidden from the application deployer. |
| Participants |
|
| Collaboration |
|
| Consequences |
|
| Implementation | This is a very simple example in Ruby on Amazon's EC2 service: #!/usr/bin/env ruby require 'rubygems' require 'ec2' ACCESS_KEY_ID = ENV['AWS_KEY_ID'] SECRET_ACCESS_KEY = ENV['AWS-SEKRIT-ACCESS-KEY'] IMAGE_ID = 'ami-018e6b68' # identifies image to be launched ec2 = EC2::Base.new( :access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY) # creates connection to cloud ec2.run_instances( :image_id => IMAGE_ID, :min_count => 1, :max_count => 5, :key_name => nil, :group_id => [], :user_data => nil, :addressing_type => "public", :instance_type => "m1.small", :availability_zone => nil) # launches 1 to 5 small instances of IMAGE_ID |
| Known uses | This pattern is used extensively outside of cloud computing: VMware, OpsCenter, Norton Ghost, etc. |
| Related patterns | Pull provisioning, Push provisioning |
| Author | Ken Pepple <ken.pepple at sun dot com>, Jason Carolan <jason.carolan at sun dot com> |
| Reviewer | John Stanford <john dot stanford at sun dot com> |
