Was ist Continuous Delivery?

URL kopieren

Continuous Delivery ist ein Verfahren zur Softwareentwicklung, bei dem neuer Code mithilfe von Automatisierung schneller veröffentlicht werden kann.

Es wird ein Prozess eingerichtet, mit dem die App-Änderungen eines Entwicklers durch Automatisierung in ein Code-Repository oder eine Container-Registry verschoben werden können.

Checkliste für die Unternehmensautomatisierung in einer DevOps-Welt herunterladen

Continuous Delivery ist ein Teil von CI/CD, einer Methode zur häufigen Bereitstellung von Software durch die Automatisierung einiger Stufen der App-Entwicklung. 

Das „CI“ in CI/CD steht für Continuous Integration. Bei einer Continuous Integration werden regelmäßig neue Codeänderungen für Apps entwickelt, getestet und in einem gemeinsamen Repository zusammengeführt. Damit soll der Konflikt verhindert werden, den zu viele Branches einer App verursachen können, wenn sie zeitgleich entwickelt werden.

Das „CD“ in CI/CD kann für Continuous Deployment oder Continuous Delivery stehen. Dies sind Methoden zur Automatisierung weiterer Stufen in der Pipeline.

CI/CD FLow

Red Hat Ressourcen

Continuous Delivery und Continuous Deployment sind miteinander verwandte Konzepte, die manchmal separat verwendet werden, um den Grad der Automatisierung anzugeben.

Continuous Delivery bedeutet üblicherweise, dass App-Änderungen eines Entwicklerteams automatisch auf Bugs getestet und in ein Repository (wie GitHub oder eine Container-Registry) hochgeladen werden, von wo aus sie vom Operations-Team in einer Live-Produktivumgebung bereitgestellt werden können. Auf diese Weise können Transparenz- und Kommunikationsprobleme zwischen Dev- und Business-Teams schneller gelöst werden. Mit Continuous Delivery soll also sichergestellt werden, dass neuer Code mit minimalem Aufwand bereitgestellt werden kann.

Continuous Deployment deckt hingegen einige zusätzliche Schritte im Release-Prozess für die neue Software ab. Hierzu zählt in der Regel die automatische Freigabe von Entwickleränderungen vom Repository zur Produktivphase, wo sie direkt vom Kunden genutzt werden können. Dieser Vorgang soll der Überlastung von Operations-Teams bei manuellen Prozessen entgegenwirken, die die Anwendungsbereitstellung verlangsamen. Continuous Deployment baut die Vorteile der Continuous Delivery aus, indem auch noch die nächste Phase der Pipeline automatisiert wird.

Eine CI/CD-Pipeline umfasst mehrere Schritte, die zur Bereitstellung einer neuen Softwareversion ausgeführt werden. Durch die Einführung von CI/CD wird eine CI/CD-Pipeline eingerichtet.

Eine CI/CD-Pipeline beginnt mit Überwachung und Automatisierung, um den Prozess der Anwendungsentwicklung zu verbessern. Dies betrifft speziell die Integrations- und Testphase, aber auch die Bereitstellung und Implementierung. 

Sicherlich lassen sich die Schritte einer CI/CD-Pipeline auch manuell ausführen, ihr größter Mehrwert ist jedoch die Automatisierung des Anwendungs-Lifecycles.

Mehr über CI/CD erfahren

Der Begriff „DevOps“ setzt sich aus den Begriffen „Development“ (Entwicklung) und „Operations“ (Operationen) zusammen. Das DevOps-Konzept umfasst die Aspekte Unternehmenskultur, Automatisierung und Plattformdesign und hat das Ziel, den geschäftlichen Mehrwert und die Reaktionsfähigkeit durch eine schnelle Bereitstellung hochwertiger Services zu steigern.

Continuous Delivery ist eine spezielle Art der Softwareentwicklung, die häufig in Verbindung mit DevOps angewendet wird. Ein DevOps-Konzept beinhaltet in der Regel die Erstellung einer Continuous Delivery-Pipeline.

DevOps umfasst Ansätze dazu, wie eine Idee (z. B. neue Software-Features, Verbesserungsanfragen oder Bug Fixes) von der Entwicklung bis zum Einsatz in der Produktivumgebung beschleunigt werden kann, um dort zur Wertschöpfung beizutragen. 

Hier arbeiten Entwickler, die üblicherweise in einer Standardentwicklungsumgebung (SDE) programmieren, eng mit Testern und den IT-Operations-Teams zusammen, um Software-Builds, Code-Commits, Komponententests und die Veröffentlichung neuer Versionen zu beschleunigen – ohne dass dies auf Kosten der Zuverlässigkeit geht.

Ein wichtiges Ergebnis der Implementierung von DevOps ist eine CI/CD-Pipeline, in der Entwicklungs- und Operations-Teams mithilfe einer agilen Methode zusammenarbeiten. 

Mehr über DevOps erfahren

CI/CD nutzt Automatisierung, um Entwicklungs-, Bereitstellungs- und Testprozesse zu beschleunigen. Automatisierung trägt dazu bei, die Qualität zu verbessern und die Anzahl von menschlichen Fehlern zu verringern. Durch Automatisierung kann im Rahmen einer DevSecOps-Strategie außerdem die Sicherheit erhöht werden.

Einige Tools unterstützen speziell die Integration (Continuous Integration), andere die Entwicklung und Bereitstellung (Continuous Deployment), andere wiederum kontinuierliches Testen oder ähnliche Funktionen.

Eines der bekanntesten Open Source-Tools für CI/CD ist der Automatisierungsserver Jenkins. Jenkins kann alles verarbeiten – vom einfachen CI-Server bis hin zum kompletten CD-Hub.

Ebenfalls häufig verwendet wird Tekton, ein Open Source-Projekt der Continuous Delivery Foundation. Tekton ermöglicht die deklarative Beschreibung von Bereitstellungs-Pipelines mit Kubernetes-Konzepten und deren On-Demand-Ausführung in Containern.

Tekton ist die Basis für OpenShift Pipelines, einer CI/CD-Lösung für Red Hat® OpenShift®.

Mehr über OpenShift Pipelines erfahren

Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Was ist ein DevOps Engineer? | Rolle & Aufgaben erklärt

Erfahren Sie, was ein DevOps Engineer macht, welche Fähigkeiten erforderlich sind und wie man ein DevOps Engineer wird. Red Hat Kurse und Zertifizierung

Was ist CI/CD? | Automatisierung in der Softwareentwicklung

Erfahren Sie, wie Continuous Integration & Continuous Deployment funktionieren, was eine CI/CD-Pipeline ist und ihre Bedeutung in der Softwareentwicklung.

Was ist agile Softwareentwicklung? Methodik und Bedeutung

Erfahren Sie, wie agile Softwareentwicklung funktioniert, wie die Methodik Teams unterstützt, flexibel zu arbeiten, und welche Rolle sie im DevOps-Ansatz spielt

Ressourcen zu DevOps