Überblick
Eine CI/CD-Pipeline umfasst mehrere Schritte, die zur Bereitstellung einer neuen Softwareversion ausgeführt werden müssen. CI/CD steht für Continuous Integration/Continuous Delivery. CI/CD-Pipelines verkörpern eine Praxis zur Verbesserung der Softwarebereitstellung durch den Einsatz von DevOps oder SRE (Site Reliability Engineering).
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 wird jedoch durch die Automatisierung realisiert.
Elemente einer CI/CD-Pipeline
Die Schritte in einer CI/CD-Pipeline stellen verschiedene Untergruppen von Aufgaben dar, die in sogenannte Pipeline-Phasen eingeteilt werden. Zu diesen Phasen gehören üblicherweise:
- Build – Die Phase, in der die Anwendung kompiliert wird.
- Test – Die Phase, in der der Code getestet wird. Hier lassen sich durch Automatisierung sowohl der Zeit- als auch der Arbeitsaufwand verringern.
- Release – Die Phase, in der die Anwendung ins Repository gestellt wird.
- Bereitstellung – In dieser Phase wird der Code in der Produktionsumgebung bereitgestellt.
- Validierung und Compliance – Welche Schritte zur Validierung eines Builds notwendig sind, bestimmen die Anforderungen des jeweiligen Unternehmens. Scanning Tools für die Image-Sicherheit, wie Clair, sichern die Qualität von Images, indem diese mit bekannten Schwachstellen (CVEs) verglichen werden.
Diese Liste der Pipeline-Phasen ist nicht abschließend. Es werden lediglich die Phasen aufgeführt, die man am häufigsten antrifft. So werden Sie Ihre eigene Pipeline sicherlich an den Anforderungen Ihres Unternehmens ausrichten.
Container und CI/CD-Pipelines
Traditionelle CI/CD-Systeme wurden für Pipelines konzipiert, die virtuelle Maschinen verwenden. Mit der cloudnativen App-Entwicklung lassen sich dafür noch weitere Vorteile realisieren. Wie sieht eine CI/CD-Pipeline mit Containern aus?
OpenShift Pipelines
OpenShift Pipelines ist eine Funktion von Red Hat OpenShift, die auf Tekton aufbaut. Dieses Open Source-Projekt liefert ein Framework, in dem cloudnative CI/CD-Pipelines schnell erstellt werden können. Tekton ist ein CI/CD-Framework für Kubernetes-Plattformen, das eine cloudnative CI/CD-Standarderfahrung mit Containern ermöglicht. Tekton ist ein Kubernetes-natives Framework, das die Bereitstellung mehrerer Cloud-Anbieter oder Hybrid-Umgebungen vereinfacht. Mithilfe von Custom Resource Definitions (CRDs) in Kubernetes nutzt Tekton die Kubernetes Control Plane zur Ausführung von Pipeline-Aufgaben. Durch die Nutzung von standardmäßigen Industriespezifikationen funktioniert es sehr gut mit CI/CD-Tools wie Jenkins, Jenkins X, Skaffold und Knative.
Das automatisierte Unternehmen
Geschwindigkeit und Umfang der digitalen Geschäftsinnovation nehmen ständig zu. Automatisierung kann helfen, Prozesse zu beschleunigen und komplexe IT-Umgebungen zu verwalten.