22
Towards Application Portability in Platform as a Service Stefan Kolb and Guido Wirtz Distributed Systems Group University of Bamberg, Germany

Towards Application Portability in Platform as a Service

  • Upload
    stfnklb

  • View
    134

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Towards Application Portability in Platform as a Service

Towards Application Portability in Platform as a Service

Stefan Kolb and Guido Wirtz Distributed Systems Group

University of Bamberg, Germany

Page 2: Towards Application Portability in Platform as a Service

Application

PaaS Cloud

Platform as a Service

You get an application

You get an application environment

You get a virtual machine

You manage everything

IaaS

PaaS

SaaS

Traditional IT

2

Cloud

Page 3: Towards Application Portability in Platform as a Service

Value proposition

Hosted Environment + Less configuration + No hassle with complex distributed systems + Instantly become productive

Pay for what you need + Transparently scale from one to thousands of

customers + IT dynamically grows with your business

Focus on your applications Save money

3

Page 4: Towards Application Portability in Platform as a Service

Lock-in prevents portability

Different notions of PaaS

– No real model of current PaaS

– No single comparable set of offerings

Heterogeneity between vendors

– Platform components & capabilities

– Platform restrictions

– Still no one-size-fits-all!

Lock-in

Potentially high switching costs

4

Page 5: Towards Application Portability in Platform as a Service

Our approaches to these issues

5

Literature review

Analysis of 76 PaaS vendors

PaaS Model

Feasibility Use Case

Different notions of

PaaS

Heterogeneity between vendors

Extract comparable

components & capabilities

Application Portability

Matchmaking

PaaS Profiles

Page 6: Towards Application Portability in Platform as a Service

PaaS categories

Comparable application platform & building blocks

Extension platforms, visual tooling

Composition of low-level Services

Classical app environment

6

Page 7: Towards Application Portability in Platform as a Service

PaaS model Current PaaS ⊆ Model

7

Page 8: Towards Application Portability in Platform as a Service

The abstraction of the physical infrastructure or IaaS capabilities.

Infrastructure layer

Instance

Memory CPU Share Disk

Geographical Regions

Deployment Models Scalability

Horizontal scaling Important for end user locations (latency, legal reasons)

Public vs. private Hosting Vertical scaling

8

Page 9: Towards Application Portability in Platform as a Service

Platform layer

Runtime Stack

Middleware

Service Stack

APIs

Bindings

Native Services

Add-on Services

Frameworks

Buildpacks

Apps

Languages

The service and library interfaces to which the application is written. Application dependency portability

Third-party providers, SSO, provisioned through PaaS API

Co-located, operated by the PaaS provider

Boundary to IaaS Extensibility mechanisms for installing missing runtime or service components

Including proprietary, platform-specific APIs

9

Page 10: Towards Application Portability in Platform as a Service

Management layer

Application Administration

Provisioning Deployment

Platform Administration

Scaling Monitoring Authentication Logging Billing … …

PaaS user manages their use of the platform.

Application life cycle

Services & Add-ons

Accessible via Web-UI, CLI or REST-API

10

Page 11: Towards Application Portability in Platform as a Service

How can we tackle portability threats?

Standardization

– Portability of applications • Single unit of delivery including all dependencies

• e.g. Docker containers, TOSCA

– Portability of application dependencies • e.g. standardized buildpacks

Lack of acceptance by industry leaders prevents adoption

11

Page 12: Towards Application Portability in Platform as a Service

How can we tackle portability threats?

Rely on native support and open technologies

+ No intermediaries, instant applicability!

+ There are common setups that are often used by developers

+ Vendors want to attract many customers, so the environmental setups should intersect

12

Page 13: Towards Application Portability in Platform as a Service

A no-standards approach for application portability

If all components and capabilities are supported, we should be able to run our application – additional work expected.

C B

A

2. Where can I port my application? Match application requirements with vendor capabilities

1. What are the most important components & capabilities I need to match? PaaS model

Non portable

Vendor A

Vendor B Vendor C

Partially portable

Portable

13

Page 14: Towards Application Portability in Platform as a Service

Profile Taxonomy

Components & Capabilities • Runtimes • Frameworks • Middleware • Services • Extensibility • Hosting • Scaling • Infrastructures

Business Aspects • Status • Pricing • Compliance

14

Page 15: Towards Application Portability in Platform as a Service

PaaS Profiles • Machine-readable representation of the taxonomy

• Profiles serve as description language and catalog for inter-cloud resource discovery

By means of this discovery we can identify high-level portability for:

15

Deployment on a single PaaS

Migration from on premise to PaaS

Migration between different PaaS

Identify portable building blocks for PaaS applications

High-level Portability

Page 16: Towards Application Portability in Platform as a Service

17

+ Currently 76 active vendor profiles + Open source including vendor verification Most recent and comprehensive data set available

Page 17: Towards Application Portability in Platform as a Service

Application Portability Matchmaking

User-defined: Visual selection to satisfy business user

Application Profile: Enable automated discovery

18

Application Requirements

Page 18: Towards Application Portability in Platform as a Service

Application Portability Matchmaking

Web Application

Try it! https://PaaSfinder.org https://github.com/stefan-kolb/paas-profiles

Web UI

JSON API

76 profiles

19

Page 19: Towards Application Portability in Platform as a Service

Feasibility Use Case

Ruby MongoDB as a Service

Application Profile ⊆ PaaS Profile 20

Page 20: Towards Application Portability in Platform as a Service

What and how much work do I need to put into my deployment workflow and application code?

How difficult is the migration?

21

We can port the application with reasonable effort We need to investigate more on the amount of low-

level problems for larger projects

Page 21: Towards Application Portability in Platform as a Service

Future Work

Partial Matching Algorithm

● Replacability of components by add-ons (e.g. data stores) or buildpacks (e.g. runtimes)

Migration Effort

● Currently working on a real-world scenario with a start-up company

Management API Portability

● Similar functionality, but very different workflows & commands

Implementation & Environmental Differences

22

Page 22: Towards Application Portability in Platform as a Service

Thank you!

Questions?!

Stefan Kolb @stfnklb

https://PaaSfinder.org [email protected]

23