Close

Die Prinzipien von Continuous Delivery

Entdecke die Grundsätze der Continuous Delivery mit diesen Leitfäden für den Einstieg.


Continuous Delivery (CD) ist eine Sammlung von vielen früheren erfolgreichen agilen und organisatorischen Best Practices. CD konzentriert eine Organisation auf die Entwicklung eines optimierten, automatisierten Software-Release-Prozesses. Im Mittelpunkt des Release-Prozesses steht eine iterative Feedbackschleife. Dabei geht es darum, die Software so schnell wie möglich an die Endbenutzer auszuliefern, aus deren Praxiserfahrungen zu lernen und dieses Feedback dann in den nächsten Release einfließen zu lassen.

Vergleich zwischen Continuous Integration, Continuous Delivery und Continuous Deployment

Damit Services durchgehend verfügbar sind, müssen Teamstruktur, Werte und Tools aufeinander abgestimmt werden, um sicherzustellen, dass der optimale Betrieb zu einer Kernkompetenz wird. Artikel lesen

Geschäftlicher Nutzen von Continuous Delivery

Nicht nur führende Technologieunternehmen profitieren von Continuous Delivery. CD verbessert die Geschwindigkeit, Produktivität und Nachhaltigkeit von Softwareentwicklerteams. Artikel lesen

Wertstromanalyse

Die Wertstromanalyse ist ein Analyseverfahren, mit dem du deine Continuous Delivery-Pipeline optimieren kannst. Erfahre, wie und warum dieses Verfahren eingesetzt wird. Artikel lesen


CD ist eine organisationsweite, integrative Methodik, die auch Nicht-Entwicklungs-Teams aus den Bereichen Design, Produkt und Marketing miteinbezieht. CD ermutigt Entwickler, sich auf die Auslieferung des Endbenutzerprodukts zu konzentrieren, während Nicht-CD-Umgebungen Anreize für das "Over the Wall"-Verhalten bieten können, bei dem das QS-Team die primäre Benutzererfahrung für Entwickler wird. In den nächsten Abschnitten werden konkrete Prinzipien behandelt, die die Grundlage für CD-Workflows bilden.

Ein Diagramm, das den kontinuierlichen Flow von Computercode und Aufgabenelementen zeigt. | Atlassian CI/CD

Wiederholbarer zuverlässiger Prozess

Organisationsprozesse haben ihren eigenen Entwicklungslebenszyklus. Sie beginnen normalerweise als manuelle Checklisten oder "Playbooks", die Listen von Aufgaben sind, die manuell ausgeführt werden. Später können sie mithilfe von Softwaretools und Skripten automatisiert werden. Das Committen dieser Playbooks in Software-Skripten stellt sicher, dass sie wiederholbar sind. Wenn die Checkliste erneut ausgeführt werden muss, kann ein Teammitglied das Skript ausführen. Die Zuverlässigkeit wird erreicht, wenn diese Playbook-Skripte konsistent zwischen den Umgebungen ausgeführt werden. Beispielsweise sollte das Playbook für die Bereitstellung von Code in einer Entwicklungs- oder Staging-Umgebung die Produktionsumgebung so genau wie möglich widerspiegeln. Diese zuverlässige Konsistenz zwischen Umgebungen und Ausführungen eliminiert eine ganze Klasse von Konsistenzfehlern.

Automatisiere alles

Die Automatisierung ist ein Schlüsselelement von CD. Die Zeit eines Menschen ist kostbar und man sollte sie sparsam einsetzen – und zwar für schöpferische Tätigkeiten, nicht für langweilige Playbook-Aufgaben. Ein manueller Prozess ist erst dann wirklich wiederholbar und zuverlässig, wenn er in Code übermittelt wurde und bei Bedarf automatisch ausführbar ist. Automatisierte Aufgaben können zusammengefügt werden, um weitere Automatisierungsgrade zu schaffen. Automatisiere so viel wie möglich: Tests, Releases, Konfigurationsänderungen und mehr.

Versionskontrolle

Als Eckpfeiler von CD ist die Versionskontrolle ein absolutes Muss für jedes ernst gemeinte Softwareprojekt. Ein Team aus Entwicklern kann durch die Versionskontrolle effizient an einer gemeinsamen Codebasis zusammenarbeiten. Git ist das am weitesten verbreitete Versionskontrollsystem und ein großartiger Begleiter für CD. Dadurch, dass die Versionskontrolle Rollbacks zu früheren Releases ermöglicht, ist auch die "Rückgängigmachen"-Funktion verfügbar. Nicht nur Code, sondern auch Konfiguration, Skripte, Datenbanken und Dokumentation sollten alle der Versionskontrolle unterliegen, sodass Änderungen im Verlauf nachverfolgen werden können.

Qualität von Builds

Die Qualität spielt bei CD eine große Rolle und wird nicht erst später an das QS-Team abgetreten. Der Qualitätsgedanke ist in jeden Schritt der Release-Pipeline eingebrannt. Durch die zentrale Feedbackschleife bei CD wird die Qualität, die schließlich die Kunden erreicht, kontinuierlich überprüft und nochmals überprüft. Neue Funktionen werden mit automatisierten Tests geliefert, die sicherstellen, dass der neue Code fehlerfrei ist und die Qualitätserwartungen erfüllt. Bei der Projektplanung für neue Feature-Releases sollten auch Überlegungen zu Analysen, zur Leistungsüberwachung und zu den Aufgaben der automatisierten Testinstrumentierung miteinbezogen werden.

