Continuous Delivery

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Continuous Delivery (CD) bezeichnet eine Sammlung von Techniken, Prozessen und Werkzeugen, die den Softwareauslieferungsprozess (englisch: Deployment) verbessern.

Techniken wie Continuous Integration (CI), Testautomatisierung und kontinuierliche Installation erlauben in Kombination mit agilen Methoden die Entwicklung qualitativ hochwertiger Software. Software-Build-Jobs auf CI-Servern wie Jenkins ermöglichen ein automatisiertes Testen und Erstellen von „Nightly“- oder „Release“-Versionen. Diese Versionen können mit Hilfe von CD automatisiert auf Entwicklungs-, Test-, Integrations- und Produktivumgebung eingespielt werden.

Die Automatisierung der Integrations- und Auslieferungsprozesse ermöglicht schnelle, zuverlässige und wiederholbare Deployments. Erweiterungen oder Fehlerkorrekturen können somit mit geringem Risiko und niedrigem manuellem Aufwand in die Produktivumgebung oder zum Kunden ausgeliefert werden. Continuous Delivery wird primär in Kombination mit agilen Methoden eingesetzt. Für eine Einführung von Continuous Delivery wird häufig eine Umsetzung des DevOps-Ansatzes empfohlen.

Prinzipien[Bearbeiten | Quelltext bearbeiten]

Ein zentraler Begriff des CD ist die Deployment-Pipeline[1] als Lean Poka Yoke: eine Menge von Validierungen, die eine Software auf ihrem Weg zur Veröffentlichung bestehen muss. Der Programmcode wird dazu für jede Änderung, die in der Versionsverwaltung gemacht wird, falls nötig auf dem Buildserver übersetzt und dann paketiert. Es wird eine Reihe verschiedener Tests (eventuell auch manuell) ausgeführt, bevor die Software als veröffentlichungsfähig bezeichnet werden kann.

Entwickler, die zu einem CD-Prozess wechseln und lange Veröffentlichungszyklen gewohnt sind, müssen ihre Entwicklungstechniken anpassen. Jede Version in der Versionsverwaltung soll zu jeder Zeit lieferbar sein. Entwicklungsmuster wie Featuretoggles helfen dabei, Code früh zu versionieren, auch wenn er noch nicht zur Verwendung durch den Endanwender gedacht ist. Andere Techniken wie Branching werden nicht überflüssig, müssen jedoch an den Prozess angepasst werden.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

  • Quality Gate – Qualitätskriterien, die eine Software erfüllen muss, um den nächsten Prozessschritt beginnen zu dürfen
  • DevOps – Eine Sammlung von Anreizen, Prozessen und Werkzeugen, die zum Ziel haben, Bruchstellen zwischen Entwicklung und IT-Betrieb zu überwinden

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Jez Humble, David Farley: Continuous Delivery. Reliable Software Releases Through Build, Test, and Deployment Automation (= Addison-Wesley Signature). Addison-Wesley, Upper Saddle River 2010, ISBN 978-0-321-60191-9.
  • Eberhard Wolff: Continuous Delivery, 2. Auflage. Der pragmatische Einstieg. dpunkt, Heidelberg 2016, ISBN 978-3-86490-371-7.
  • Michael Hüttermann: DevOps for Developers. Integrate Development and Operations, The Agile Way. Apress, New York 2012, ISBN 978-1-4302-4569-8.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Jez Humble, Chris Read, Dan North: The Deployment Production Line. In: Joseph Chao u. a. (Hrsg.): Agile Conference, 2006. IEEE Computer Society, Washington 2006, ISBN 0-7695-2562-8, doi:10.1109/AGILE.2006.53.