Continuous Integration und Delivery Wie CI/CD-Systeme für hohe Code-Qualität sorgen

Von Thomas Joos

Anbieter zum Thema

Entwickler, die eine maximale Qualität für ihren Code bei gleichzeitiger schneller Entwicklung erreichen wollen, kommen kaum um CI/CD-Lösungen herum. Solche Systeme gibt es On-Premises, aber auch in der Cloud. Dieser Beitrag gibt einen Überblick.

CI/CD-Systeme sollen die komplette Pipeline der Entwicklung von Anwendungen inklusive Feedback- und Verbesserungsschleifen abdecken.
CI/CD-Systeme sollen die komplette Pipeline der Entwicklung von Anwendungen inklusive Feedback- und Verbesserungsschleifen abdecken.
(Bild: Peter-Lomas / Pixabay)

In den meisten Fällen arbeiten mehrere Entwickler in einem Team zusammen, um Programmcode für ihre Lösungen zu schreiben. Dabei arbeiten viele Teams an der gleichen Code-Basis. Continuous Integration (CI) hilft dabei, den Code der Entwickelnden zusammenzuführen und sicherzustellen, dass die Code-Basis einheitlich und fehlerfrei ist. Konflikte im Code sollten dabei schnell erkannt werden, damit sie frühzeitig aufgelöst werden können.

Für die Umsetzung von CI ist ein System notwendig, das die einzelnen Entwicklerinnen und Entwickler gemeinsam an einem Projekt arbeiten lässt, ohne dabei den Code zu verschlechtern. Im Gegenteil, das CI-System soll sicherstellen, dass durch Merges (das Zusammenführen) von Code die Qualität desselben gleich gut bleibt oder steigt.

Innerhalb eines CI-Systems wird eine Pipeline festgelegt, die den Prozess und die darin enthaltenen Schritte steuert, die dafür sorgen, dass die verschiedenen Code-Bausteine auch zueinander passen. Dazu gehören das Kompilieren und das Unit-Testing sowie die Analysen des Codes. Die Pipeline steuert alle Abläufe, von der Übertragung des Codes im System, bis zur fertigen Anwendung.

Continuous Delivery stellt die Anwendungen bereit

Continuous Delivery hat wiederum die Bereitstellung der Anwendungen im Fokus und kann gemeinsam mit Continuous Integration eine komplette Pipeline vom Schreiben des Programmcodes bis hin zur Bereitstellung bieten. Daher kommen CI/CD-Systeme häufig gemeinsam zum Einsatz, da sie in Verbindung miteinander die komplette Pipeline der Entwicklung von Anwendungen abdecken.

Der Vorteil der Kombination beider Systeme liegt schlussendlich auch darin, dass neue Features in Anwendungen sehr viel schneller auch in der Praxis bereitgestellt werden können. Dabei steigt nicht nur die Geschwindigkeit der Bereitstellung an, sondern gleichzeitig auch die Qualität des Codes. Allgemein ist CI in den meisten Fällen ein Teil von CD, sodass in eine CD-System oft auch die CI-Funktionen enthalten sind. Bei den Lösungen in diesem Bereich handelt es sich daher vor allem um Lösungen, die CI und CD bieten.

Bamboo, CircleCI, Concourse, GitHub Actions, Jenkins, Jenkins X und Tekton nutzen

CI/CD-Systeme leben auch von der Kommunikation der verschiedenen Entwickler miteinander. In den meisten Fällen kommt hier natürlich die Kommunikation per E-Mail in Frage. Bamboo, CircleCI, Concourse, GitLab CI/CD und Jenkins unterstützen die Kommunikation per E-Mail, aber auch über Slack. Viele Systeme lassen sich parallel an Microsoft Teams anbinden.

Für die Inbetriebnahme spielen natürlich auch die Testmöglichkeiten eine wichtige Rolle. Bamboo kann 30 Tage kostenlos getestet werden. Dazu steht die jeweils aktuelle Bamboo-Version zum Download auf der Seite der Entwickler zur Verfügung.

CI/CD ist mit CircleCI sogar kostenlos möglich.
CI/CD ist mit CircleCI sogar kostenlos möglich.
(Bild: Joos / CircleCI)

CircleCI lässt sich sogar kostenlos nutzen. Allerdings sind hier die Funktionen eingeschränkt. Dafür kann die Lösung sofort an GitHub angebunden und in der Cloud zum Einsatz kommen, ohne dass etwas lokal auf einem Entwicklungsrechner installiert werden muss. Es gibt von CircleCI aber auch eine On-Premises-Variante. Wer mehr Leistung benötigt, kann CircleCI auch für 15 US-Dollar pro Monat abonnieren. Große Teams können entweder die skalierbare Cloud-Version für 2.000 US-Dollar pro Monat buchen oder einen eigenen Server installieren.

Viele CI/CD-Lösungen sind Cloud native

CI/CD mit der Open-Source-Lösung Concourse umsetzen.
CI/CD mit der Open-Source-Lösung Concourse umsetzen.
(Bild: Joos / Concourse)

Concourse ist ein Open Source-System, das für Windows, Linux und macOS zur Verfügung steht. Die meisten anderen CI/CD-Systeme bieten ebenfalls Unterstützung für diese drei Betriebssysteme. Die Installation besteht aus dem Concourse-Server und der fly-CLI, mit der sich die Pipeline steuern lässt.

Tekton ist ein Cloud-natives CI/CD-System, das ebenfalls auf quelloffenem Code aufbaut und sich vor allem für den Einsatz mit Kubernetes eignet. Die Pipelines, die sich mit Tekton aufbauen lassen, sind auch mit Jenkins X nutzbar. Die Inbetriebnahme von Tekton in einem Kubernetes-Cluster beschreiben die Entwickler auf der Dokumentationsseite der Lösung.

GitHub Actions (https://github.com/features/actions) ist eine weitere Lösung für das Bereitstellen einer CI/CD-Pipeline. Natürlich kommt diese Lösung vor allem dann zum Einsatz, wenn der Code auch auf GitHub verwaltet wird. Die Möglichkeiten der Software ist in einem Video auf YouTube zu sehen. GitHub Actions benötigt ebenfalls keine lokale Installation und ist sofort einsatzbereit.

Mit der CI/CD-Lösung Jenkins haben wir uns bereits im Beitrag „Docker-Images mit Jenkins erstellen“ auseinandergesetzt. Hier gibt es mit Jenkins C auch die Möglichkeit, die Bereitstellung in der Cloud durchzuführen und ein CI/CD-System zu nutzen, das vor allem für den Betrieb mit Kubernetes zum Einsatz kommen kann.

Fazit

CI/CD ist aus der Entwicklung von Anwendungen kaum mehr wegzudenken. Für den einfachen Einstieg in solche Lösungen stellen viele Anbieter ihr CI/CD-Lösung für Einsteiger auch kostenlos zur Verfügung. Wir haben in diesem Beitrag die bekanntesten Plattformen in diesem Bereich gezeigt.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:48609419)