Was ist CI/CD und wie baut man eine CI/CD-Pipeline auf?
  • WK IT GmbH
  • Was ist CI/CD und wie baut man eine CI/CD-Pipeline auf?

Was ist CI/CD und wie baut man eine CI/CD-Pipeline auf?

Einen möglichst hohen Automatisierungsgrad erreicht man im DevOps mit Methoden zur agilen Softwareentwickung wie CI/CD. Beim CI/CD werden dem Kunden regelmäßig Anwendungen zur Verfügung gestellt. Kontinuierliche Automatisierung und Überwachung aller Phasen der Anwendungsentwicklung (App-Lifecycle) stehen dabei im Vordergrund.

Oft wird in diesem Zusammenhang von einer CI/CD-Pipeline gesprochen, da es sich hierbei um einen aufeinander aufbauenden und von der Integrations- und Test- bis hin zur Bereitstellungs- und Implementierungsphase geschlossenen Feedback-Prozess handelt.

CI/CD steht für Continous Integration sowie Continous Delivery bzw. Deployment.

Continous Integration

Als Continous Integration (CI) wird der Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung bezeichnet. Mithilfe eines CI-Systems kann jeder Entwickler die Änderungen an seinem Code automatisch ausführen und testen lassen. Auf diese Weise wird sichergestellt, dass die Funktionsfähigkeit der Anwendung durch die Änderung nicht beeinträchtigt wird.

Sollte die Änderung ein Problem verursachen, so wird dieses sofort erkannt, zugeordnet und kann von dem Entwickler behoben werden.

CI ist die Basis für Continuous Delivery oder Continuous Deployment.

Continous Delivery

Continous Delivery (CD) folgt auf CI und setzt die CI/CD-Pipeline fort. Durch CI wurde zwar die Änderung integriert, aber der Code noch nicht im produktiven Umfeld eingesetzt und getestet. In diesem Schritt wird er nun in eine funktionsfähige, auslieferbare Softwareversion überführt und in einer Staging-Area automatisch getestet, um auf diese Weise Fehler zu identifizieren, die sonst nur im Anwendungsbetrieb auftreten.

Die Codeänderungen werden schlussendlich in einem gemeinsamen Source Code Repository, einem zentralen Speicher inklusive Versionierung für Programmiercode, abgelegt. So steht immer eine aktuelle Codebasis zur Verfügung.

Die Entscheidung darüber, ob ein Code schlussendlich in die Produktivumgebung ausgeliefert wird erfolgt beim CD manuell durch ein Operations-Team.

Continous Deployment

Continous Delivery und Continous Deployment werden häufig als Synonyme verwendet, dies ist so allerdings nicht ganz richtig. Der Begriff des Continous Deployment geht einen Schritt weiter als das Continous Delivery. Hier erfolgt sogar die Auslieferung des Codes in die Produktivumgebung automatisiert.

Applikationen für den Pipeline-Aufbau

Der Ausgangspunkt einer jeden CI/CD-Pipeline ist ein zentrales Source Code Repository. Bekannte Code Repositorys sind z. B. GitHub, GitLab oder Bitbucket.

Zusätzlich benötigt man noch eine Applikation, in der die Pipelines gebaut und schlussendlich auch ausgeführt werden können. Hierfür eignen sich bspw. Jenkins oder Circel CI. Aber auch zahlreiche Source Code Management Systeme wie GitHub Actions oder GitLab CI/CD können für diesen Zweck verwendet werden. Cloud Provider wie Azure Pipelines bieten ebenfalls Pipeline Funktionen und haben noch dazu den Vorteil, dass man sie als Service kauft und die Applikation aus diesem Grund nicht selbst installieren, betreuen und warten muss.

Typische Schritte innerhalb der Pipeline

Hier gilt es zu beachten, dass sämtliche Phasen innerhalb einer CI/CD-Pipeline individuell und auf das jeweilige Unternehmen und seinen Anwendungsfall abgestimmt sind. Somit handelt es sich nur um ein typisches Beispiel.

 

Zurück