2013 05-multicloud-paas-interop-scenarios-fia-dublin

30
Multi-cloud scenarios for tomorrow’s applications Alex Heneveld / @ahtweetin FIA/Cloud4SOA Workshop 7 May 2013

Upload: alexheneveld

Post on 15-Jan-2015

564 views

Category:

Technology


0 download

DESCRIPTION

Multi-cloud scenarios for tomorrow's applications — talk at 10th Future Internet Assembly (Dublin), 7 May 2013

TRANSCRIPT

Page 1: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

Multi-cloud scenarios for tomorrow’s applications

Alex Heneveld / @ahtweetinFIA/Cloud4SOA Workshop

7 May 2013

Page 2: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Agenda

• Canned PaaS

• Challenges #1: multi-cloud and complex apps

• Composable PaaS• Challenges #2: usability and interop

• Declarative PaaS

2

Page 3: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Canned PaaS

3

Page 4: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Canned PaaS

4

Software Stack Languages Data Services Elastic Hosting

Providers

Amazon Elastic Beanstalk proprietary

Java(so far)

proprietary(extensive) ✓ AWS only

Google AppEngine proprietaryPython, Java

(limited) proprietary ✓ Google only

Microsoft Azure proprietary.NET, PHP,

Javaproprietary(extensive) ✓ Azure only

Heroku proprietaryJava, Ruby, node.js, ...

MySQL, Mongo, ... ✓ AWS

Engine Yard multiple (Rubinius, etc)

Ruby, PHP,JRuby, ...

MySQL, PostgreSQL ✓ AWS

(so far)

CloudBees RUN@cloud LAMJ Java MySQL ✓ AWS(so far)

VMware CloudFoundrymultiple

(e.g. tcServer)Java, Ruby, node.js, ...

MySQL, Mongo, ... ✓ multiple,

OSS

RedHat OpenShiftmultiple

(e.g. JBoss)Ruby, Python,

PHP, Java, ...MySQL, Mongo,

... ✓ multiple, OSS

Page 5: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Canned PaaS

5

Software Stack Languages Data Services Elastic Hosting

ProvidersMultiple

LocationsExtensible Safe from

Lock-in

Amazon Elastic Beanstalk proprietary

Java(so far)

proprietary(extensive) ✓ AWS only ✗ ✗ ✗

Google AppEngine proprietaryPython, Java

(limited) proprietary ✓ Google only ✗ ✗ ✗

Microsoft Azure proprietary.NET, PHP,

Javaproprietary(extensive) ✓ Azure only ✗ ✗ ✗

Heroku proprietaryJava, Ruby, node.js, ...

MySQL, Mongo, ... ✓ AWS ✗ ✗ ✗

Engine Yard multiple (Rubinius, etc)

Ruby, PHP,JRuby, ...

MySQL, PostgreSQL ✓ AWS

(so far) ✗ ✗ ✗

CloudBees RUN@cloud LAMJ Java MySQL ✓ AWS(so far) ✗ ✗ ✓

VMware CloudFoundrymultiple

(e.g. tcServer)Java, Ruby, node.js, ...

MySQL, Mongo, ... ✓ multiple,

OSS ✗ ✓ ✓RedHat OpenShift

multiple(e.g. JBoss)

Ruby, Python, PHP, Java, ...

MySQL, Mongo, ... ✓ multiple,

OSS ✗ ✓ ✓

Page 6: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Challenges #1

• Multi-environment

• On-premise, hybrid, and legacy

• Bursting and spanning• Complex applications

• Custom dependency injection

• Richer applications

6

Page 7: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Betfair

7

Page 8: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Betfair

8

• cloud: Rackspace• on-prem: vSphere

• lightweight virt’n (LXC)• nginx dev / F5 live

Page 9: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

The Elephant in the Room

9

Page 10: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Betfair

10

Page 11: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

GSLB

11

✗◦ ◦ ◦

Page 12: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Composable PaaS

12

Page 13: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Composable PaaS

13

Page 14: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

http://brooklyncentral.github.com

14

Page 15: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation 15

Autonomic Management (M-A-P-E)

Monitor

Analyze Plan

ExecuteState

