Ihr Browser ist veraltet
Um sicher im Internet zu surfen und moderne Websites richtig darzustellen, empfehlen wir Ihnen ein Update.
Hier auf Updates prüfen
schließen

02.05.2023

CI/CD Pipelines

CI/CD Pipelines

CI/CD Pipelines wurden mit dem Hintergedanken der Automatisierung entwickelt. Hierbei steht CI für Continuous Integration und hinter CD verbergen sich gleich zwei weitere Begrifflichkeiten: Continuous Delivery sowie Continuous Deployment. Alle drei Begriffe bezeichnen Phasen einer sogenannten Pipeline. Diese wird zur Effizienzsteigerung in der Softwareentwicklung angewandt und beschreibt einfach gesagt eine Reihe von vordefinierten Schritten, die automatisch ablaufen.

  1. Continuous Integration

Continuous Integration beschreibt eine Arbeitsweise in der Softwareentwicklung. Benötigt wird ein System zur Versionsverwaltung, um 1. eine Backup des Codes zu haben sowie Änderungen auch später noch nachzuvollziehen und 2. damit mehrere Entwickler parallel an einem Projekt arbeiten können und den Code aktuell zu halten.

Unter Anwendung von CI werden die einzelnen Branches der mitwirkenden Entwickler frühzeitig in den Main-Branch gemerged und der Code durch automatisierte Tests auf Funktionalität sowie Kompatibilität geprüft. Voraussetzung für ein funktionierendes System ist, dass alle Mitwirkenden ihren Code regelmäßig in den Master/Main Branch pflegen – jede kleinste Änderung muss in das gemeinsame Repo gepusht werden.

Mittels Automatisierungs-Skripten werden der genaue Ablauf sowie die Tests definiert. Meist sieht der Ablauf folgendermaßen aus, wenn auch nicht immer so linear: Code wird geschrieben (Build), getestet (Test) und in den Main-Branch gemerged (Merge).

  1. Continuous Delivery

Continuous Delivery beschreibt die automatisierte Bereitstellung der fertigen Software und gegebenenfalls auch deren Updates. Wurden alle Tests fehlerfrei durchlaufen, wird der Code meist – automatisch - in einem separaten finalen Repo gespeichert und auf einer Test- oder Produktionsumgebung bereitgestellt.

  1. Continuous Deployment

Die letzte Phase einer CI/CD-Pipeline bildet meist Continuous Deployment. Darunter versteht man die automatisierte Implementation der Software beim Kunden. Vorausgesetzt der Code hat alle vorgelagerten Tests erfolgreich durchlaufen, wird er in dieser Phase veröffentlicht und für den Kunden freigegeben.

Sobald ein Test fehlschlägt geht die Meldung zurück zum Entwickler zur schnellen Behebung.

Vorteile

  • Automatisierung
  • Steigerung Effizienz
  • Verringerung Entwicklungszeit
  • Frühzeitige Fehlererkennung durch kurze Feedback-Zyklen
  • Qualitätssteigerung

Um diese Vorteile auch vollumfänglich nutzen zu können, steht zu Beginn einer CI/CD Pipeline jedoch immer ein erfahrenes Entwicklerteam, das die Repos, Umgebungen und Tests aufsetzt. Hier muss sehr gründlich gearbeitet werden, sodass keine Fehler unentdeckt direkt beim Kunden landen.

Einmal eingerichtet sind die Pipelines auch erweiterbar und das müssen sie auch sein: für jede neue Funktion sollten auch neue Tests aufgesetzt werden.

DevOps

Vor 12 Jahren haben 17 Softwareentwickler das „Manifest für Agile Softwareentwicklung“ während eines Ski-Trips ins Leben gerufen. Vier Grundwerte wurden formuliert:

  • Individuen und Interaktionen

„Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.“

  • Funktionierende Software

„Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.“

  • Zusammenarbeit mit dem Kunden

„Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.“

  • Reagieren auf Veränderung

„Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.„

Aus diesen Werten heraus hat sich eine Sammlung von Praktiken und Methoden entwickelt, die ein Umdenken in der Art und Weise widerspiegeln, wie an Softwareprojekten zukünftig gearbeitet wird: die DevOps.

Oft arbeitet das Entwicklerteam vom Operations-Team, also denjenigen, die die Software betreuen, bereitstellen und anwenden, getrennt. Unter Einsatz von sogenannten DevOps-Methoden ist die Zusammenarbeit der beiden Parteien vorgesehen - mit positiven Auswirkungen auf Effizienz und Agilität. Während des gesamten Produktlebenszyklus wird durch die enge Zusammenarbeit der Code fortlaufend optimiert und das Feedback erreicht schneller die Richtigen. Die Teams stehen ist ständigem Austausch miteinander.

Doch wie überall, wo mehrere Personen zusammenkommen und involviert sind, rückt eine gut strukturierte und offene Kommunikation in den Vordergrund.

Quellen

https://www.jetbrains.com/de-de/teamcity/ci-cd-guide/continuous-integration/

https://www.atlassian.com/de/continuous-delivery/continuous-integration

https://about.gitlab.com/topics/ci-cd/

https://www.redhat.com/de/topics/devops/what-cicd-pipeline

https://agilemanifesto.org/iso/de/manifesto.html

Kontakt

Für Ihre Fragen, Anregungen und Anmerkungen haben wir immer ein offenes Ohr.

Sie können uns natürlich auch telefonisch erreichen:
034298 / 208 478