Continuous Deployment
Continuous Deployment (kontinuierliche Bereitstellung) ist eine Strategie für Software-Releases, bei der jede Version, die die automatisierte Testphase erfolgreich durchlaufen hat, automatisch für die produktive Bereitstellung freigegeben wird. Automatisierte Freigaben führen dazu, dass die Software ohne menschliches Eingreifen in den Produktiveinsatz gelangt.
Continuous Deployment ist nicht mit Continuous Delivery (kontinuierliche Auslieferung) identisch, obwohl die beiden Begriffe oft verwechselt werden. Die Klärung der beiden Begriffen wird zusätzlich erschwert, da Continuous Deployment und Continuous Delivery das gleiche Akronym CD verwenden.
Ziel von Continuous Delivery ist es, regelmäßig neuen Code an die Qualitätssicherung (QS) und die operativen Teams zum Testen weiterzugeben. Dies bedeutet in der Regel die Einführung eines produktionsähnlichen Staging-Bereichs. Dabei kommt es häufig zu einer zeitlichen Verzögerung zwischen dem Zeitpunkt, zu dem eine Freigabe im Staging-Bereich überprüft werden kann, der manuellen Annahme von Änderungen und der Freigabe des neuen Codes an die Produktion.
Im Gegensatz dazu erfordert Continuous Deployment keine manuelle Überprüfung eines Staging-Bereichs. Denn bei diesem Verfahren werden automatisierte Tests frühzeitig in den Entwicklungsprozess integriert und über alle Phasen des Releases hinweg fortgeführt. Folglich gibt es keine Zeitverzögerung zwischen dem Zeitpunkt, an dem eine Code-Änderung auf Applikations- und Plattformebene getestet wird, und dem Zeitpunkt, an dem er in die Live-Produktion geht.
Beide Strategien haben aber etwas gemeinsam: Sie basieren auf einer Echtzeit-Infrastruktur und Application Monitoring Tools. Damit lassen sich Probleme erkennen, die vor der Bereitstellung nicht in der Test-Feedback-Schleife aufgefangen wurden.
Die Einhaltung der Compliance oder andere Einschränkungen können den Einsatz von Continuous Deployment durch IT-Organisationen verhindern. Andere Erwägungen - wie zum Beispiel die Reife der DevOps-Prozesse und Best Practices innerhalb der IT-Organisation - können ebenfalls Einfluss auf die Entscheidung haben, ob Code auf Basis von Continuous Delivery, Continuous Deployment oder einer Kombination beider Ansätze, basierend auf Use Cases, implementiert werden.