Gitops Basiertes Continuous Delivery Für Serverless Anwendungen

Gitops Basiertes Continuous Delivery Für Serverless Anwendungen

Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 D–70569 Stuttgart Masterarbeit GitOps basiertes Continuous Delivery für Serverless Anwendungen Müslüm Sahin Studiengang: Softwaretechnik Prüfer/in: Prof. Dr. Dr. h. c. Frank Leymann Betreuer/in: Michael Wurster, M.Sc. Beginn am: 3. September 2018 Beendet am: 4. März 2019 Kurzfassung Das Ziel dieser Masterarbeit ist ein Konzept für eine anbieterunabhängige Continuous Delivery Lösung für Serverless Anwendungen zu entwickeln und prototypisch umzusetzten. Serverless bezeichnet ein Paradigma, bei dem die Infrastruktur komplett vom Entwickler verborgen bleibt und vom Cloud Anbieter verwaltet wird. Function-as-a-Service (FaaS) beschreibt ein Serverless Cloud-Service mit der kleine, kurzlebige und ereignisgesteuerte Funktionen bereitgestellt wer- den. Aufgrund der feinen Granularität von Business Services erhöht sich die Komplexität für Deployment und Management der Anwendung. Daher sind automatisierte DevOps Methoden durch Continuous Delivery und Infrastructure-as-Code (IaC) essentiell für eine zuverlässige, sichere und schnellere Softwareauslieferung. Dies wird bereits von einigen Cloud Providern mit eigenen Cloud-Services unterstützt, was jedoch zu einem Vendor Lock-in führt, da individuelle Imple- mentierungen und DevOps-Prozesse vom Anbieter abhängig sind. Daher untersucht diese Arbeit den Stand der Technik im Bereich Herausforderungen, Konzepte, Technologien im gemeinsamen Kontext von Serverless, Continuous Delivery und Multi-Cloud. Hierfür wird eine systematische Literaturrecherche (SLR) verwendet. Statistische Analysen der SLR und weitere Recherchen haben ergeben, dass die Einschränkungen von proprietären FaaS-Plattformen durch Abstraktionen und Multi-Cloud Tools ein alternatives Konzept ergeben, der Vendor Lock-in aber immer noch existiert. Ein Pseudo-Algorithmus wurde entwickelt, um das geeignete Infrastructure-as-Code (IaC) Modell für das Vendor Lock-in Problem zu finden, solange keine Standards für Serverless Anwendungen existieren. Auf Basis weiterer Recherchen wurde ein Konzept für eine GitOps basierte Continuous Delivery Pipeline entwickelt. Um das Konzept zu zeigen wurde eine prototypische CI/CD Pipeline anhand einer Beispielanwendung implementiert. Das Konzept bietet eine Isolierung der Plattform- Anbieter und ist anbieterunabhängig. Das Ergebnis der Arbeit hat gezeigt, dass die Technologie noch jung im Bezug auf Tooling-Support, Standardisierung und Forschung ist. Weiterhin wird zu erwarten sein, dass sich die Lücke zwischen Serverless und Container-Orchestrierung irgendwann schließen wird. 3 Inhaltsverzeichnis 1. Einleitung 17 1.1. Forschungsmethode ................................ 19 1.2. Gliederung ..................................... 19 2. Grundlagen 21 2.1. Serverless und Function-as-a-Service ....................... 21 2.2. Continuous Delivery für Serverless Anwendungen ................ 26 2.3. Der Vendor Lock-in und Function-as-a-Service .................. 29 3. Verwandte Arbeiten 33 4. Stand der Technik: Eine Systematische Literaturrecherche 35 4.1. Planung der Recherche: Das Review-Protokoll .................. 35 4.2. Durchführung der Recherche ........................... 40 4.3. Ergebnisse der Recherche ............................. 42 4.4. Fazit der SLR ................................... 46 5. Alternative Konzepte für Continuous Delivery von Serverless Anwendungen 49 5.1. Infrastructure-as-Code für Serverless Anwendungen ............... 49 5.2. Alternatives Konzept: Abstraktionen durch Serverless Framework und Tools .. 51 5.3. Alternatives Konzept: Multi-Cloud Orchestrierung ................ 54 5.4. Fazit der Alternative ................................ 55 6. Konzept: GitOps basiertes Continuous Delivery von Serverless Anwendungen 57 6.1. Cloud-agnostisches FaaS durch Container-Orchestrierung ............ 57 6.2. Continuous Delivery mit GitOps ......................... 57 6.3. Architektur des Konzepts ............................. 59 7. Prototypische Implementierung 63 7.1. Verwendete Technologien ............................. 63 7.2. Komponenten der Implementierung ........................ 66 7.3. Beispiel einer FaaS Anwendung: Wettervorhersage mit der OpenWeatherMap . 72 7.4. Fazit der Implementierung ............................. 74 8. Zusammenfassung und Ausblick 75 Literaturverzeichnis 77 A. Datenextraktion der Studien 87 B. Synthetisieren der Daten 111 5 C. Suchphrasen der SLR 115 6 Abbildungsverzeichnis 1.1. Serverless im Trend (2014-2019) Quelle: [Goo] .................. 18 1.2. Gewünschte Architektur (vereinfacht) für von Serverless-Anwendungen Quelle: inspiriert durch [Zima] ............................... 19 2.1. Monolith, Microservices und Serverless Funktionen (inspiriert durch: [Ang]) .. 22 2.2. Funktionsweise von FaaS(inspiriert durch: [Gan17]) ................ 23 2.3. Serverless und andere Cloud-native Technologien Quelle: [Cnc18]) ........ 24 2.4. Allgemeine Continuous Delivery Pipeline ..................... 27 2.5. CI/CD Pipeline einer Serverless Anwendung in AWS - Quelle: inspiriert durch ([LB16]) ....................................... 31 4.1. Suchphrase (Beispiel) ................................ 37 4.2. SLR Ergebnisse ................................... 41 4.3. Probleme/Herausforderungen im CI/CD in Serverless/FaaS ............ 43 4.4. Konzepte für CI/CD in Serverless/FaaS ...................... 44 4.5. Technologien für CI/CD in Serverless/FaaS .................... 45 4.6. Konzepte für CI/CD in Multi-Cloud ........................ 46 4.7. Technologien für CI/CD in Multi-Cloud ...................... 47 5.1. Allgemeine Deployment-Pipeline mit dem Serverless Framework Quelle: Eigene Darstellungs ..................................... 53 5.2. Allgemeine Deployment-Pipeline mit Multi-Cloud IaC Tool Terraform Quelle: Eigene Darstellung ................................. 55 6.1. Abstraktes Multi-Cloud FaaS durch Container-Orchestrierung Quelle: Eigene Dar- stellung ....................................... 58 6.2. GitOps Pipeline: Push-Modell Quelle: [Wea] ................... 59 6.3. GitOps Pipeline: Pull-Modell Quelle: [Wea] .................... 59 6.4. Abstrakte CD-Pipeline von containerisierten Serverless Anwendungen Quelle: Eigene Darstellung ................................. 60 6.5. Gesamt-Architektur des Konzepts: GitOps basiertes Continuous Delivery Quelle: Eigene Darstellung ................................. 61 7.1. OpenFaaS Komponenten Quelle: [Ope19] ..................... 65 7.2. GitHub Commit Logs (Build Status) mit Travis CI Integration - Quelle: [Sah19] . 67 7.3. Architektur der prototypischen Continuous Delivery Pipeline Quelle: Eigene Dar- stellung ....................................... 69 C.1. Suchphrase 1 (FF1) ................................. 115 C.2. Suchphrase 2 (FF1) ................................. 116 7 C.3. Suchphrase 3 (FF1) ................................. 116 C.4. Suchphrase 4 (FF1) ................................. 116 C.5. Suchphrase 5 (FF1) ................................. 117 C.6. Suchphrase 6 (FF2) ................................. 117 C.7. Suchphrase 7 (FF3) ................................. 117 C.8. Suchphrase 8 (FF3) ................................. 118 8 Tabellenverzeichnis 2.1. Vergleich der Cloud-spezifischen Features von AWS Lambda, Google Cloud Func- tions und Azure Functions ............................. 30 4.1. Suchterme mit Abkürzungen und Synonymen ................... 37 4.2. Formular zur Datenextraktion ............................ 39 4.3. Synthese-Formular für FF1 ............................. 39 4.4. Synthese-Formular für FF2 ............................. 39 4.5. Synthese-Formular für FF3 ............................. 39 4.6. Die SLR-Studien nach Quelle ............................ 41 A.1. Datenextraktion für [AC17] ............................. 87 A.2. Datenextraktion für [SJ17] ............................. 88 A.3. Datenextraktion für [FCSS15] ........................... 88 A.4. Datenextraktion für [DMB18] ........................... 89 A.5. Datenextraktion für [FSR+14] ........................... 89 A.6. Datenextraktion für [FCS+18] ........................... 90 A.7. Datenextraktion für [BGK+13] ........................... 90 A.8. Datenextraktion für [FCR+13] ........................... 91 A.9. Datenextraktion für [GCGA15] ........................... 91 A.10.Datenextraktion für [VJ14] ............................. 92 A.11.Datenextraktion für [AKC+15] ........................... 92 A.12.Datenextraktion für [Ren16] ............................ 93 A.13.Datenextraktion für [BIS+14] ............................ 93 A.14.Datenextraktion für [SZD+15] ........................... 94 A.15.Datenextraktion für [Elg15] ............................. 94 A.16.Datenextraktion für [MJB+17] ........................... 95 A.17.Datenextraktion für [MB17] ............................ 95 A.18.Datenextraktion für [SS18] ............................. 96 A.19.Datenextraktion für [JY18] ............................. 96 A.20.Datenextraktion für [MPF18] ............................ 97 A.21.Datenextraktion für [LRLE17] ........................... 98 A.22.Datenextraktion für [HB13] ............................. 99 A.23.Datenextraktion für [PM13] ............................. 99 A.24.Datenextraktion für [FRC+13] ........................... 100 A.25.Datenextraktion für [CFN+14] ........................... 101 A.26.Datenextraktion für [PTD+15b] ........................... 101 A.27.Datenextraktion für [CDR+17] ........................... 102 A.28.Datenextraktion für [PTD+15b]

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    119 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us