Acht Systeme für Continuous Integration und Continuous Delivery im Vergleich

CI/CD-Software gewährleistet eine hohe Codequalität bei gleichzeitig schneller Produktion. Wo der Einsatz sinnvoll ist, hängt vom Unternehmen ab.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 38 Min.
Von
  • Renke Grunwald
  • Lars Kölpin-Freese
  • Arne Limburg
  • Hendrik Müller
Inhaltsverzeichnis

Software zu entwickeln ist Teamsache. Oft arbeiten Entwickler gemeinsam und vor allem gleichzeitig am selben Code. Continuous Integration ist der Prozess, der sicherstellt, dass die Arbeit jedes Einzelnen regelmäßig zusammengeführt wird und die Anwendung immer den Qualitätsansprüchen genügt. Dadurch lassen sich mögliche Konflikte frühzeitig erkennen – statt dass man die Anwendung im schlimmsten Fall fehlerhaft ausliefert.

Ein CI-System setzt aus technischer Sicht den Prozess Continuous Integration (CI) um. Eine Pipeline beschreibt die einzelnen Schritte, die gewährleisten, dass alle Änderungen an der Software, die integriert werden, zueinander passen und der gewünschten Qualität entsprechen. Übliche Schritte sind etwa das Kompilieren des Codes, das Ausführen der Unit-Tests oder statische Codeanalysen. Eine solche Pipeline beginnt beim Übertragen von neuem Code ins Versionskontrollsystem. Am Ende steht die fertig gebaute und potenziell auslieferbare Anwendung.

Mehr zu Kubernetes, DevOps und CI/CD

Noch weiter geht das Konzept von Continuous Delivery. Der Begriff selbst tauchte bereits vor elf Jahren im Titel des Buches "Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation" von Jez Humble und David Farley auf. Die Idee dahinter ist, Software regelmäßig in Produktion zu bringen und bereitzustellen. Den Hauptgrund, warum Unternehmen Software regelmäßig produktiv verteilen wollen, beschreibt das Schlagwort Time-to-Market: Es geht darum, die Zeit zu minimieren, die es braucht, ein Feature zu realisieren und produktiv einzusetzen. Es liegt nahe, dass ein Team, das mehrmals pro Woche in die Produktionsumgebung einspielt, eben auch weniger als eine Woche braucht, um ein umgesetztes Feature in Produktion zu bringen.