Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Migration Effort in the Cloud - The Case of Clo...

Migration Effort in the Cloud - The Case of Cloud Platforms

Presentation from IEEE CLOUD 2015. Full paper at http://bit.ly/paasmigration

Get the book "On the Portability of Applications in Platform as a Service" at https://www.amazon.de/dp/3863096312

Stefan Kolb

June 29, 2015
Tweet

More Decks by Stefan Kolb

Other Decks in Research

Transcript

  1. Migration Effort in the Cloud – The Case of Cloud

    Platforms Stefan Kolb, Jörg Lenhard, and Guido Wirtz Distributed Systems Group University of Bamberg, Germany
  2.  Feasibility of migration and effort? Why migrate? 2 Diverse

    offerings 2 1 Consolidation & fast-changing market 3 Cost benefits four12
  3. Case Study 3 Migration between PaaS Real-world application 2 1

    Cloud-native Stateless, horizontally scalable. 3 Cloud-to-Cloud 4 Developer’s Point-of-View Functional & management interface portability.
  4. If all components and capabilities are supported, we should be

    able to run our application. C Non portable Component A Component B Capability C Partial Portable 5
  5. 6 “Key insights from nonfiction books into fifteen minute reads

    and audio casts.“ 1000 books 350 000 registered users Available for Android, iPhone, iPad, and Web www.blinkist.com
  6. Components & Capabilities 7 - 60 000 LOC - Rails,

    … Puma 2.8.1 Rails 4.x Ruby 2.0.0 Scale-out Public PaaS Production-ready
  7. 11 Pivotal Web Services IBM Bluemix OpenShift Online cloudControl Heroku

    EngineYard AWS Elastic Beanstalk VM-based Container-based 512 MB RAM 3.75 GB RAM
  8. Pricing $22 $24 $35 $36 $54 $50 $89 $0 $10

    $20 $30 $40 $50 $60 $70 $80 $90 Pivotal Bluemix Heroku OpenShift cloudControl Beanstalk EngineYard 13 ∑(2 instances/month) || ∑(1 VM/month) Container-based VM-based
  9. $22 $24 $35 $36 $54 $50 $89 $0 $10 $20

    $30 $40 $50 $60 $70 $80 $90 Pivotal Heroku cloudControl EngineYard 14 VM-based Low-cost Containers It’s usually cheaper to start with a Container-based PaaS. 1 1
  10. $22 $24 $35 $36 $54 $50 $89 $0 $10 $20

    $30 $40 $50 $60 $70 $80 $90 Pivotal Heroku cloudControl EngineYard 15 Container-based VM-based Low-cost Containers It’s usually cheaper to start with a Container-based PaaS. 2 2 1 Complex VM pricing Often additional costs for IP services, bandwidth, storage, …
  11. $22 $24 $35 $36 $54 $50 $89 $0 $10 $20

    $30 $40 $50 $60 $70 $80 $90 Pivotal Heroku cloudControl EngineYard 16 Container-based VM-based Low-cost Containers It’s usually cheaper to start with a Container-based PaaS. 2 1 3 Complex VM pricing Often additional costs for IP services, bandwidth, storage, … 3 Major price differences 60 % savings among Container-based PaaS possible. Amount of savings dependent on instance count (free quota).
  12. Migration Efforts If my requirements are supported, what and how

    much effort do I need to put into my deployment workflow and application code? 17
  13. Metrics 18 Avg. Deployment Time Deployment Reliability Number of compilation

    and packaging steps Number of deployment steps + Number of input parameters Median of a number of deployments LOC of configuration files + LOC changes in application code Deployment Effort Code Changes Packaging Steps
  14. t Create Update Delete Automation 19 SSH keys Tokens Host

    verifications https://github.com/stefan-kolb/paasyard Application code Deployment artifacts Vendor CLI tools Repeatable workflows Prevents measurement errors. 2 1 Measurement isolation Local and remote isolation of deployments. 1 #!bash scripts 2
  15. Measurements 20 100 runs each … at varying times during

    workdays … in parallel to minimize load-induced influences … manually analyze deployment script efforts
  16. Average Deployment Time 5.83 6.75 7.03 8.42 9.13 15.94 28.44

    0 5 10 15 20 25 30 Pivotal Heroku Bluemix OpenShift cloudControl Beanstalk EngineYard Minutes 22 Container-based VM-based
  17. 5.83 6.75 7.03 8.42 9.13 15.94 28.44 0 5 10

    15 20 25 30 Pivotal Bluemix cloudControl EngineYard Minutes 23 Container-based VM-based Substantial performance differences 1 1 7.52 deviation 11.65 mean
  18. 5.83 6.75 7.03 8.42 9.13 15.94 28.44 0 5 10

    15 20 25 30 Pivotal Bluemix cloudControl EngineYard Minutes 24 Container-based VM-based Substantial performance differences 2 2 1 Containers are faster than VMs In our case 3x faster than VM deployments. Not only because of VM startup time (~97s). 7.52 deviation 11.65 mean
  19. 5.73 6.69 6.61 7.41 5.71 8.71 8.25 0 5 10

    15 20 25 30 Pivotal Bluemix cloudControl EngineYard Minutes 25 Container-based VM-based 1.08 deviation 3 Substantial performance differences 2 1 Containers are faster than VMs In our case 3x faster than VM deployments. Not only because of VM startup time (~97s). 3 Similar redeployment times
  20. 1 1 0.99 0.96 0.89 0.78 0.72 0 0.1 0.2

    0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Pivotal EngineYard Beanstalk Heroku Bluemix OpenShift cloudControl 26 Reoccuring failures during initial deployment SSH key synchronization and other platform errors. 1 1 Deployment Reliability
  21. 1 0.96 0.98 0.96 0.93 0.97 1 0 0.1 0.2

    0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Pivotal EngineYard Beanstalk Heroku Bluemix OpenShift cloudControl 27 2 Deployment Reliability Reoccuring failures during initial deployment SSH key synchronization and other platform errors. 2 1 Reliable redeployment
  22. Effort of Deployment Steps 10 12 15 17 17 23

    24 0 5 10 15 20 25 30 Heroku Beanstalk cloudControl Pivotal Bluemix EngineYard OpenShift Steps Parameters 28
  23. 10 12 15 17 17 23 24 0 5 10

    15 20 25 30 Heroku Beanstalk cloudControl Pivotal Bluemix EngineYard OpenShift 29 Different steps, yet semantically the same Reoccurring effort for learning tools or adapting existing automation. 1 14 spread 17 mean 1
  24. 10 12 15 17 17 23 24 0 5 10

    15 20 25 30 Heroku Beanstalk cloudControl Pivotal Bluemix EngineYard OpenShift 30 Different steps, yet semantically the same Reoccurring effort for learning tools or adapting existing automation. 1 2 2 Not always automatable EngineYard needs a manual initial configuration. 14 spread 17 mean
  25. Code Changes 1 1 1 1 0 7 40 0

    5 10 15 20 25 30 35 40 45 Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk Lines of Code 31 Procfile-based deployment
  26. 1 1 1 1 0 7 40 0 5 10

    15 20 25 30 35 40 45 Heroku Bluemix OpenShift Beanstalk Lines of Code 32 Low amount of code changes Relying on open technologies results in low amount of overall changes. 1 1 Container-based VM-based
  27. 1 1 1 1 0 7 40 0 5 10

    15 20 25 30 35 40 45 Heroku Bluemix OpenShift Beanstalk Lines of Code 33 Low amount of code changes Relying on open technologies results in low amount of overall changes. 2 1 Intelligent runtime detection and defaults Recent platform automation saves on configuration needs. VM-based 2
  28. 1 1 1 1 0 7 40 0 5 10

    15 20 25 30 35 40 45 Heroku Bluemix OpenShift Beanstalk Lines of Code 34 Low amount of code changes Relying on open technologies results in low amount of overall changes. 2 3 1 Intelligent runtime detection and defaults Recent platform automation saves on configuration needs. 3 Problematic middleware configuration Portability of native libraries and middleware configurations is problematic. ENV variables Linux packages Server-side scripts Container-based VM-based
  29. Deployment Effort 14 18 18 19 27 34 55 0

    10 20 30 40 50 60 Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk Steps & Parameters (EDS) Code changes (CC) Build (EPC) 35
  30. 14 18 18 19 27 34 55 0 10 20

    30 40 50 60 Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk Steps & Parameters (EDS) Code changes (CC) Build (EPC) 36 VM-based require more effort … but can be configured more later on. 1 1 41 spread
  31. 14 18 18 19 27 34 55 0 10 20

    30 40 50 60 Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk Steps & Parameters (EDS) Code changes (CC) Build (EPC) 37 VM-based require more effort … but can be configured more later on. 2 2 1 Container-based are within close range Only small deviation between container-based PaaS. 41 spread
  32. Analysis 38 Portable, but requires substantial amount of work …

    besides captured effort: how difficult are the changes? 2 1 Tradeoffs in technology setups necessary Server middleware configuration is problematic. Native extensions dependencies are problematic. 3 Container-based PaaS are the future They are faster and require less effort than VM-based platforms. 4 Maturity of PaaS? 4 of 7 platforms included bugs that needed to be fixed.
  33. Study Generalizability Metrics Refinement Weighting of efforts? Human efforts? Management

    API Portability Similar functionality, but very different workflows & commands Implementation & Environmental Differences e.g. Buildpack unification PaaS Performance 39 Limitations Challenges