Continuous Integration
Regelmässig
Regelmässig
Kontinuierliche Integration bedeutet, dass Entwickler ihren Code regelmässig (z. B. mehrmals täglich) in ein zentrales Repository einpflegen.
Automatisch
Automatisch
Der Code wird automatisch gebaut und getestet, um frühzeitig Fehler zu erkennen.
Erkennen von Problemen
Erkennen von Problemen
Ziel ist es, Integrationsprobleme frühzeitig zu vermeiden und die Codequalität zu sichern.
Vorteile
- Kleinere Änderungen → weniger Konflikte
- Schnellere Fehlersuche
- Stabilere Builds
Continuous Delivery
Ready
Ready
Bei der kontinuierlichen Bereitstellung wird sichergestellt, dass die Software jederzeit bereit für ein Deployment ist.
Artefakt
Artefakt
Der Build-Prozess erzeugt ein bereitstellbares Artefakt (z. B. ein Docker-Image oder ein Paket), das in Test- oder Staging-Umgebungen eingesetzt werden kann.
Veröffentlichung
Veröffentlichung
Die Veröffentlichung in die Produktionsumgebung erfolgt manuell, aber ist jederzeit möglich.
Continuous Deployment
Erweiterung
Erweiterung
Eine Erweiterung von Continuous Delivery, bei der auch das Deployment in die Produktivumgebung automatisiert ist.
Automatisch
Automatisch
Codeänderungen gelangen automatisch in die Produktion, sofern alle Tests erfolgreich sind.
CI/CD-Pipeline
Eine Pipeline ist eine strukturierte Abfolge von Schritten, die automatisch durchlaufen werden, sobald Änderungen am Code vorgenommen werden. Sie besteht aus vier Hauptphasen:- Build
- Test
- Delivery
- Deployment
Build-Phase
Das Ziel der Build-Phase ist es aus dem Quellcode ein ausführbares Artefakt zu erstellen (z. B..jar, .exe, Container-Image).
Zu den Aufgaben gehören unter anderem Folgende:
- Quellcode kompilieren
- Abhängigkeiten laden (z. B. Maven, npm, pip)
- Docker-Container bauen (z. B.
docker build) - Artefakte erzeugen und versionieren
Test-Phase
Das Ziel bei der Test-Phase ist es sicherzustellen, dass die Anwendung korrekt funktioniert und keine alten Funktionen kaputtgehen.| Testart | Beschreibung |
|---|---|
| Unit Tests | Test einzelner Funktionen/Methoden |
| Integrationstests | Test von Schnittstellen zwischen Komponenten |
| Regressionstests | Prüfen, ob bestehende Funktionen weiterhin korrekt arbeiten |
| Benutzerakzeptanztests (UAT) | Manuelle oder automatisierte Endnutzerprüfungen |
Delivery-Phase
Das Ziel der Delivery-Phase ist es die erstellten und getesteten Artefakte in eine Staging- oder Testumgebung zu überführen.Beispiele
- Upload in ein Artefakt-Repository (z. B. Nexus, Artifactory)
- Bereitstellung als Nightly Build
- Push in Docker Registry (z. B. Azure Container Registry, Docker Hub)