CI/CD
# CI/CD

In der Software-Entwicklung ist CI/CD die kombinierte Praxis von kontinuierlicher Integration (englisch Continuous Integration, kurz: CI) und kontinuierlicher Auslieferung (englisch Continuous Delivery, kurz: CD) oder auch kontinuierlicher Bereitstellung (englisch Continuous Deployment, kurz: CD).

## Vergleich

* Kontinuierliche Integration: regelmäßige/fortlaufende Zusammenführung von mehreren kleinen Änderungen in den Hauptzweig
* Continuous Delivery: Wenn Software-Entwickler in kurzen Zyklen, mit hoher Geschwindigkeit und fortlaufend Software produzieren, sodass zu jeder Zeit zuverlässige Software, mit einem einfachen und wiederholbaren Bereitstellungsprozess, bei der Entscheidung zur Bereitstellung veröffentlicht werden kann
* Continuous Deployment: Wenn neue Softwarefunktionen vollständig automatisch ausgerollt/veröffentlicht/freigegeben werden

## Motivation

CI/CD überbrückt die Lücken zwischen Entwicklungs- und Administrationsaktivitäten, indem sie die Entwicklung, das Testen und die Bereitstellung von Anwendungen automatisieren. CI/CD-Dienste kompilieren die inkrementellen Codeänderungen, die von Entwicklern vorgenommen wurden und verknüpfen und verpacken sie in Software-Veröffentlichungen. Automatisierte Tests überprüfen die Softwarefunktionalität, und automatisierte Bereitstellungsdienste liefern sie an Endbenutzer. Ziel ist es, die frühzeitige Entdeckung von Fehlern zu erhöhen, die Produktivität zu steigern und schnellere Veröffentlichungszyklen zu erreichen. Der Prozess steht im Gegensatz zu herkömmlichen Methoden, bei denen eine Sammlung von Software-Updates (Software-Aktualisierungen) in einen großen Stapel integriert wurde, bevor die neuere Version bereitgestellt wurde. Moderne DevOps Praktiken umfassen:

* kontinuierliche Entwicklung,
* kontinuierliches Testen,
* kontinuierliche Integration,
* kontinuierliche Verteilung, und
* kontinuierliche Überwachung

von Softwareanwendungen während des gesamten Entwicklungslebenszyklus. Die CI/CD-Praxis oder CI/CD-Pipeline bildet das Rückgrat des modernen DevOps-Betriebs.

