Continuous Integration (CI), Continuous Delivery (CD) und Continuous Deployment sind wesentliche Praktiken in der modernen Softwareentwicklung. Sie zielen darauf ab, die Qualität des Codes zu verbessern, Risiken zu minimieren und die Geschwindigkeit der Softwarebereitstellung zu erhöhen, indem sie automatisierte Prozesse zur Integration und Bereitstellung von Software einführen. In diesem Abschnitt werden die Grundprinzipien von CI, CD und Continuous Deployment erläutert, um ein besseres Verständnis für deren Rolle im Entwicklungsprozess zu schaffen.
Continuous Integration bedeutet, dass Entwickler ihren Code häufig, idealerweise mehrmals täglich, in das zentrale Repository integrieren. Jedes Mal, wenn ein Entwickler eine Änderung vornimmt und diese in das Versionskontrollsystem (z. B. Git) hochlädt, wird ein automatisierter Prozess ausgelöst, der den neuen Code in die bestehende Codebasis integriert und gleichzeitig sicherstellt, dass der Code fehlerfrei ist. Die wichtigsten Aspekte von CI sind:
CI ist der erste Schritt in einem CI/CD-Prozess und legt den Grundstein für eine reibungslose und zuverlässige Softwarebereitstellung.
Continuous Delivery baut auf CI auf und geht einen Schritt weiter, indem es sicherstellt, dass die Anwendung jederzeit für die Bereitstellung in einer Produktionsumgebung bereit ist. Dies bedeutet, dass nach jedem erfolgreichen Build und den automatisierten Tests die Anwendung so weit fortgeschritten ist, dass sie problemlos in eine Produktionsumgebung überführt werden kann. Die Hauptunterschiede zur CI sind:
Continuous Delivery verringert das Risiko und sorgt dafür, dass die Bereitstellung ein vorhersehbarer und wiederholbarer Prozess ist.
Continuous Deployment ist die konsequente Fortsetzung von Continuous Delivery. Hierbei wird der manuelle Freigabeprozess eliminiert, und jede Änderung, die die CI- und CD-Pipeline erfolgreich durchläuft, wird automatisch in die Produktionsumgebung bereitgestellt. Dies erfordert ein hohes Maß an Automatisierung und Vertrauen in die Testinfrastruktur, da jede Codeänderung ohne manuelle Freigabe in die Produktion gelangt. Die Vorteile von Continuous Deployment sind: