CI/CD Explained
CI/CD erklärt
Continuous Integration (CI) und Continuous Deployment (CD) sind wesentliche Praktiken der modernen Softwareentwicklung. Sie zielen darauf ab, den Prozess der Auslieferung von Codeänderungen in die Produktion zu beschleunigen und zu vereinfachen.

- Aus den Anforderungen werden Features soweit heruntergebrochen, dass es sich ein Feature in wenigen Stunden, maximal in ein paar Tagen implementiert lässt. Hat der Entwickler das Feature implementiert, so überträgt er seinen geänderten Code auf den Source Control Server.
- Der Continous Integration Server wird automatisch über die Änderung informiert, holt sich den aktuellen Stand der Software und startet mit dem Continous Integration Cycle.
- Build: Software wird kompiliert, Package wird erstellt.
- Test: die automatischen Tests werden ausgeführt.
- Schritte 2 bis 4 dauern Sekunden bis vielleicht eine Stunde. Das Ergebnis des Continous Integration Cycle wird als Fail or Succeed protokolliert
- Die Entwickler werden informiert und können unmittelbar reagieren.
- In der Grafik nicht gezeigt wird, dass die Applikation nun noch auf Ihre Betriebs-Umgebung übertragen, also deployed wird.
Kontinuierliche Integration (CI)
CI ist die Praxis, Codeänderungen mehrmals täglich automatisch zu testen und in ein gemeinsames Repository zu integrieren. Dieser Prozess hilft, Probleme frühzeitig zu erkennen und zu beheben, verbessert die Codequalität und reduziert Integrationsprobleme.
Wichtige Vorteile von CI
- Frühe Fehlererkennung: Automatisierte Tests entdecken Fehler früh im Entwicklungsprozess.
- Schnelleres Feedback: Entwickler erhalten unmittelbares Feedback zu ihren Codeänderungen.
- Bessere Zusammenarbeit: Häufige Integrationen fördern die Zusammenarbeit im Team.
Kontinuierliche Bereitstellung (CD)
CD ist die Praxis, Codeänderungen nach bestandenen CI-Tests automatisch in die Produktion bereitzustellen. Dadurch werden neue Funktionen und Fehlerbehebungen schnell und zuverlässig an die Nutzer ausgeliefert.
Wichtige Vorteile von CD
- Schnellere Time-to-Market: Automatisierte Deployments verkürzen die Zeit bis zur Veröffentlichung neuer Funktionen.
- Geringeres Risiko: Kleinere, inkrementelle Änderungen führen seltener zu gravierenden Problemen.
- Höhere Kundenzufriedenheit: Häufige Updates halten Nutzer engagiert und zufrieden.
Beispiele von CD-CD Frameworks und Tools
- Jenkins
- GitLab CI/CD
- Travis CI
- CircleCI
- GitHub Actions
- Bamboo
Azure DevOps / Azure (CI/CD)
Azure DevOps ist eine umfassende Plattform von Microsoft, die eine Vielzahl von Tools für die Softwareentwicklung und -bereitstellung bietet. Sie unterstützt CI/CD durch integrierte Pipelines, die es Teams ermöglichen, ihre Anwendungen effizient zu erstellen, zu testen und bereitzustellen.
AWS DevOps / AWS (CI/CD)
AWS DevOps umfasst eine Reihe von Diensten und Tools, die es Entwicklern ermöglichen, CI/CD-Pipelines in der AWS-Cloud zu implementieren. Mit Diensten wie AWS CodePipeline, AWS CodeBuild und AWS CodeDeploy können Teams ihre Softwareentwicklungsprozesse automatisieren und optimieren.