CI/CD-PIPELINE – WAS IST DAS?
Joel Garthe, AWS Certified Developer, 29.09.2021
Automatisierung ist in vielen Unternehmen das A und O in der Software-Entwicklung. In diesem Zusammenhang fällt oft der Begriff „CI/CD”. Doch was bedeutet das? Welche Vorteile bietet die sogenannte CI/CD-Pipeline für Unternehmen? Und was kann CI/CD in Kombination mit AWS leisten? In diesem Artikel geben wir Cloud Mates IT-Entscheidern Orientierungshilfe.
WAS IST EINE CI/CD-PIPELINE ÜBERHAUPT?
Die CI/CD-Pipeline ist ein Prozess in der Softwareentwicklung: Dabei werden die in der CI-Phase erzeugten Änderungen an Softwarepaketen in der CD-Phase automatisiert getestet und auf entsprechenden Maschinen installiert.
Früher wurden wichtige Updates teilweise monatelang geplant, nur um sie dann mühevoll von Hand zu installieren. Heute ist dies dank umfassender Automatisierungen in der Softwareentwicklung nicht mehr nötig: „CI/CD-Pipeline” ist das Stichwort, wenn es um automatisierte Softwarebereitstellungsprozesse geht.
CI + CD = CI/CD-PIPELINE
Der CI/CD-Workflow besteht aus zwei Komponenten:
1. CI (CONTINUOUS INTEGRATION)
CI steht für „Continuous Integration“: Code-Änderungen in einem Software-Projekt werden dank CI automatisiert ins Entwicklungsumfeld integriert. Die Kernkomponente von CI ist in der Regel ein Versionskontrollsystem wie Git. Darin führen Software-Developer alle Codeänderungen zu einem Repository zusammen.
Während der Continuous Integration können Entwickler bereits diverse automatisierte Tests durchführen. So bekommen sie sofortiges Feedback über den Erfolg ihrer Änderungen.
2. CD (CONTINUOUS DELIVERY)
CD steht für „Continuous Delivery“: mit CD werden neue Softwareversionen automatisiert als fertiges Softwarepaket bereitgestellt. Während Continuous Delivery bietet sich nochmals die Möglichkeit, eine beliebige Menge automatisierter Tests durchzuführen.
Durch umfangreiches Testen stellen Softwareentwickler die wunschgemäße Performance beim Software-Release sicher. Fallen diese Test zufriedenstellend aus, wird das finale Softwarepaket meist in einem separaten Repository gespeichert. Anschließend überführt ein DevOps-Team die Software in die vorgesehene Produktivumgebung.
Im Zusammenhang mit CD fällt oft der Begriff „Continuous Deployment“. Dieser unterscheidet sich im letzten Arbeitsschritt von Continuous Delivery: das getestete Softwarepaket wird automatisiert auf der entsprechenden Hardware installiert. Auf diese Weise sparen sich Unternehmen einen Arbeitsschritt.
DAS KANN DIE CI/CD-PIPELINE
Allgemein gesagt vereinfacht die CI/CD-Pipeline den Rollout von Software für Developer, weil sie viele Arbeitsschritte automatisiert. Das spart Zeit, die von den Entwicklern stattdessen zum Coden genutzt werden kann. Zudem sinkt durch den hohen Grad an Automatisierung die Fehlerquote.
Weil der Aufwand für ein einzelnes Rollout dank CI/CD deutlich geringer ausfällt, sind viel häufigere Deployments möglich. So bleiben die einzelnen Updates übersichtlich und leichter zu managen. Noch wichtiger: Neue Features stehen den Anwendern dank des Zugewinns an Agilität früher – teilweise in Minutenschnelle – zur Verfügung.
Auch wir Cloud Mates arbeiten als zertifizierte AWS Certified Solutions Architects mit CI/CD-Pipelines. In Zeiten von virtuellen Servern und Infrastructure as Code (IaC) setzen wir die CI/CD-Pipeline umfassend ein: So können wir mithilfe von CI/CD-Pipelines ganze Cloud-Infrastrukturen erstellen und verwalten. Dabei arbeiten wir über AWS hinaus zusätzlich mit Tools wie zum Beispiel Terraform.
VOR- UND NACHTEILE
Der größte Vorteil von CI/CD-Pipelines ist sicherlich der hohe Automatisierungsgrad, mit dem sie den Entwicklungsalltag erleichtern. Automatisierte Tests und Validierungsprozesse sorgen dafür, dass eventuelle Fehler schneller erkannt und behoben werden können. Das erspart Entwicklern Zeit und Nerven.
Entsprechend senkt CI/CD auch die Fehlerquote in der finalen Produktivumgebung. Dies führt insgesamt zu beachtlichen Kostenersparnissen auf Seiten der Qualitätssicherung und zu zufriedeneren Anwendern.
CI/CD automatisiert auch das Ausrollen neuer Softwareversionen sowie das folgende Deployment spürbar. Mit dem Einsatz von CI/CD-Pipelines ist daher deutlich weniger Vorbereitung vonseiten der Entwickler nötig. Dieser Vorteil ist vor allem bei größeren IT-Infrastrukturen nicht zu vernachlässigen.
Neue Features haben, dank häufigerer Updates, eine durchschnittlich kürzere Time2Market. Entsprechend profitieren Endkunden von häufigen, zeitnahen Updates.
Zu Beginn wird die CI/CD-Pipeline inklusive dem entsprechenden Repository und sämtlichen durchzuführenden Tests von Softwareentwicklern aufgesetzt. Entsprechend benötigen die Developer einschlägiges Wissen im Umgang mit den jeweiligen CI-Tools.
AWS-TOOLS FÜR CI & CD
Wir Cloud Mates arbeiten bei der Entwicklung von IaC mit dem Public Cloud-Anbieter Amazon Web Services (AWS) zusammen. Dieses Vorgehen empfehlen wir auch unseren Kunden für ihre eigene Softwareentwicklung – und unterstützen sie gerne dabei, CI/CD auf AWS aufzusetzen.
Denn AWS bietet rund um die CI/CD-Pipeline diverse Services und Tools an, mit denen die Einrichtung und der Betrieb des Entwicklungsprozesses teilweise erheblich einfacher wird.
CI-SERVICES VON AWS
AWS bietet rund um die CI/CD-Pipeline einen zentralen Service an: die AWS CodePipeline. Diese vereint wiederum zahlreiche Einzeltools.
CodePipeline nutzen wir Cloud Mates, um den gesamten Ablauf der CI/CD-Pipeline – vom Erstellen des Repository bis hin zur Installation auf Produktionsservern – bequem und zentral über ein einziges Interface zu verwalten. Zudem bietet CodePipeline auch die Möglichkeit, externe Codequellen, wie beispielsweise GitHub, in eine AWS CI/CD-Pipeline einzubinden.
Zum Zweck der Continous Integration bietet AWS weitere Services wie zum Beispiel AWS Code Commit, Amazon Elastic Container Registry oder auch Amazon S3 an.
CD-SERVICES VON AWS
Um die in der entsprechenden Quelle hinterlegten Softwarepakete nun zu testen und anschließend automatisiert in einer IT-Umgebung zu installieren, setzen wir Cloud Mates AWS CodeDeploy ein. Dieses Tool nimmt das bereitgestellte Softwarepaket und installiert den Code mit einem zuvor festgelegten Installationsskript auf der jeweiligen IT-Infrastruktur wie z. B. VMs oder Container-Umgebungen.
DAS CLOUD MATES-FAZIT ZUR CI/CD-PIPELINE MIT AWS
Sicher ist die Implementierung einer vollständigen CI/CD-Pipeline nicht zwingend notwendig, um Software effektiv entwickeln zu können. Allerdings bietet CI/CD beträchtliche Zeit- und somit Kostenersparnisse, über die Entscheider in der IT nur schwer hinwegsehen können.
Insgesamt überwiegen die aus dem Verfahren gewonnenen Vorteile stark den Aufwand, sich in die genutzten Methoden einzuarbeiten. Deshalb empfehlen wir Cloud Mates – wo sinnvoll möglich – den Einsatz von CI/CD-Pipeline in Kombination mit der AWS-Cloud.