# Was ist CI/CD?

> Continuous Integration führt Code mit jeder Änderung zusammen und testet ihn. Continuous Deployment veröffentlicht automatisch in die Produktion. Zusammen beschleunigen sie Feedback-Zyklen und Time to Market.

- Date: 2020-08-04
- Source: https://romanoroth.com/de/blogs/what-is-ci-cd/
- Tags: CI/CD, Continuous Integration, Continuous Deployment, Software Delivery, Automatisierung, DevOps, Pipeline, Testing, Deployment


In der traditionellen Softwareentwicklung wird Software von allen Entwicklern in einem grossen einzigen Integrationsschritt zusammengeführt und getestet, der in der Regel Wochen oder gar Monate dauert. Da dies nur alle paar Monate passiert, ist dieser Schritt sehr zeitaufwändig.

## Einsicht in Kürze

- Im Continuous-Integration-Schritt (CI) wird der neue Code mit dem Quellcode zusammengeführt, gebaut und getestet
- Im Continuous-Deployment-Schritt (CD) wird das Softwarepaket automatisch in die Produktion deployt
- Mit Continuous Integration und Continuous Delivery/Deployment können Unternehmen den Feedback-Zyklus und den Durchsatz erhöhen

![DevOps-Infinity-Zahnradsymbol, das über einem roten Schaltkreisraster leuchtet](/images/blog/what-is-ci-cd-inline-1.jpg)

## Continuous Integration (CI)

<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/SdmlS8JyyMw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>


In der modernen Softwareentwicklung wird dieser Schritt jedes Mal ausgeführt, wenn der Quellcode geändert wird, mittels einer Methode, die als «Continuous Integration» bekannt ist. Der geänderte Quellcode wird mit dem restlichen Quellcode zusammengeführt, gebaut und getestet. Der Entwickler erhält sofort Feedback, ob seine Änderungen akzeptabel sind.

![Continuous-Integration-Ablauf: Entwickler committet ins Repository, CI-Server baut und testet, Feedback zurück](/images/blog/what-is-ci-cd-inline-2.png)

Durch Continuous Integration werden die Änderungen sofort zusammengeführt und getestet. Und weil die Änderungen kleiner sind, besteht ein geringeres Risiko, dass sie zu Problemen führen. Sollte eine Änderung dennoch zu einem Problem führen, kann es sofort entdeckt, zugewiesen und behoben werden. Continuous Integration bildet die Grundlage für Continuous Delivery oder Continuous Deployment.

## Continuous Delivery (CD)

<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/S7cYebyAjqs?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>


Obwohl Continuous Integration zur Integration der Software verwendet wird, ist die Software noch nicht in einer produktionsähnlichen Umgebung deployt, wo sie getestet werden kann. Mit Continuous Delivery wird das Softwarepaket in einer produktionsähnlichen Umgebung deployt und automatisch getestet, sobald es alle Tests auf dem Continuous-Integration-Server bestanden hat. Dieser zusätzliche Schritt ermöglicht es, Probleme zu erkennen, die sonst erst beim Live-Deployment der Software oder im Betrieb identifiziert werden könnten.

![Continuous-Delivery-Ablauf mit Deploy und Test in einer Umgebung und zwei Feedback-Schleifen zum Entwickler](/images/blog/what-is-ci-cd-inline-3.png)

## Continuous Deployment (CD)

<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/97CGyAdWyaw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>


Mit Continuous Deployment wird jede Änderung automatisch in die Produktion deployt, sobald sie alle Tests auf dem Continuous-Integration-Server und die automatischen Tests in der produktionsähnlichen Umgebung bestanden hat. Continuous Deployment baut auf Continuous Delivery und Continuous Integration auf, die seine Grundlage bilden.

![Continuous-Deployment-Ablauf: CI-Server baut, testet und deployt automatisch in eine Umgebung mit Feedback-Schleifen](/images/blog/what-is-ci-cd-inline-4.png)

Unternehmen sind zunehmend mit der Herausforderung konfrontiert, die Effizienz zu steigern und gleichzeitig die Kosten zu senken. Und genehmigte Änderungen an einem Produkt brauchen oft zu lange, um die Kunden auf dem Markt zu erreichen. Continuous Integration und Continuous Delivery/Deployment ermöglichen es Unternehmen, den Feedback-Zyklus und den Durchsatz zu beschleunigen, was bedeutet, dass sie schneller auf Änderungen reagieren und ihre Kunden zufriedenstellen können.

Originalbeitrag: [Medium](https://romano-roth.medium.com/what-is-ci-cd-66d5a63b67a3)

