Upgrade to Pro — share decks privately, control downloads, hide ads and more …

On the Portability of Applications in Platform ...

Stefan Kolb
December 20, 2018

On the Portability of Applications in Platform as a Service

PHD thesis defense presentation.

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

Stefan Kolb

December 20, 2018
Tweet

More Decks by Stefan Kolb

Other Decks in Research

Transcript

  1. On the Portability of Applications in Platform as a Service

    Stefan Kolb Distributed Systems Group University of Bamberg
  2. Vielfältige Konfigurationen... 7 http://engineyard.co.jp/platform-as-a-service SaaS IaaS Java, Ruby, PHP, .NET,

    Python, … MySQL, MongoDB, Redis, CouchDB, … Apache, nginx, Glassfish, Tomcat, … Ubuntu, Windows, …
  3. 12 Konzeptuelle Unterschiede zwischen den Plattformen Technische Unterschiede zwischen den

    Anbietern Mangel an Standards Portabilität Wie kann man Portabilität unterstützen?
  4. Hauptbeiträge Konzeptuelle Abgrenzung und Modell 13 1 Entscheidungsunterstützung für die

    Anbieterauswahl 2 Fallstudie und Messrahmen für Portierungsaufwände 3 4 Vereinheitlichte Management-Schnittstelle Ordnungsrahmen Entscheidungsunterstützung zur Portabilitätserhaltung Praktische Validierung der Entscheidungsunterstützung & des Rahmens Weitere Reduktion der identifizierten Aufwände in der Fallstudie
  5. Entscheidungsunterstützung für die Anbieterauswahl “Durch Abgleich der Anwendungsanforderungen und der

    Anbieterprofile ist es möglich informierte Entscheidungen zu treffen und Anwendungsportabilität zu prüfen.“ 20 2
  6. Anwendungsportabilität 21 “Wenn alle Anwendungsabhängigkeiten und -anforderungen von einer Plattform

    unterstützt werden, so ist es möglich die Anwendung zu portieren.“
  7. 22

  8. 30 Pivotal Web Services IBM Bluemix OpenShift Online cloudControl Heroku

    EngineYard AWS Elastic Beanstalk https://blinkist.com
  9. Metriken 31 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 Build Management
  10. 32 Anzahl der Kompilierungs- und Paketierungsschritte Anzahl der Deploymentschritte +

    Anzahl der Input- Parameter Lines of Code der Konfigurationsdateien + Lines of Code der notwendigen Veränderungen im Applikationscode Deployment Effort Code Changes Build Management
  11. Portabel, aber evidente Aufwandsunterschiede 14 18 18 19 27 34

    55 0 10 20 30 40 50 60 Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk Management Code Build 33
  12. Management Standardisierung? 14 18 18 19 27 34 55 0

    10 20 30 40 50 60 Heroku Pivotal Bluemix cloudControl OpenShift EngineYard Beanstalk Management Code Build 34
  13. “Das Anwendungsmanagement in PaaS kann vereinheitlicht werden, um existierende Migrationsaufwände

    zu reduzieren.“ 36 Vereinheitlichte Management-Schnittstelle 4
  14. 37

  15. 39 Nucleus Prototyp https://github.com/stefan-kolb/nucleus 100% Abdeckung des Managements der Fallstudie

    Reduktion auf ca. 66% des originären Aufwandes Unterstützung für > 15 Anbieter
  16. Wie kann man Portabilität unterstützen? Ordnungsrahmen + Entscheidungsunterstützung + Vereinheitlichte

    Management-Schnittstelle = Weniger Lock-in Risiken, mehr Portabilitätsgarantien 40