Deployment Aspekte & DevOps Prinzipien PDF

Document Details

SmilingMahoganyObsidian

Uploaded by SmilingMahoganyObsidian

Universität Duisburg-Essen

2024

Prof. Dr.-Ing. Lucas Vincenzo Davi

Tags

DevOps deployment application management continuous deployment

Summary

Dieses Dokument ist eine Präsentation von Prof. Dr.-Ing. Lucas Vincenzo Davi zum Thema Deployment Aspekte und DevOps Prinzipien im Wintersemester 2024/25. Es behandelt Themen wie Continuous Deployment, Deployment Pipelines sowie die Theorie hinter DevOps.

Full Transcript

Vorlesung Application Management, Wintersemester 2024/25 Deployment Aspekte & DevOps Prinzipien Prof. Dr.-Ing. Lucas Vincenzo Davi Fakultät für Informatik Arbeitsgruppe Systemsicherheit © SYSSEC, Prof. Dr. Lucas Davi Rückblick...

Vorlesung Application Management, Wintersemester 2024/25 Deployment Aspekte & DevOps Prinzipien Prof. Dr.-Ing. Lucas Vincenzo Davi Fakultät für Informatik Arbeitsgruppe Systemsicherheit © SYSSEC, Prof. Dr. Lucas Davi Rückblick © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 2 Deployment Pipeline Automated Commit Manual Test Release Acceptance Stage Stages Stage Test Stages © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 3 Das erste Deployment Der erste Release ist mit dem höchsten Risiko verbunden und braucht einen guten Plan Deswegen Deployment von Anfang üben und automatisieren Das erste Deployment sollte bereits für einen Prototyp angewendet werden 1-2 Use-Cases beim Kunden zeigen Für das erste Deployment des Prototypen wird folgendes benötigt: Die Commit Stage Eine IT-Umgebung, die sehr ähnlich zu Produktivsystemen ist Automatisierter Prozess um Binärdateien auf dieser Umgebung zu installieren © SYSSEC, Prof. Dr. Lucas Davi Ein einfacher Smoke Test SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 4 Die IT-Umgebung für das erste Deployment Eigenschaften Gleiches Betriebssystem wie das Produktivsystem Gleiche installierte Software Keine Compiler und IDEs die auf der Entwicklungsmaschine genutzt werden Gleicher Betrieb und Wartung wie die Produktivumgebung Ähnliche Hardwarekonfigurationen © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 5 Rolling Back Deployments Wenn etwas schief geht, muss es eine Möglichkeit geben eine alte Version wieder einzuspielen Debugging auf Produktivsystemen sollte möglichst vermieden werden Herausforderungen Wenn Releases an den Daten etwas ändern, kann es umständlich sein ein Roll-Back durchzuführen Plan für Roll-Back Backup des Status (Datenbanken, Dateisystem) vor dem Release © SYSSEC, Prof. Dr. Lucas Davi Trainieren des Roll-Backs (inkl. Restore vom Backup) SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 6 Zero-Downtime Releases © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 7 Zero-Downtime Releases Auch als Hot Deployment bekannt Wechseln zwischen Releases geschieht unverzüglich Auch das Roll-Back sollte hierbei unverzüglich passieren Voraussetzung Einfaches Wechseln von Ressourcen wie Datenbanken, Services, Static Resources vor dem Release Zum Beispiel über das Ändern einer URI (Uniform Resource Identifier) Neue Bilder in einem extra Ordner mit Versionierung: /static/3.0.1/images Datenbank Wechsel kann kompliziert sein © SYSSEC, Prof. Dr. Lucas Davi Wichtige ausstehende Transaktionen sollten zwischengespeichert werden, um sie nicht zu verlieren SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 8 Wie wird ein Zero-Downtime Release umgesetzt? © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 9 Blue-Green Deployment © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 10 Schaubild © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 11 Diskussion von Blue-Green Deployments Wechseln zwischen Versionen geschieht über ein einfaches Umschalten im Router (in weniger als einer Sekunde) Probleme können Datenbanken verursachen, z.B. aufgrund von Datenmigrationen beim Schemawechsel Strategie: Applikation in Read-Only Modus versetzen Daten von der grünen Datenbank in die blaue migrieren Switch zur blauen Datenbank Read-Write Modus wieder aktivieren © SYSSEC, Prof. Dr. Lucas Davi Blue-Green Deployments sind auf einer einzelnen Produktivumgebung oder (bei entsprechendem Budget) auf einem Replikat möglich SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 12 Canary Releasing © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 13 Motivation für Canary Releasing Für sehr große Probleme tauchen Produktivsysteme ist es häufig auf, wenn die Testing ist nie 100% schwierig Capacity Applikation produktiv Tests vorab geschaltet wird durchzuführen © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 14 Schaubild © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 15 Diskussion zu Canary Releasing Roll-Back ist einfach Möglichkeit A/B Testing von Features durchzuführen Werden neue Features genutzt? Wird mehr Umsatz durch die neue Version erzielt? Inkrementelle Capacity Tests durch das langsame Hinzufügen von immer mehr Usern Umgang mit geteilten Ressourcen © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 16 Emergency Fixes © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 17 Vorgehensweise In jedem System kommt der Moment wo ein kritischer Bug auftaucht Trotzdem sollte der Deployment Prozess eingehalten werden Emergency Fixes müssen durch die Deployment Pipeline gehen (inklusive Testing) Oft wird einfach am Produktivssystem Code geändert, um den Bug zu beheben Risiko von Regression Bugs Unkown State Risiko weil Fixes nicht vernünftig gespeichert/aufgezeichnet werden Umso wichtiger sind kurze Deployment Zeiten © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 18 Weitere Aspekte von Emergency Fixes Schweregrad bestimmen Wie viele User sind betroffen? Wie oft kommt der Fehler vor? In welcher Form sind User betroffen? Nicht alleine fixen und nicht in der Nacht fixen Kann der Bug behoben werden indem man zu einer alten Version wechselt? © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 19 Disaster Planning © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 20 Release von User-Installed Software @ SYSSEC, Prof. Dr. Lucas Davi paluno – The Ruhr Institute for Software Technology 21 Release von User-Installed Software Releases von Client-installierter Software auf eigenen User PCs ist unterschiedlich zum Release einer Applikation auf einer Produktionsumgebung Wichtige zu berücksichtigende Aspekte Crash Reports von Usern erhalten Upgrade Prozess testen (inkl. Usability) Migration von Binärdateien, Daten und Konfigurationen Wartung von alten Versionen aufwändig Roll Back Möglichkeit Idealerweise sollten alle die gleiche Version haben Regelmäßige Update Prüfungen © SYSSEC, Prof. Dr. Lucas Davi Download im Hintergrund Installieren der neuen Version im Hintergrund SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 22 Continuous Deployment bei Facebook und Oanda © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 23 Wer nutzt Continuous Deployment? Flickr 10 Deployments pro Tag in 2009 Etsy 11.000 Deployments in 2011 Neue Mitarbeiter mussten in den ersten Tagen einfache Bugs finden, fixen und deployen in höchstens 2 Tagen Netflix nutzt Spinnaker für Continuous Delivery auf AWS Maschinen Facebook nutzt es seit 2005 © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 24 Continuous Deployment - Facebook Software besteht grob aus 4 Segmenten Web Frontend Code (PHP und andere Sprachen wie Python) Android Frontend Code (Java) iOS Frontend Code (Objective-C) Backend Infrastruktur Code (C, C++, Java, Python und andere Sprachen) Facebook Commit Statistik (2008 bis Juni 2014) Web Frontend Commits: 705.631 Android Frontend Commits: 68.272 iOS Frontend Commits: 146.658 Backend Infrastruktur Commits: 238.742 © SYSSEC, Prof. Dr. Lucas Davi Im Durchschnitt führt jeder Developer 3,5 Updates pro Woche aus mit durchschnittlich 92 LOC (lines of code) die hinzugefügt oder geändert wurden SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 25 Commit Types - Facebook © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 26 Management beeinflusst Continuous Deployment - Oanda © SYSSEC, Prof. Dr. Lucas Davi Bildquelle: https://research.facebook.com/publicatio ns/continuous-deployment-at-facebook- and-oanda/ SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 27 DevOps: Development Operations @ SYSSEC, Prof. Dr. Lucas Davi paluno – The Ruhr Institute for Software Technology 28 DevOps Ziele Effektive Kollaboration und Kommunikation von Entwicklung und Operations Code so häufig deployen wie möglich (Automatisierung, kein Big-Bang) Interdisziplinäres Team Building Erhöhung der Zuverlässigkeit und Geschwindigkeit Häufig wird DevOps Umsetzung nach einem schweren Fehler gefordert DevOps ist sehr populär geworden Manchmal werden mit DevOps schlechte Praktiken gerechtfertigt Entwickler erhalten vollständigen Zugriff auf Produktivsysteme entgegen anders lautender © SYSSEC, Prof. Dr. Lucas Davi regulatorischer Anforderungen SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 29 Developers Operations Konflikt Unterschiedliche Sichtweisen Sichtweise des Entwicklungsteams Neue Features und Udates Hohe Geschwindigkeit Innovationen Sichtweise des Operationteams Zuverlässigkeit Sicherheit Risikomanagement © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 30 Developer und Operations Kollaboration Teilen von Fähigkeiten, Expertisen und Vorgehensweisen Entwickler erlernen schnell neue Technologien; sind aber auf Operations angewiesen damit Prozesse automatisierbar sind Entwickler verstehen die Details des Codes; Operationsteam versteht, wie sich die Applikation im Produktiveinsatz verhält Operationsteam lernt viel von Entwicklern und kann diesen dann wiederrum helfen © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 31 Two Pizza Theory © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 32 Two Pizza Theory Restrukturierung in kleinen Teams Dabei soll das Team so klein sein, dass 2 Pizzen ausreichen Annahme: 2 große Pizzen mit jeweils 8 Stücken Also Team Größen von 8-10 Personen Nicht immer ist es möglich so kleine Teams zu bilden Zu viele kleine Teams erhöht den Kommunikationsaufwand © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 33 Experten Silos © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 34 Vermeiden von Volleyball Games © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 35 Mitarbeiter handeln wie der Vorgesetzte © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 36 Referenzen Die Vorlesungsfolien wurden zum großen Teil mit Hilfe folgender Quellen erstellt: © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 37 Referenzen Continuous Deployment at Facebook and OANDA https://research.facebook.com/publications/continuous-deployment-at-facebook-and- oanda/ © SYSSEC, Prof. Dr. Lucas Davi SICHERE SOFTWARESYSTEME Prof. Dr. L. Davi Vorlesung Application Management WiSe 2024/25 21.11.2024 38 Vorlesung Application Management, Wintersemester 2024/25 Vielen Dank für Ihre Aufmerksamkeit Prof. Dr.-Ing. Lucas Vincenzo Davi Fakultät für Informatik Arbeitsgruppe Systemsicherheit © SYSSEC, Prof. Dr. Lucas Davi

Use Quizgecko on...
Browser
Browser