Multi-cloud scenarios for tomorrow’s applicationsAlex Heneveld / @ahtweetinFIA/Cloud4SOA Workshop7 May 2013
© 2013 Cloudsoft CorporationAgenda• Canned PaaS• Challenges #1: multi-cloud and complex apps• Composable PaaS• Challenges ...
© 2013 Cloudsoft CorporationCanned PaaS3
© 2013 Cloudsoft CorporationCanned PaaS4SoftwareStackLanguages Data Services ElasticHostingProvidersAmazon ElasticBeanstal...
© 2013 Cloudsoft CorporationCanned PaaS5SoftwareStackLanguages Data Services ElasticHostingProvidersMultipleLocationsExten...
© 2013 Cloudsoft CorporationChallenges #1• Multi-environment• On-premise, hybrid, and legacy• Bursting and spanning• Compl...
© 2013 Cloudsoft CorporationBetfair7
© 2013 Cloudsoft CorporationBetfair8• cloud: Rackspace• on-prem: vSphere• lightweight virt’n (LXC)• nginx dev / F5 live
© 2013 Cloudsoft CorporationThe Elephant in the Room9
© 2013 Cloudsoft CorporationBetfair10
© 2013 Cloudsoft CorporationGSLB11✗◦ ◦ ◦
© 2013 Cloudsoft CorporationComposable PaaS12
© 2013 Cloudsoft CorporationComposable PaaS13
© 2013 Cloudsoft Corporationhttp://brooklyncentral.github.com14
© 2013 Cloudsoft Corporation 15Autonomic Management (M-A-P-E)MonitorAnalyze PlanExecuteStateSensors EffectorsEnrichDelegat...
© 2013 Cloudsoft Corporation 16Hierarchical Autonomic ManagementGranularity can be anything from individual application to...
© 2013 Cloudsoft CorporationMulti-Tier ApplicationLoad Balanced ClusterClusterMulti-Tier Application17OSMySQLOSNGINXOSJBos...
© 2013 Cloudsoft CorporationMyWebCluster – Topology18…MyWebClusterControlledDynamicWebAppClusterDynamicWebAppClusterJBoss7...
© 2013 Cloudsoft CorporationMyWebCluster – Blueprint19Auto Scaler Policy[targets]…MyWebClusterControlledDynamicWebAppClust...
© 2013 Cloudsoft CorporationMyWebCluster – Customization20…JBoss7ServerNGINXMySQLJBoss7ServerAuto Scaler Policy[targets]…M...
© 2013 Cloudsoft CorporationMyWebCluster – Instantiation21LocationOSOSOS… OS…JBoss7ServerNGINXMySQLJBoss7Server+Auto Scale...
© 2013 Cloudsoft Corporation 22Java Librarypublic class MyWebCluster extends AbstractApplicationimplements MyWebClusterCon...
© 2013 Cloudsoft CorporationPowerful GUI and RESTful API23
© 2013 Cloudsoft CorporationUses24
© 2013 Cloudsoft CorporationChallenges #2• Usability — code is hard!• Interop — #unicorns25
© 2013 Cloudsoft CorporationPUSH26• impose a commonpattern on PaaSes• Cloud4SOA !• Strong types in Brooklyn• limited succe...
© 2013 Cloudsoft CorporationPULL27• standards: create desireand make them achievable• Oasis CAMP, TOSCA; OCCI• Cloud4SOA, ...
© 2013 Cloudsoft CorporationPUSH AND PULL28
© 2013 Cloudsoft Corporation 29A DSL (WIP not RIP!)name: "three tier app"components:hello_war: # no typecontent: hello.war...
Multi-cloud scenarios for tomorrow’s applicationsAlex Heneveld / @ahtweetinFIA/Cloud4SOA Workshop7 May 2013
Upcoming SlideShare
Loading in …5
×

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

