$30 off During Our Annual Pro Sale. View Details »

Towards Application Portability in Platform as a Service

Towards Application Portability in Platform as a Service

Presentation from IEEE SOSE 2014. Full paper at http://bit.ly/paaspaper

Get the book "On the Portability of Applications in Platform as a Service" at https://www.amazon.de/dp/3863096312

Stefan Kolb

April 09, 2014
Tweet

More Decks by Stefan Kolb

Other Decks in Research

Transcript

  1. Towards Application Portability in Platform as a Service Stefan Kolb

    and Guido Wirtz Distributed Systems Group University of Bamberg, Germany
  2. 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
  3. 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
  4. 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
  5. 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
  6. PaaS categories Comparable application platform & building blocks Extension platforms,

    visual tooling Composition of low-level Services Classical app environment 6
  7. PaaS model Current PaaS ⊆ Model 7

  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. Profile Taxonomy Components & Capabilities • Runtimes • Frameworks •

    Middleware • Services • Extensibility • Hosting • Scaling • Infrastructures Business Aspects • Status • Pricing • Compliance 14
  15. 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
  16. 17 + Currently 76 active vendor profiles + Open source

    including vendor verification  Most recent and comprehensive data set available
  17. Application Portability Matchmaking User-defined: Visual selection to satisfy business user

    Application Profile: Enable automated discovery 18 Application Requirements
  18. Application Portability Matchmaking Web Application Try it! https://PaaSfinder.org https://github.com/stefan-kolb/paas-profiles Web

    UI JSON API 76 profiles 19
  19. Feasibility Use Case Ruby MongoDB as a Service Application Profile

    ⊆ PaaS Profile 20
  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
  21. 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
  22. Thank you! Questions?! Stefan Kolb @stfnklb https://PaaSfinder.org stefan.kolb@uni-bamberg.de 23