Top Banner
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
40
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 2: Migration Effort in the Cloud - The Case of Cloud Platforms

Feasibility of migration and effort?

Why migrate?

2

Diverse offerings

2

1

Consolidation & fast-changing market

3 Cost benefits

four12

Page 3: Migration Effort in the Cloud - The Case of Cloud Platforms

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.

Page 4: Migration Effort in the Cloud - The Case of Cloud Platforms

Platform?

4

Mike Baird Peter Miller

Page 5: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 6: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 7: Migration Effort in the Cloud - The Case of Cloud Platforms

Components & Capabilities

7

- 60 000 LOC - Rails, …

Puma 2.8.1 Rails 4.x Ruby 2.0.0

Scale-out Public PaaS Production-ready

Page 8: Migration Effort in the Cloud - The Case of Cloud Platforms

8

VENDOR SELECTION

Page 9: Migration Effort in the Cloud - The Case of Cloud Platforms

75

vendors

Most recent and comprehensive data set available

http://PaaSify.it

9

Page 10: Migration Effort in the Cloud - The Case of Cloud Platforms

Matching components and capabilities

22

vendors

-70 % ecosystem mismatch

10

Page 11: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 12: Migration Effort in the Cloud - The Case of Cloud Platforms

12

MEASUREMENTS

Page 13: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 14: Migration Effort in the Cloud - The Case of Cloud Platforms

$22 $24

$35 $36

$54 $50

$89

$0

$10

$20

$30

$40

$50

$60

$70

$80

$90

Pivotal Bluemix Heroku OpenShift cloudControl Beanstalk EngineYard

14

VM-based

Low-cost Containers It’s usually cheaper to start with a Container-based PaaS.

1

1

Page 15: Migration Effort in the Cloud - The Case of Cloud Platforms

$22 $24

$35 $36

$54 $50

$89

$0

$10

$20

$30

$40

$50

$60

$70

$80

$90

Pivotal Bluemix Heroku OpenShift cloudControl Beanstalk 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, …

Page 16: Migration Effort in the Cloud - The Case of Cloud Platforms

$22 $24

$35 $36

$54 $50

$89

$0

$10

$20

$30

$40

$50

$60

$70

$80

$90

Pivotal Bluemix Heroku OpenShift cloudControl Beanstalk 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).

Page 17: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 18: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 19: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 20: Migration Effort in the Cloud - The Case of Cloud Platforms

Measurements

20

100 runs each

… at varying times during workdays

… in parallel to minimize load-induced influences

… manually analyze deployment script efforts

Page 21: Migration Effort in the Cloud - The Case of Cloud Platforms

21

APPLICATION PORTING EFFORTS

Omer Wazir

Page 22: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Min

utes

22

Container-based VM-based

Page 23: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Min

utes

23

Container-based VM-based

Substantial performance differences

1

1

7.52 deviation 11.65 mean

Page 24: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Min

utes

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

Page 25: Migration Effort in the Cloud - The Case of Cloud Platforms

5.73 6.69 6.61 7.41 5.71

8.71 8.25

0

5

10

15

20

25

30

Pivotal Heroku Bluemix OpenShift cloudControl Beanstalk EngineYard

Min

utes

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

Page 26: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 27: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 28: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 29: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 30: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 31: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Line

s of

Cod

e

31

Procfile-based deployment

Page 32: Migration Effort in the Cloud - The Case of Cloud Platforms

1 1 1 1 0

7

40

0

5

10

15

20

25

30

35

40

45

Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk

Line

s of

Cod

e

32

Low amount of code changes Relying on open technologies results in low amount of overall changes.

1

1

Container-based VM-based

Page 33: Migration Effort in the Cloud - The Case of Cloud Platforms

1 1 1 1 0

7

40

0

5

10

15

20

25

30

35

40

45

Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk

Line

s of

Cod

e

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

Page 34: Migration Effort in the Cloud - The Case of Cloud Platforms

1 1 1 1 0

7

40

0

5

10

15

20

25

30

35

40

45

Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk

Line

s of

Cod

e

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

Page 35: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 36: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 37: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 38: Migration Effort in the Cloud - The Case of Cloud Platforms

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.

Page 39: Migration Effort in the Cloud - The Case of Cloud Platforms

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

Page 40: Migration Effort in the Cloud - The Case of Cloud Platforms

Stefan Kolb @stfnklb

http://PaaSify.it [email protected]

40