Das Continuous Delivery-Bereitstellungsmodell
Sie haben nun die vielen Nachteile der „Epic Deployment“-Methode als Modell für die Bereitstellung von Software kennengelernt. Doch zu wissen, was nicht funktioniert, ist nur der erste Schritt. In dieser Lerneinheit lernen Sie die Alternative zu dieser monolithischen Methode kennen und erfahren, wie Sie damit die Zuverlässigkeit Ihres Systems verbessern.
Was ist Continuous Delivery?
Unter Continuous Delivery versteht man eine Bereitstellungsmethode, mit der Softwareänderungen schneller, reibungsloser, auf weniger riskante Weise und besser reproduzierbar verfügbar gemacht werden können. Dabei wird aus einer Softwarebereitstellung oder einem Update kein episches Unterfangen, sondern ein schnelles, routiniertes und vorhersagbares Ereignis, das bei Bedarf durchgeführt wird.
Bereitstellungshäufigkeit: Beim Continuous Delivery-Modell werden Bereitstellungen häufig durchgeführt. „Häufig“ kann monatlich, wöchentlich, täglich oder sogar stündlich bedeuten. Das Entscheidende dabei ist, dass kleinere Änderungen zielgerichtet und in kürzeren Abständen bereitgestellt werden.
Initiierung durch Codecommit: Bereitstellungen werden nicht mehr lange im Voraus geplant, sondern durch das Committen von Code gestartet. Bei diesem Code kann es sich um Software, Infrastruktur oder sogar Softwarekonfigurationen handeln.
Automatisierte Tests: Mithilfe von integrierten automatisierten Tests kann nicht nur Code getestet, sondern auch ein schnelles Feedback zu den Testergebnissen zurückgegeben werden. Und genau dieses schnelle Feedback ermöglicht Ihnen, Tests mit Fehlern schnell zu durchlaufen und zu beheben.
Nachdem der Code getestet wurde, können Sie die Bereitstellung mit einem End-to-End-Test in einer Reihe von Stagingumgebungen testen, wie z. B. einer Test- oder QA-Umgebung. Das Testen Ihrer Bereitstellungen in diesen Umgebungen stellt einen wesentlichen Bestandteil des Bereitstellungsprozesses dar.
Verlaufsdatensätze: Es soll nicht nur ein Verlaufsdatensatz der Bereitstellungsaktivitäten erstellt werden, sondern Sie sollen auch zu jedem beliebigen Zeitpunkt die Produktionsumgebung abstimmen können. Sie möchten wissen, durch welche Bereitstellung die aktuelle Produktionsumgebung erstellt wurde. Auf diese Weise können Sie Konfigurationen, Testergebnisse und den Code selbst bis zu dem jeweiligen Pull Request zurückverfolgen, durch den die Bereitstellung ausgelöst wurde.
Ziele der Bereitstellung
Nachdem Sie nun wissen, wie Continuous Delivery funktioniert, können Sie sich mit den Zielen beschäftigen, die Sie durch den Einsatz von DevOps-Methoden wie dieser bei der Bereitstellung von Softwarelösungen erreichen können.
Ziel 1: Verringern der Belastung, die entsteht, wenn Dienste bereitgestellt werden und ihre Zuverlässigkeit gleichzeitig erhöht werden soll
Hier profitieren beide Seiten: Einerseits wird die Mitarbeiterzufriedenheit erhöht, da die Belastung im Zusammenhang mit der Bereitstellung von Software und Infrastruktur reduziert wird. Andererseits verbessert sich auch die Benutzerzufriedenheit (und wieder die Zufriedenheit der Mitarbeiter), da die Systeme zuverlässiger funktionieren. Angesichts der positiven Auswirkung auf die Kundenzufriedenheit ist dies sogar eine Win-Win-Win-Situation.
Ziel 2: Verkürzen der Zeit, die zwischen dem Zeitpunkt des Feststellens einer erforderlichen Änderung und ihrer Bereitstellung in der Produktion liegt
Angenommen, Sie entdecken einen Codefehler, der sich negativ auf den Umsatz auswirkt. Sie wissen genau, wo das Problem liegt und wie Sie den Fehler im Code beheben können. Wie lange dauert es, bis diese Codeänderung in der Produktion ankommt? Wie viele Schritte werden erforderlich sein? Wie wird der Code getestet? Wenn Sie in diesem Szenario DevOps-Methoden verwenden, können Sie den Code vor der Mittagspause committen und erhalten noch bevor Sie wieder zurück an Ihrem Platz sind eine Nachricht, dass das Problem erfolgreich behoben wurde.
Ziel 3: Verkürzen der Zeit, die zwischen der Idee für eine nützliche Software und ihrer Bereitstellung liegt
Hier ist die Situation ähnlich wie beim vorherigen Ziel, nur dass es nicht um Änderungen, sondern um die Implementierung von neuen Ideen geht. Wie lange dauert es, bis die Innovation umgesetzt wird? Mit diesem Bereitstellungsmodell können Sie ein neues Konzept in ein Produktionssystem integrieren und sicher sein, dass das aktuelle System dadurch in keiner Weise beeinträchtigt wird. Mit dieser Sicherheit lassen sich neue Funktionen schneller bereitstellen.
Auswirkungen der Bereitstellung
Die in dieser Einheit erörterten Ziele sind nicht nur theoretische Bestrebungen, sie sind erreichbar. Dies zeigen die folgenden Auszüge aus der Statistik des Berichts 2019 Accelerate State of DevOps Report von „DevOps Research and Assessment (DORA)“ und „Google Cloud DevOps & SRE“. Darin wurden bei hocheffizienten DevOps-Unternehmen folgende Merkmale festgestellt:
- 208-mal mehr Bereitstellungen.
- 106-mal schnellere Bereitstellung ab dem Zeitpunkt des Commits.
- 7-mal niedrigere Fehlerrate bei Änderungen.
- 2.604-mal kürzere Wiederherstellungszeit nach Incidents.
Alle diese Vorteile zusammengenommen führen zu einem höheren Umsatz und einer schnelleren Markteinführung.
Diese Zahlen belegen die Wichtigkeit von Bereitstellungsmethoden.