Erledige zuerst das Schwierigste

Mühsame, zeitintensive oder fehleranfällige Aufgaben nehmen mit der Zeit zu und summieren sich. Unangenehme Aufgaben solltest du daher so schnell wie möglich angehen, um einen zunehmenden Energieverlust zu vermeiden. Stell dir eine unangenehme Aufgabe vor, die 20 Minuten dauert und fünfmal pro Woche erledigt werden muss. Das sind in Summe 100 unangenehme Minuten pro Woche. Und ca. 400 unangenehme Minuten im Monat, usw. Stell dir vor, du könntest diese Aufgabe angehen und optimieren, sodass die unangenehme Zeit komplett verschwindet. Das wäre ganz eindeutig ein Gewinn.

"Erledige zuerst das Schwierigste" ist auch eine gute Übung, Schwachstellen im Organisationsprozess zu erkennen. Sollte es eine Aufgabe geben, die hinausgezögert oder aktiv vermieden wird, dann ist das ein Hinweis darauf, dass es dort Raum für Verbesserung gibt. Dem solltest du aktiv nachgehen. Teams sollten sich regelmäßig mit schwierigen Aufgaben befassen, um mit ihnen vertraut zu sein und sie bei Planungsgesprächen im Kopf zu haben.

Jeder ist verantwortlich

Der Fokus und die Anreize innerhalb der gesamten Organisation sollten dafür sorgen, eine möglichst hohe Qualität des Produkts für Endbenutzer zu gewährleisten. Die Aufmerksamkeit der Produktmanager sollte beim Planen auf das Deployment und die Qualitätssicherung gerichtet sein. Das Sicherheitsteam sollte aktiv am Release-Prozess beteiligt sein. Mitglieder des QS-Teams sollten Entwicklungs- und Staging-Umgebungen mit so viel Strenge testen, wie sie es auch in der Produktion tun würden, um alle Fehler vor dem letztendlichen Release aufzuspüren. Die Entwickler sollten aktiv für den Produktions-Release planen.

Ein Team arbeitet zusammen, um den Code vor dem Release zu überprüfen. | Atlassian CI/CD

"Fertig" bedeutet releasen

Das Geschäft von Softwareunternehmen ist es, Software an Endbenutzer zu liefern. Das Geschäft läuft nicht, wenn eine App ausschließlich auf dem Rechner der Entwickler funktioniert. Der Satz "Bei mir funktioniert es" ist ein häufiges Warnsignal für mangelndes Bewusstsein für das übergeordnete Unternehmensziel sowie mangelnde Empathie für Endanwender. CD konzentriert sich ausschließlich auf die Auslieferung von Software an Endkunden. Darüber hinaus bedeutet "fertig" nicht, wenn der Beitrag eines einzelnen Teammitglieds fertig ist, sondern wenn der Beitrag des gesamten Teams fertig ist.

Kontinuierliche Verbesserung

Mehrwert durch Continuous Delivery

Die vorherigen Abschnitte haben für den Anfang hoffentlich den hohen Mehrwert von CD bereits gut veranschaulichen können. Auf Makroebene fördert CD die Ausführungseffizienz, die teamübergreifende Kommunikation, die Markteignung des Produkts, die Agilität und die allgemeine organisatorische Transparenz.

Auf Mikroebene kann CD mit Messungen expliziter Nachverfolgungsmetriken instrumentiert werden. Einige wertvolle CD-Metriken könnten sein:

  • Die Zeit von der Designphase neuer Features bis zur Produktionsfreigabe
  • Wie viele Produktionsfehler bei Benutzern aufgetreten sind
  • Der Grad der Nutzerinteraktion bei neuen Funktionen
  • Die Häufigkeit von Releases neuer Funktionen

Darüber hinaus kann CD als Grundlage für die Erstellung von organisatorischen Leistungskennzahlen wie KPIs verwendet werden. Schließlich bieten der Umsatz und die finanzielle Lage des Unternehmens eine gute Möglichkeit, die Auswirkungen der organisatorischen Praktiken zu messen.

Der Einstieg in Continuous Delivery

Sobald man ein Verständnis für die Vorteile und die Philosophie der CD entwickelt hat, ist der nächste Schritt die Einführung von CD. Ein guter Ausgangspunkt dafür ist Continuous Integration (CI). Sie ist der Vorläufer von CD und konzentriert sich auf die Automatisierung des Code-Release-Workflows. Dies geschieht durch den Einsatz von automatisierten Code-Testtools und Qualitätssicherungsaufgaben. Sobald CI einsatzbereit ist, können CD-Prozesse darauf aufgebaut werden, um Code für Endbenutzer bereitzustellen und eine Feedbackschleife zu entwickeln, die zukünftige Releases steuert.

Max Rehkopf
Max Rehkopf

Als selbst ernannter "Chaos-Fan" versuche ich, mit agilen Methoden und schlanken Ansätzen Ordnung in meinen Alltag zu bringen. Dieses Wissen teile ich in Artikeln, Gesprächen und Videos für Atlassian gerne mit anderen.


Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Abbildung: DevOps

DevOps-Community

Abbildung: Karte

Kostenlos loslegen

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up