15

Click here to load reader

Cloud Deployment Problems

Embed Size (px)

DESCRIPTION

Cloud group, Moscow, march 2012 presentation slides

Citation preview

Page 1: Cloud Deployment Problems

Deployment and Cloudsproblems and solutions

Page 2: Cloud Deployment Problems

Deployment tools for the pre-cloud age

● push approach○ Fabric○ Capistrano○ MCollective○ Puppet

● pull approach○ Chef○ Puppet

● push approach is good for deployment from scratch● pull approach is good for continuous support for existing

environment

Page 3: Cloud Deployment Problems

Push approach

Host

Host

Host

Deployment script

Deployment manager

SSH

Page 4: Cloud Deployment Problems

Pull approach

Agent

Agent

Agent

Deployment state

Master

Page 5: Cloud Deployment Problems

Differences between traditional and cloud deployment

● Traditional deployment○ Resources in form of servers is already available

with OS and remote administration tools already installed

● Cloud deployment○ Resources in form of VMs, DB schemas, NoSQL

storages should be requested during deployment process

○ Additional hardware resources can be requested and freed during environment lifetime

○ Cloud deployment usually manages larger amounts of resources (especially during load spikes)

Page 6: Cloud Deployment Problems

Problems of the traditional tools in cloud environments

● No support for cloud resource provisioning as part of the deployment

● Cloud and local resources are managed by different tools

● Deployment tools do not take lesser stability of cloud environment into the account

● Additional features of cloud environments (golden images etc.) are not supported

Page 7: Cloud Deployment Problems

● And is not supported by traditional deployment tool

● Pull approach is not suitable for resource provisioning

● VMs is not the only type of resource, service instances (e. g. DB schemas) are also possible types of resources

● The popular approach is to use two separate tools: one tool for deployment and another tool for resource provisioning (e.g. AWS CloudFormation and Puppet)

Resource provisioning is not a part of the deployment process

Page 8: Cloud Deployment Problems

Local and cloud resources are managed differently

● Local virtualization systems and public clouds provide different API and management tools

● Local services (e.g. DBs, NoSQL storages) require explicit actions to be installed and started while cloud service instances are created via cloud API

● There is no single place to search for a resource of the particular environment

Page 9: Cloud Deployment Problems

Local DC

Hybrid environment

VM DBaaSVM

VMVMDeployment

managerDeployment

state

Page 10: Cloud Deployment Problems

Lesser stability of cloud environment is not taken into the

account

● Request to create several hundred of VMs is not unusual for the cloud environment

● Recoverable resource provisioning failures are not uncommon

● There is no need to redeploy hundreds of environment VMs if one is failed

Page 11: Cloud Deployment Problems

Cloud oriented deployment tools

● PaaS● Juju● Pallet● Knife cloud instances

Page 12: Cloud Deployment Problems

Chef knife cloud instances

● Also was known as chef bootstrap● Prepares cloud VM instance with Chef

support● Assigns a role to newly created VM● Initiates execution of recipes associated with

VM role○ Chef server is required to download recipes

knife ec2 server create -r "role[webserver]" -I ami-2d4aa444 --flavor m1.small -G www,default -x ubuntu -N server01

Page 13: Cloud Deployment Problems

Pallet

● Resource provisioning is part of the deployment

● Is similar to fabric or capistrano but it allows to request cloud resources using special commands

● Deployment process is defined as the set of actions

○ Action set is defined as the closure script

Page 14: Cloud Deployment Problems

Juju

● A single unit of management is service, e.g. web server or DB

● Required resources are requested automatically on the cloud during the service creation

juju bootstrapjuju deploy local:oneiric/mysqljuju deploy local:oneiric/wordpressjuju add-relation wordpress mysqljuju expose wordpress

Page 15: Cloud Deployment Problems

Platform as a Service (PaaS)

● NoOPS: deployment of application and services is done by PaaS itself

● User works with PaaS API instead of the remote administration tools of OS

● High-level logic of PaaS service management is still required○ e.g. AWS CloudFormation

● PaaS examples○ Heroku○ Cloud Foundry○ Google AppEngine