Towards Application Portability in Platform as a Service

  • View
    133

  • Download
    1

  • Category

    Science

Preview:

Citation preview

Towards Application Portability in Platform as a Service

Stefan Kolb and Guido Wirtz Distributed Systems Group

University of Bamberg, Germany

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

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

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

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

PaaS categories

Comparable application platform & building blocks

Extension platforms, visual tooling

Composition of low-level Services

Classical app environment

6

PaaS model Current PaaS ⊆ Model

7

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

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

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

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

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

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

Profile Taxonomy

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

Business Aspects • Status • Pricing • Compliance

14

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

17

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

Application Portability Matchmaking

User-defined: Visual selection to satisfy business user

Application Profile: Enable automated discovery

18

Application Requirements

Application Portability Matchmaking

Web Application

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

Web UI

JSON API

76 profiles

19

Feasibility Use Case

Ruby MongoDB as a Service

Application Profile ⊆ PaaS Profile 20

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

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

Thank you!

Questions?!

Stefan Kolb @stfnklb

https://PaaSfinder.org stefan.kolb@uni-bamberg.de

23

Recommended