Sensors E!ectors

EnrichDelegate

Autonomic Manager*

Sensors E!ectors

Escalate

Managed Element

*An autonomic manager can be a managed element

Page 16: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation 16

Hierarchical Autonomic Management

Granularity can be anything from individual application to overall control plane

Page 17: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Multi-Tier Application

Load Balanced Cluster

Cluster

Multi-Tier Application

17

OS

MySQL

OS

NGINX

OS

JBoss7Server

OS

JBoss7Server…

Need to update targets to match cluster

Need to publish MySQL URL for cluster

Need to specify autoscaling policy

There has to be a better way than scripting …

Page 18: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

MyWebCluster – Topology

18

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

Concrete Entities

Abstract Entities

Managed Elements - AMP proxies for real world components

Autonomic Managers - AMP speci"c constructs or building blocks

Here we explicitly model the app’s organizational structure

MySQL and NGINX could be swapped out for their clustered variants

Page 19: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

MyWebCluster – Blueprint

19

Auto Scaler Policy[targets]

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

Policies Attached to entities they e!ect but can subscribe to any sensor

[targets] is a built in policy whereas the auto scaling policy is explicitly added

An application blueprint is completely portable

Page 20: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

MyWebCluster – Customization

20

…JBoss7Server

NGINX

MySQL

JBoss7Server

Auto Scaler Policy[targets]

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

Drivers Customer speci"c implementations (Bash, Puppet, Chef etc.)

The pluggable driver mechanism is an elegant way to customize a blueprint for a particular environment

Page 21: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

MyWebCluster – Instantiation

21

Location

OS

OS

OS

… OS

…JBoss7Server

NGINX

MySQL

JBoss7Server

+

Auto Scaler Policy[targets]

MyWebCluster

ControlledDynamicWebAppCluster

DynamicWebAppCluster

JBoss7Server

NGINX

MySQL

JBoss7Server

Instances Locations – can be virtual machine, LXC, legacy; and multiple

Page 22: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation 22

Java Library

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { MySqlNode mysql = ...; ControlledDynamicWebAppCluster web = ...;

web.addEnricher(HttpLatencyDetector.builder().url(ROOT_URL). rollup(10, SECONDS).build());

web.getCluster().addPolicy(AutoScalerPolicy.builder(). metric(REQUESTS_PER_SECOND_IN_WINDOW_PER_NODE). metricRange(10, 100).sizeRange(2, 5).build());

addEnricher(SensorPropagatingEnricher.newInstanceListeningTo(web, ROOT_URL, REQUESTS_PER_SECOND_IN_WINDOW, REQUEST_LATENCY_IN_SECONDS_IN_WINDOW)); }}

Page 23: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Powerful GUI and RESTful API

23

Page 24: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Uses

24

Page 25: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

Challenges #2

• Usability — code is hard!

• Interop — #unicorns

25

Page 26: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

PUSH

26

• impose a common pattern on PaaSes

• Cloud4SOA !• Strong types in Brooklyn

• limited success (DI, locations, etc)

Page 27: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

PULL

27

• standards: create desire and make them achievable

• Oasis CAMP, TOSCA; OCCI• Cloud4SOA, SeaClouds (FP7)• OpenStack Heat, Cloudstack 576

• early days ... but huge momentum!

Page 28: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation

PUSH AND PULL

28

Page 29: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

© 2013 Cloudsoft Corporation 29

A DSL (WIP not RIP!)

name: "three tier app"components: hello_war: # no type content: hello.war requires: com.example.java:WarContainer: initialSize: 3 fulfillment: frontend com.example.java:Autoscaler: metric: request.latency max: 120ms hello_sql: content: hello.sql type: com.example.database:Schema # here, type of component defined requires: backend frontend: # "platform component" implied by WarDeplReq above requires: database: # frontend type must recognise a named "database" req mode: CDI # assume that req supports various injection modes fulfillment: backend

Page 30: 2013 05-multicloud-paas-interop-scenarios-fia-dublin

Multi-cloud scenarios for tomorrow’s applications

Alex Heneveld / @ahtweetinFIA/Cloud4SOA Workshop

7 May 2013