Was bedeutet CI/CD in der Entwicklung?

Jetzt Artikel teilen:

CI/CD steht für eine Sammlung von Techniken, Prozessen und Werkzeugen, um die Softwareentwicklung und -auslieferung zu verbessern.

Grundsätzlich unterstützen CI/CD – also Continuous Integration, Continuous Delivery und Continuous Deployment – Unternehmen bei der Umsetzung ihrer DevOps-Bemühungen. Denn die Grundlage von DevOps, also einer zunehmenden Verzahnung der Entwicklung (Development = Dev) und dem IT-Betrieb (Operations = Ops), ist ein möglichst hoher Automatisierungsgrad. Dieser lässt sich mit Methoden zur agilen Softwareentwicklung erreichen. Man spricht meist von einer CI/CD-Pipeline, da es sich um einen aufeinander aufbauenden, aber in sich geschlossenen Feedback-Prozess handelt.

Darstellung einer CI/CD Pipeline als Bestandteil von DevOps

Die CI/CD-Pipeline bildet den Backbone moderner DevOps-Umgebungen. Bildquelle: datacenter-insider.de

Wie verbessert CI die Softwarequalität?

Moderne Anwendungen bestehen heute meist aus einer Vielzahl von kleinen, unabhängigen Komponenten, den sogenannten Microservices. In den Entwicklerteams arbeiten dann mehrere Developer an unterschiedlichen Softwarekomponenten oder Features der gleichen Anwendung. Bei Continuous Integration geht es nun darum, die Komponenten für eine Anwendung kontinuierlich zusammenzufügen. Die Entwickler können so all ihre Codeänderungen in einem Branch der Anwendung zusammenführen – und das möglichst oft.

Mithilfe eines CI-Systems kann jeder Entwickler die Änderungen an seinem Code automatisiert ausführen und testen lassen. Sie werden dann in automatischen Builds und unterschiedlichen Stufen von Automatisierungsprüfungen validiert. Das stellt sicher, dass die Funktionsfähigkeit der Anwendung nicht beeinträchtigt wurde.

Treten innerhalb dieser automatisierten Validierungsprozesse Konflikte zwischen aktuellem und neuem Code auf, erhält der Entwickler umgehend Feedback und kann den Fehler schnellstmöglich beheben. Diese häufigen Test- und Feedback-Schleifen ermöglichen es, Anwendungen schneller zu entwickeln, Fehler schneller zu erkennen und Kundenfeedback zügig einzubeziehen. So trägt CI als kontinuierlicher „Build-Prozess“ innerhalb der CI/CD-Pipeline dazu bei, die Softwarequalität nachhaltig zu verbessern.

plusforum Kubernetes und DevOps

Wie optimiert CD den Prozess der Softwareauslieferung?

Continuous Delivery folgt auf Continuous Integration und setzt den Feedback-Zyklus in der Softwareentwicklung und -bereitstellung fort. In diesem Schritt der CI/CD-Pipeline wird der Code automatisiert getestet, um etwaige Bugs frühzeitig zu finden. Ist der Code validiert, wird er automatisch in ein Repository hochgeladen – wie beispielsweise Github. Der CD-Prozess umfasst die Zusammenführung von Codeänderungen, ausführliche Tests, Code-Freigaben und die Bereitstellung produktionsreifer Builds der Software.

Ziel von CD ist es, immer eine möglichst aktuelle Codebasis zur Verfügung zu haben. Deshalb ist eine Verzahnung von Continuous Integration mit Continuous Delivery in der CI/CD-Pipeline wichtig. Denn im Kern soll CD sicherstellen, dass neuer Code mit minimalem Aufwand ausgerollt werden kann.

CI/CD: Continuous Deployment automatisiert die Softwarebereitstellung

Continuous Deployment bildet den letzten Schritt in der CI/CD-Pipeline. Im Rahmen der Continuous Delivery wurden automatisch Builds erstellt und in einem Repository freigegeben. Diese können jetzt via Continuous Deployment ebenso automatisiert für die Produktion freigegeben und ausgerollt werden.

In der Praxis bedeutet das: Mithilfe einer CI/CD-Pipeline können Änderungen an der Software innerhalb von Minuten vorgenommen werden und wieder live gehen. Das Feedback von Anwendern wird so schnell und regelmäßig in die Software integriert. Voraussetzung ist jedoch, dass alle automatisierten Tests erfolgreich verlaufen. Genau hier liegt auch die Herausforderung bei der Implementierung einer CI/CD-Pipeline.

Darstellung einer CI/CD Pipeline

CI/CD sorgt nicht nur für eine höhere Geschwindigkeit, sondern auch für eine bessere Softwarequalität. Bildquelle: Red Hat

Welche Herausforderung besteht beim Aufbau einer CI/CD-Pipeline?

Eine CI/CD-Pipeline vereinfacht zwar die Implementierung von Anwendungen, da diese in Teilen und nicht auf einmal freigegeben werden müssen. Doch der Aufwand, den Unternehmen vorab betreiben müssen, ist nicht zu unterschätzen. Denn diese Prozessautomatisierung bedeutet auch, dass am Ende der Pipeline vor der Produktion keine manuelle „Endabnahme“ steht. Deshalb müssen automatische Tests für alle unterschiedlichen Prüf- und Release-Phasen innerhalb der CI/CD-Pipeline geschrieben werden. Und diese gilt es, sorgfältig von Beginn an zu durchdenken.

Zudem müssen sich Unternehmen im Rahmen von CI/CD grundsätzlich mit der Planung und Umsetzung einer DevOps-Strategie befassen. Dabei gilt es zu überlegen, ob es um die Optimierung bestehender Prozesse oder eine komplette Neuplanung von DevOps geht. Und es gilt, die geeigneten Tools auszuwählen sowie die nötigen Strukturen aufzubauen, um DevOps umsetzen zu können. Dabei können erfahrene Serviceanbieter unterstützen, die sich mit komplexen IT-Landschaften und skalierbaren Cloud-Lösungen auskennen.

Whitepaper Wettbewerbsvorteile durch Container

Mehr über DevOps, CI/CD, Microservices und Co.

Erfahren Sie mehr über moderne Entwicklungsmethoden und deren Auswirkungen auf die Wettbewerbsfähigkeit.

Whitepaper kostenlos downloaden

Webinar "Container optimal im Griff

Wer CI/CD einsetzen möchte, kommt an Containern quasi nicht vorbei. Wie die Arbeit mit neuen Prozessen gelingt, erfahren Sie in der Webinar-Aufzeichnung.

Hier anschauen

Jetzt Artikel teilen:

Das könnte Sie auch interessieren