Was ist eine CI/CD-Pipeline?
Eine CI/CD-Pipeline automatisiert den Prozess der Software-Bereitstellung. Zwar kannst du die Schritte auch manuell ausführen, aber der eigentliche Wert von CI/CD-Pipelines ist die Automatisierung.
Du kannst eine CI/CD-Pipeline als eine Reihe automatisierter Tests betrachten, die den Quellcode bis zur Produktion durchlaufen und die Bereitstellung von Software mehrmals am Tag automatisch ermöglichen.
Bevor wir auf die einzelnen Schritte eingehen, erklären wir die Abkürzungen CI und CD.
Was bedeuten CI und CD?
CI steht für Continuous Integration (kontinuierliche Integration) und CD für Continuous Delivery (kontinuierliche Bereitstellung). Letzteres Akronym kann auch Continuous Deployment einschließen, aber in unserem Kontext ist hauptsächlich die Bereitstellung (oder Auslieferung) gemeint.
Bei der kontinuierlichen Integration lassen Entwickler ihre Code-Änderungen mehrmals täglich in einen gemeinsamen Branch (Trunk) einfließen.
Der nächste Schritt ist die kontinuierliche Bereitstellung, die Code-Änderungen jederzeit für die Endnutzer freigeben kann. CD stellt also sicher, dass dein Code immer einsatzbereit ist – und das sogar automatisch, ohne dass die Entwickler es manuell tun müssen.
Jeder neue Code muss verschiedene automatisierte Tests durchlaufen. So kannst du ermitteln, ob er für einen Release bereit ist. Außerdem können Tests die Entwickler darüber informieren, ob ein Erstellungsprozess (Software Build) erfolgreich war oder nicht.
Das eigentliche Release kann manuell erfolgen, aber die Prozesse im Rahmen von CI/CD sind vollständig automatisiert und können von Entwicklern zu Feedbackzwecken überwacht werden.
Warum ist das wichtig?
Eine CI/CD-Pipeline ist in agilen Prozessen unerlässlich, da sie die Fehlerbehebung erleichtert und qualitativ hochwertige Software Releases schneller als je zuvor ermöglicht.
Das macht sie zum Rückgrat einer modernen DevOps-Umgebung.
Zudem verbessert sich die Qualität des Codes erheblich, da die CI/CD-Pipeline den Code automatisch testet und den Entwicklern mögliche Probleme signalisiert, bevor die Software an die Nutzer verteilt wird.
CI/CD-Elemente
Eine CI/CD-Pipeline wird durch ein Ereignis ausgelöst, z. B. durch einen Pull-Request aus einem Quellcode-Repository – dem zentralen Element jeder Versionsverwaltung, wo sich die aktuellste Version des Codes befindet.
Jedes Unternehmen hat andere Anforderungen und Prozesse. Deshalb kannst du die Schritte der CI/CD-Pipeline an deine Bedürfnisse anpassen.
In der Regel durchläuft der Software-Release-Prozess aber bestimmte Pipeline-Schritte, die wir im Folgenden erläutern. Das sind die typischen Phasen:
- Source – Die erste Phase umfasst die Erstellung des Quellcodes. Je nach Projekt kannst du mehrere Source-Teile haben, von Java bis C++.
- Build – Hier bringen Entwickler ihren Code ein – mit welchem Tool entscheidet die Programmiersprache. Dafür zieht der Build-Prozess den Code aus einem Repository.
- Testing – Die Phase stellt sicher, dass der Code wie vorgesehen funktioniert und keine Fehler beim Endnutzer landen. Das beginnt normalerweise mit Unit-Tests.
- Deployment – In dieser Phase setzen Entwickler den Code in einer Testumgebung ein. Oft wird der Build automatisch verteilt, wenn er die automatisierten Tests besteht.
- Automatisiertes Testing – In dieser Phase finden die letzten Tests statt, um zu gewährleisten, dass alles fehlerfrei ist, bevor der Code eingesetzt wird.
- Bereitstellung für die Produktion – Nachdem der Code alle Tests bestanden hat, kommt er endlich in die Produktionsumgebung, um die Endnutzer zu erreichen.
Während des gesamten Prozesses erhalten die Entwickler sofort Feedback, wenn es Probleme gibt. Dann können sie direkt eingreifen und überprüfen.
Das ist sehr vorteilhaft und dem manuellen Testen vorzuziehen, weil Letzteres den Sinn und Wert der kontinuierlichen Entwicklung verfehlt. Manuelles Testing beansprucht viel Zeit und erschwert dadurch eine regelmäßige Bereitstellung.
Feature Flags in der CI/CD-Pipeline
Für eine CI/CD-Pipeline sind Feature Flags besonders nützlich, denn so kannst du Funktionen ausblenden, die noch nicht zur Veröffentlichung bereit sind. Daher unterstützen Feature Flags den Zweck von CI/CD-Pipelines, mehrmals täglich Code zu verteilen.
Betrachte sie als Sicherheitsnetz, mit dem du Funktionen schnell und sicher veröffentlichen kannst, auch wenn es noch unfertige Änderungen gibt.
Fazit
Für Unternehmen ist eine CI/CD-Pipeline ein wichtiges Instrument, um Produkte schneller auf den Markt zu bringen und so die Kundenzufriedenheit zu erhöhen.
Da eine CI/CD-Pipeline auf Automatisierung setzt, minimiert sie das Risiko für manuelle Fehler. Vielmehr ermöglicht sie eine kontinuierliche Feedbackschleife, mit der Entwickler die Produkte ständig verbessern können.
Durch die Automatisierung kann sich dein Team auf andere, spannendere Aufgaben konzentrieren. Vor allem auf das, was es am besten kann: Code schreiben.
Zusammenfassend lässt sich sagen: Eine gut gestaltete CI/CD-Pipeline ermöglicht DevOps-Praktiken, die die Zeit bis zur Markteinführung verkürzen, indem sie den Code häufiger pushen und so die Code-Qualität optimieren.
mit ABTasty
Erhalten Sie eine individuelle Komplettlösung für die Plattform
Demo anfordern