Wenn dein Team gerade dabei ist CI/CD zu adaptieren oder Probleme mit den Konzepten von CI/CD hat, dann bist Du hier genau richtig.
Wir wollen im Rahmen unserer Blog-Serie ein Verständnis für CI/CD schaffen, konkrete Anwendungsfälle und Tools beleuchten und aufzeigen wie man CI/CD im Kubernetes Kontext umsetzt.
CI/CD steht für Continuous Integration und Continuous Delivery (oder Deployment). In der Softwareentwicklung ist es ein Vorgehen bei welchem Code-Änderungen von unterschiedlichen Entwickler frühzeitig in einem Repository zusammengeführt werden. Ziel ist es Code-Änderungen häufig und in kurzen Abständen zusammenzuführen.
- Continuous Integration (CI) bedeutet, dass Entwickler ihre Codeänderungen häufig in einem gemeinsamen Repository zusammenführen. Dies hilft, frühzeitig Fehler zu finden und zu beheben, bevor sie sich im Code ansammeln.
- Continuous Delivery (CD) bedeutet, dass Softwareänderungen automatisch in einer weiteren Umgebung (Bsp. QA/PROD) bereitgestellt werden können. Dies ermöglicht es Entwicklungsteams, Softwareänderungen schneller und mit weniger Aufwand bereitzustellen.
Eine CI/CD-Pipeline ist ein automatisierter Prozess, der die Softwareentwicklung und -bereitstellung steuert. Die Pipeline besteht aus einer Reihe von Schritten, die in der Regel in folgender Reihenfolge ausgeführt werden:
-
Code-Kompilierung: Der Code wird in ausführbaren Code kompiliert.
-
Code-Tests: Der Code wird auf Fehler getestet (Integrations, UI, API-Tests)
-
Code-Integration: Der Code wird in ein gemeinsames Repository integriert.
-
Code-Freigabe: Der Code wird in eine Produktionsumgebung bereitgestellt.
Die CI/CD-Pipeline kann in der Regel mithilfe von CI/CD-Tools automatisiert werden. Diese Tools bieten eine Reihe von Funktionen, die die Automatisierung des Prozesses erleichtern.
CI/CD hat sich als Quasi-Standard in der Entwicklung und Bereitstellung von Software und Infrastruktur etabliert.
Hier sind einige Beispiele für CI/CD-Anwendungen:
- Software-Unternehmen (ISV): Software-Unternehmen verwenden CI/CD, um neue Softwarefunktionen schneller und zuverlässiger bereitzustellen.
- DevOps & Plattform-Teams: DevOps & Plattform Teams nutzen CI/CD um komplette Umgebungen (DEV, TEST, PROD) automatisiert auszurollen – hier kommt oft der sog. GitOps Ansatz zum tragen.
- E-Commerce-Unternehmen: E-Commerce-Unternehmen verwenden CI/CD, um neue Funktionen und Microservices innerhalb Ihrer bestehenden Umgebungen schnell verfügbar zu machen.
- Finanzunternehmen: Finanzunternehmen verwenden CI/CD, um Sicherheitsupdates und Compliance-Ergänzungen schnell und effizient bereitzustellen.
CI/CD ist eine wichtige Methode, um die Softwareentwicklung und -bereitstellung zu verbessern. Es bietet eine Reihe von Vorteilen, darunter höhere Qualität, geringere Kosten durch den Wegfall von manuellen Arbeitsschritten sowie eine höhere Produktivität & Zufriedenheit bei den Mitarbeitern.
Andreas Müller-Niggemann1 Beitrag
Andreas ist Gründer und Geschäftsführer der cloudpunks GmbH.
Durch langjährige Erfahrung im Bereich der Produkt- & Softwareentwicklung sowie der agilen Organisationsentwicklung kennt er die Herausforderungen von Unternehmen.