CI/CD

Hier finden Sie eine umfassende Definition des CI/CD-Konzepts, einer Grundsäule der modernen DevOps-Kultur, strukturiert für Ihr Feld „Lange Definition”.

Umfassende Definition von CI/CD

CI/CD ist eine Methode zur Softwareverteilung, die auf der Automatisierung jedes einzelnen Entwicklungsschritts basiert. Das Akronym setzt sich aus zwei untrennbaren Teilen zusammen:Continuous Integration (CI) und Continuous Delivery/Deployment (CD).

Das Ziel besteht darin, Entwicklern die Möglichkeit zu geben, Updates regelmäßig, zuverlässig und ohne riskante manuelle Eingriffe zu veröffentlichen.

1. CI: Kontinuierliche Integration (Continuous Integration)

Wenn ein Entwickler den Code ändert, „pusht“ er ihn in ein gemeinsames Repository (wie GitHub). Die CI wird dann automatisch ausgelöst:

  • Build: Kompilierung des Codes, um sicherzustellen, dass keine Syntaxfehler vorliegen.
  • Unit-Tests: Durchführung automatisierter Tests, um sicherzustellen, dass neue Änderungen die bestehenden Funktionen nicht beeinträchtigen.
  • Validierung: Überprüfung der Codequalität und der Einhaltung von Sicherheitsstandards.

2. CD: Kontinuierliche Bereitstellung und Implementierung (Continuous Delivery/Deployment)

Sobald der Code in der CI-Phase validiert wurde, übernimmt der CD-Teil:

  • Continuous Delivery: Der Code wird automatisch für die Bereitstellung vorbereitet, aber die Inbetriebnahme erfordert eine abschließende manuelle Validierung.
  • Continuous Deployment: Jede Änderung, die die Tests besteht, wird sofort in die Produktion übernommen, ohne dass ein manueller Eingriff erforderlich ist.

Warum ist das eine Revolution?

Vor CI/CD wurden Updates jeden Monat in „großen Wellen“ durchgeführt, mit zahlreichen Bugs. Mit CI/CD:

  1. Risikominderung: Fehler werden innerhalb von Minuten statt Wochen entdeckt.
  2. Schnelligkeit: Neue Funktionen stehen den Benutzern schneller zur Verfügung.
  3. Seelenfrieden: Freitagabend-Bereitstellungen sind kein Stressfaktor mehr, da alles automatisiert und getestet wird.

Technologien und Werkzeuge

Um eine CI/CD-Pipeline einzurichten, werden in der Regel folgende Tools verwendet:

  • Pipeline-Tools: GitHub Actions, GitLab CI, Jenkins oder CircleCI.
  • Containerisierung: Docker (um sicherzustellen, dass der Code überall gleich läuft).
  • Orchestrierung: Kubernetes.