Was ist „Continuous Delivery“?
Die kontinuierliche Bereitstellung ist für Organisationen zu einer zwingenden Anforderung geworden. Um Ihren Benutzern einen Mehrwert zu bieten, müssen Sie regelmäßig und fehlerfrei veröffentlichen.
Continuous Delivery (CD) ist der Prozess der Automatisierung von Build, Test, Konfiguration und Bereitstellung von einer Build- zu einer Produktionsumgebung. Eine Release-Pipeline kann mehrere Test- oder Staging-Umgebungen erstellen, um die Erstellung der Infrastruktur zu automatisieren und neue Builds bereitzustellen. Aufeinanderfolgende Umgebungen unterstützen nach und nach länger laufende Integrations-, Last- und Benutzer-Akzeptanztests.
Vor CD waren die Software-Release-Zyklen ein Engpass für Anwendungs- und Betriebsteams. Diese Teams verließen sich oft auf manuelle Übergaben, was zu Problemen während der Veröffentlichungszyklen führte. Manuelle Prozesse führten zu unzuverlässigen Freigaben, die zu Verzögerungen und Fehlern führten.
CD ist eine schlanke (lean) Praxis, die darauf abzielt, die Produktion auf dem schnellsten Weg von der Verfügbarkeit eines neuen Codes oder einer Komponente zur Bereitstellung aktuell zu halten. Die Automatisierung minimiert die Zeit für die Bereitstellung und die Zeit für die Schadensbegrenzung (TTM – Time to Mitigate) oder die Zeit für die Behebung (TTR– Time to Remediate) von Produktionsvorfällen. Im Sinne von Lean optimiert CD die Prozesszeit und eliminiert Leerlaufzeiten.
Die kontinuierliche Integration (CI – Continuous Integration) startet den CD-Prozess. Die Release-Pipeline setzt jede aufeinanderfolgende Umgebung nach erfolgreichem Abschluss der Tests in die nächste Umgebung um. Die automatisierte CD-Release-Pipeline ermöglicht einen Fail-Fast-Ansatz bei der Validierung, bei dem die Tests, die am ehesten fehlschlagen könnten, zuerst ausgeführt werden und die längeren Tests erst nach dem erfolgreichen Abschluss der schnelleren Tests erfolgen.
Die sich ergänzenden Praktiken von Infrastructure as Code (IaC) und Monitoring erleichtern CD.
Progressive Expositionstechniken
CD unterstützt mehrere Muster für die progressive Exposition, auch „Kontrolle des Explosionsradius“ genannt. Diese Praktiken begrenzen den Grenzwert für die Bereitstellung, um Probleme mit dem gesamten Benutzerstamm zu vermeiden.
CD kann mehrere Bereitstellungsringe für eine progressive Belichtung aneinanderreihen. Ein Ring testet eine Bereitstellung für eine Benutzergruppe und überwacht deren Erfahrungen. Der erste Bereitstellungsring kann ein Indikator sein, um neue Versionen in der Produktion zu testen, bevor eine breitere Einführung erfolgt. CD automatisiert die Bereitstellung von einem Ring zum nächsten.
Die Bereitstellung für den nächsten Ring kann optional von einem manuellen Genehmigungsschritt abhängen, bei dem ein Entscheidungsträger die Änderungen elektronisch abzeichnet. CD kann eine prüfbare Aufzeichnung der Genehmigung erstellen, um regulatorische Verfahren oder andere Kontrollziele zu erfüllen.
Die Bereitstellung von Blue/Green beruht darauf, dass eine bestehende blaue Version in Betrieb bleibt, während eine neue grüne Version bereitgestellt wird. Bei dieser Praxis wird in der Regel ein Lastausgleich verwendet, um zunehmende Mengen an Datenverkehr auf die grüne Bereitstellung zu lenken. Wenn die Überwachung einen Incident entdeckt, kann der Datenverkehr an die blaue Bereitstellung umgeleitet werden, die weiterhin ausgeführt wird.
Feature-Flags oder Feature-Toggles sind eine weitere Technik für Experimente und Dark Launches. Feature-Flags schalten Funktionen für verschiedene Benutzergruppen ein oder aus, je nach Identität und Gruppenzugehörigkeit.
Moderne Release-Pipelines ermöglichen es Entwicklungsteams, neue Funktionen schnell und sicher bereitzustellen. CD kann in der Produktion gefundene Probleme schnell beheben, indem es eine neue Bereitstellung vornimmt. Auf diese Weise schafft CD einen kontinuierlichen Strom von Kundennutzen.