Vertriebliche Beratung:
plusserver-Blog-CI-CD-E-CGN
Blog

|

01.02.2023

Was bedeutet CI/CD in der Entwicklung?

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

Lesen Sie im Folgenden:

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 des 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.

plusserver Blog - DevOps - Grafik
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.

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.

Grafik CI-CD Flow Mobile
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 Serviceanbieter wie plusserver unterstützen, die sich mit komplexen IT-Landschaften und skalierbaren Cloud-Lösungen auskennen.

CI/CD mit der PSKE

Die plusserver Kubernetes Engine liefert die ideale Basis für Ihre CI/CD-Pipeline.

Über den Autor

Annika Opitz ist Product Owner für die plusserver Kubernetes Engine (PSKE) und ist in ihrer Rolle für die Produktvision, Ausrichtung und Weiterentwicklung der Lösung verantwortlich. Sie besitzt jahrelange Erfahrung in der IT- und Technologiebranche sowie umfangreiche Praxiserfahrung in der Planung und Weiterentwicklung von Produkten während des gesamten Produktlebenszyklus.

Weiterführende Inhalte

Blog

IT-Trends 2023: Datenhoheit, Green IT und DevOps​

2023 IT-Trends von plusserver-CEO: Digitale Transformation richtig umsetzen! Datenhoheit, grüne IT, DevOps-Kultur.
Produkt

Private Registry

Container Images und Helm Charts einfach speichern, verwalten und nutzen.
Produkt

Managed Kubernetes

Mit unserem Managed Kubernetes erstellen und orchestrieren Sie Kubernetes-Cluster im Handumdrehen.