853 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
853
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Multi-cloud scenarios for tomorrow’s applicationsAlex Heneveld / @ahtweetinFIA/Cloud4SOA Workshop7 May 2013
  2. 2. © 2013 Cloudsoft CorporationAgenda• Canned PaaS• Challenges #1: multi-cloud and complex apps• Composable PaaS• Challenges #2: usability and interop• Declarative PaaS2
  3. 3. © 2013 Cloudsoft CorporationCanned PaaS3
  4. 4. © 2013 Cloudsoft CorporationCanned PaaS4SoftwareStackLanguages Data Services ElasticHostingProvidersAmazon ElasticBeanstalkproprietaryJava(so far)proprietary(extensive) ✓ AWS onlyGoogle AppEngine proprietaryPython, Java(limited)proprietary✓GoogleonlyMicrosoft Azure proprietary.NET, PHP,Javaproprietary(extensive) ✓ Azure onlyHeroku proprietaryJava, Ruby,node.js, ...MySQL, Mongo,... ✓ AWSEngine Yardmultiple(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,OSSRedHat OpenShiftmultiple(e.g. JBoss)Ruby, Python,PHP, Java, ...MySQL, Mongo,... ✓multiple,OSS
  5. 5. © 2013 Cloudsoft CorporationCanned PaaS5SoftwareStackLanguages Data Services ElasticHostingProvidersMultipleLocationsExtensibleSafe fromLock-inAmazon ElasticBeanstalkproprietaryJava(so far)proprietary(extensive) ✓ AWS only ✗ ✗ ✗Google AppEngine proprietaryPython, Java(limited)proprietary✓Googleonly ✗ ✗ ✗Microsoft Azure proprietary.NET, PHP,Javaproprietary(extensive) ✓ Azure only ✗ ✗ ✗Heroku proprietaryJava, Ruby,node.js, ...MySQL, Mongo,... ✓ AWS ✗ ✗ ✗Engine Yardmultiple(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 ✗ ✓ ✓
  6. 6. © 2013 Cloudsoft CorporationChallenges #1• Multi-environment• On-premise, hybrid, and legacy• Bursting and spanning• Complex applications• Custom dependency injection• Richer applications6
  7. 7. © 2013 Cloudsoft CorporationBetfair7
  8. 8. © 2013 Cloudsoft CorporationBetfair8• cloud: Rackspace• on-prem: vSphere• lightweight virt’n (LXC)• nginx dev / F5 live
  9. 9. © 2013 Cloudsoft CorporationThe Elephant in the Room9
  10. 10. © 2013 Cloudsoft CorporationBetfair10
  11. 11. © 2013 Cloudsoft CorporationGSLB11✗◦ ◦ ◦
  12. 12. © 2013 Cloudsoft CorporationComposable PaaS12
  13. 13. © 2013 Cloudsoft CorporationComposable PaaS13
  14. 14. © 2013 Cloudsoft Corporationhttp://brooklyncentral.github.com14
  15. 15. © 2013 Cloudsoft Corporation 15Autonomic Management (M-A-P-E)MonitorAnalyze PlanExecuteStateSensors EffectorsEnrichDelegateAutonomicManager*Sensors EffectorsEscalateManagedElement*An autonomic manager can be a managed element
  16. 16. © 2013 Cloudsoft Corporation 16Hierarchical Autonomic ManagementGranularity can be anything from individual application to overall control plane
  17. 17. © 2013 Cloudsoft CorporationMulti-Tier ApplicationLoad Balanced ClusterClusterMulti-Tier Application17OSMySQLOSNGINXOSJBoss7ServerOSJBoss7Server…Need to update targetsto match clusterNeed to publish MySQLURL for clusterNeed to specifyautoscaling policyThere has to be a betterway than scripting …
  18. 18. © 2013 Cloudsoft CorporationMyWebCluster – Topology18…MyWebClusterControlledDynamicWebAppClusterDynamicWebAppClusterJBoss7ServerNGINXMySQLJBoss7ServerConcrete EntitiesAbstract EntitiesManaged Elements - AMP proxies for real world componentsAutonomic Managers - AMP specific constructs or building blocksHere we explicitly model the app’sorganizational structureMySQL and NGINX could beswapped out for theirclustered variants
  19. 19. © 2013 Cloudsoft CorporationMyWebCluster – Blueprint19Auto Scaler Policy[targets]…MyWebClusterControlledDynamicWebAppClusterDynamicWebAppClusterJBoss7ServerNGINXMySQLJBoss7ServerPolicies Attached to entities they effect but can subscribe to any sensor[targets] is a built in policywhereas the auto scalingpolicy is explicitly addedAn application blueprint iscompletely portable
  20. 20. © 2013 Cloudsoft CorporationMyWebCluster – Customization20…JBoss7ServerNGINXMySQLJBoss7ServerAuto Scaler Policy[targets]…MyWebClusterControlledDynamicWebAppClusterDynamicWebAppClusterJBoss7ServerNGINXMySQLJBoss7ServerDrivers Customer specific implementations (Bash, Puppet, Chef etc.)The pluggable driver mechanism is anelegant way to customize a blueprint fora particular environment
  21. 21. © 2013 Cloudsoft CorporationMyWebCluster – Instantiation21LocationOSOSOS… OS…JBoss7ServerNGINXMySQLJBoss7Server+Auto Scaler Policy[targets]…MyWebClusterControlledDynamicWebAppClusterDynamicWebAppClusterJBoss7ServerNGINXMySQLJBoss7ServerInstancesLocations – can be virtual machine, LXC, legacy; and multiple
  22. 22. © 2013 Cloudsoft Corporation 22Java Librarypublic class MyWebCluster extends AbstractApplicationimplements MyWebClusterConstants {@Overridepublic 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));}}
  23. 23. © 2013 Cloudsoft CorporationPowerful GUI and RESTful API23
  24. 24. © 2013 Cloudsoft CorporationUses24
  25. 25. © 2013 Cloudsoft CorporationChallenges #2• Usability — code is hard!• Interop — #unicorns25
  26. 26. © 2013 Cloudsoft CorporationPUSH26• impose a commonpattern on PaaSes• Cloud4SOA !• Strong types in Brooklyn• limited success(DI, locations, etc)
  27. 27. © 2013 Cloudsoft CorporationPULL27• standards: create desireand make them achievable• Oasis CAMP, TOSCA; OCCI• Cloud4SOA, SeaClouds (FP7)• OpenStack Heat, Cloudstack 576• early days ...but huge momentum!
  28. 28. © 2013 Cloudsoft CorporationPUSH AND PULL28
  29. 29. © 2013 Cloudsoft Corporation 29A DSL (WIP not RIP!)name: "three tier app"components:hello_war: # no typecontent: hello.warrequires:com.example.java:WarContainer:initialSize: 3fulfillment: frontendcom.example.java:Autoscaler:metric: request.latencymax: 120mshello_sql:content: hello.sqltype: com.example.database:Schema # here, type of component definedrequires: backendfrontend: # "platform component" implied by WarDeplReq aboverequires:database: # frontend type must recognise a named "database" reqmode: CDI # assume that req supports various injection modesfulfillment: backend
  30. 30. Multi-cloud scenarios for tomorrow’s applicationsAlex Heneveld / @ahtweetinFIA/Cloud4SOA Workshop7 May 2013

×