migration effort in the cloud - the case of cloud platforms

40
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

Upload: stfnklb

Post on 12-Aug-2015

93 views

Category:

Science


0 download

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