Upload
stfnklb
View
134
Download
1
Embed Size (px)
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