Quality control in a cloudy world

Post on 19-Oct-2014

470 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation given with co-presenter Alex Heneveld at the Cloudstack Collaboration Conference, Nov 30, 2012

Transcript

Quality Control in a Cloudy World CloudStack Collaboration Conference

Cloud is cool but …

•  How do you determine whether a cloud is suitable for your workload?

•  How do you validate that it works as advertised?

•  How do you ensure no short cuts have been taken implementing it?

•  Whatever your particular cloud strategy – private, public or hybrid – these are serious questions

•  Ones that you should address before you step off the kerb

•  It’s all about the application, stoopid!!!

30/11/2012 © 2012 Cloudsoft Corporation Page: 2

Commercial

•  Cloudsoft’s Application Management Platform (AMP) … •  Supported version of the brooklyn open source project •  See http://brooklyncentral.github.com/

•  Automates Application Deployment and Con"guration •  Implementation details are abstracted into reusable blueprints •  Streamlines and enhances existing tooling

•  Optimizes Application Runtime Management •  Driven by your technical and business policies •  Autonomic control plane

•  Ensures Application Portability •  Frees the business to exploit a multi-provider strategy •  Avoids vendor lock-in

30/11/2012 © 2012 Cloudsoft Corporation Page: 3

Brooklyn Key Concepts

•  Entity •  Exposes sensor / effector interface plus where applicable pluggable

implementation

•  Sensors and Effectors •  Reuse existing metrics and APIs for non-intrusive integration and

management

•  Topology •  Entity wiring, groupings and management hierarchy

•  Policy •  Governs application’s behaviour e.g. horizontal scaling

•  Blueprint •  Captures an application’s initial topology plus policies that will change this

over time – CloudFormation and vApp templates on steroids

•  Location •  Target environment for blueprint instantiation

30/11/2012 Strictly Con"dential © 2012 Cloudsoft Corporation Page: 4

30/11/2012 Page: 5 © 2012 Cloudsoft Corporation

control plane

Monitor

Analyse

Execute

Plan

Policies

Autonomic Management (M-A-P-E)

sensors effectors

sensors gather metrics, events & noti!cations

effectors make changes

Web Servers

Database Servers

Application Servers

Load Balancers Web Servers

Message Brokers Caching ID Managers

etc.

Application Components

30/11/2012 © 2012 Cloudsoft Corporation Page: 6

Creating a Brooklyn Blueprint

In this walk through we show how easy it is to design an elastic multi-tier web application using brooklyn

Once we are happy that this application works we can then convert it into a version controlled service

blueprint and add this to our service catalog

When selected in the catalog all the user has to do is provide the appropriate WAR "le and database and

specify the target cloud and AMP will do the rest

MySQL

MyWebCluster – Multi-Tier Application

NGINX

ControlledDynamicWebAppCluster

JBoss7Server JBoss7Server … DynamicWebAppCluster

MyWebCluster

30/11/2012 © 2012 Cloudsoft Corporation Page: 7

MyWebCluster – Topology

30/11/2012 © 2012 Cloudsoft Corporation Page: 8

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

MyWebCluster – Blueprint

30/11/2012 © 2012 Cloudsoft Corporation Page: 9

Auto Scaler Policy [targets]

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

30/11/2012 © 2012 Cloudsoft Corporation Page: 10

De"ne New Blueprint

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { // TODO build the application}

30/11/2012 © 2012 Cloudsoft Corporation Page: 11

Create App Tier

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new JBoss7Server(this, war: WAR_PATH); { web.configure(httpPort: "8080+"); }}

30/11/2012 © 2012 Cloudsoft Corporation Page: 12

Add DB Tier

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new JBoss7Server(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.configure(httpPort: "8080+"); }}

30/11/2012 © 2012 Cloudsoft Corporation Page: 13

Wire up App and DB Tiers

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new JBoss7Server(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.configure(httpPort: "8080+"). configure(javaSysProp("brooklyn.example.db.url"), valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl)); }}

30/11/2012 © 2012 Cloudsoft Corporation Page: 14

Introduce Elasticity in App Tier

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new ControlledDynamicWebAppCluster(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.factory.configure(httpPort: "8080+"). configure(javaSysProp("brooklyn.example.db.url"), valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl)); }}

30/11/2012 © 2012 Cloudsoft Corporation Page: 15

Manage Elasticity in App Tier

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new ControlledDynamicWebAppCluster(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.factory.configure(httpPort: "8080+"). configure(javaSysProp("brooklyn.example.db.url"), valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl)); web.cluster.addPolicy( new AutoscalerPolicy(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND). setSizeRange(1, 5). setMetricRange(10, 100)); }}

MyWebCluster – [Your] Implementation

30/11/2012 © 2012 Cloudsoft Corporation Page: 16

Auto Scaler Policy [targets]

… JBoss7Server

NGINX

MySQL

JBoss7Server

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

MyWebCluster – Instantiation

30/11/2012 © 2012 Cloudsoft Corporation Page: 17

Auto Scaler Policy [targets]

+ Location

OS

OS

OS

… OS

… JBoss7Server

NGINX

MySQL

JBoss7Server

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

Test New Blueprint

30/11/2012 © 2012 Cloudsoft Corporation Page: 18

Thank you for your time {aled,alex,duncan}@cloudsoftcorp.com

top related