Zum Inhalt springen

Glossar · C

CI/CD

Continuous Integration und Continuous Delivery. Praxis, neuen Code automatisiert zu integrieren, zu testen und idealerweise sofort auszuliefern.

Definition

CI/CD steht für Continuous Integration und Continuous Delivery beziehungsweise Continuous Deployment. Es handelt sich um Praktiken und Methoden in der Softwareentwicklung, die darauf abzielen, neue Softwareänderungen automatisiert und kontinuierlich in ein gemeinsames Code-Repository zu integrieren, zu testen und auszuliefern. Ziel ist es, Entwicklungszyklen zu verkürzen und die Qualität des Codes zu erhöhen.

Continuous Integration (CI) bezeichnet dabei die automatisierte Zusammenführung von Codeänderungen mehrerer Entwickler in ein zentrales Repository. Continuous Delivery (CD) erweitert diesen Prozess, indem die Software nach erfolgreicher Integration und Testphase automatisch für die Auslieferung an die Nutzer vorbereitet wird. Continuous Deployment geht noch einen Schritt weiter und sorgt für die automatische Veröffentlichung der Software ohne manuellen Eingriff.

Was bedeutet das für Ihr Unternehmen?

Mit CI/CD werden Änderungen an Ihrer Software in kleinen, automatisch geprüften Schritten ausgeliefert statt in seltenen großen Paketen, bei denen jedes Update zum Risiko wird. Fehler fallen so früher auf und lassen sich einer bestimmten Änderung zuordnen, was die Behebung günstiger macht. Ob neue Versionen automatisch live gehen oder erst nach Ihrer Freigabe, ist eine bewusste Entscheidung, die Sie mit Ihrem Entwicklungsteam treffen sollten.

Hintergrund und Entwicklung

Die Konzepte von CI und CD entstanden aus der Notwendigkeit, Softwareentwicklungsprozesse effizienter und zuverlässiger zu gestalten. Continuous Integration wurde in den frühen 2000er-Jahren populär, insbesondere durch Praktiken des Extreme Programming (XP) und agile Methoden. Unternehmen wie ThoughtWorks und Entwickler wie Martin Fowler trugen maßgeblich zur Verbreitung bei.

Continuous Delivery und Continuous Deployment entwickelten sich als logische Erweiterungen, um den Weg von der Entwicklung bis zur Produktion zu verkürzen. Die zunehmende Verbreitung von Cloud-Computing und Container-Technologien ab Mitte der 2010er-Jahre förderte die Umsetzung automatisierter Deployment-Prozesse.

Funktionsweise von CI/CD

Der Kern von CI/CD ist eine automatisierte Pipeline, die verschiedene Schritte umfasst: Code-Integration, automatisierte Tests, Build-Erstellung und Deployment. Entwickler checken ihren Code in ein Versionsverwaltungssystem wie Git ein, woraufhin automatisierte Systeme den Code auf Fehler prüfen und Tests ausführen.

Bei erfolgreichem Abschluss der Tests wird der Code in eine Build-Umgebung überführt, wo ein lauffähiges Softwarepaket erzeugt wird. Im Rahmen von Continuous Delivery wird dieses Paket für die Auslieferung vorbereitet, beispielsweise durch Bereitstellung in einer Staging-Umgebung. Bei Continuous Deployment erfolgt die automatische Veröffentlichung in der Produktionsumgebung.

Einsatzgebiete und Vorteile

CI/CD wird vor allem in agilen Softwareentwicklungsprozessen eingesetzt, um häufige und zuverlässige Software-Updates zu ermöglichen. Es findet Anwendung in Webentwicklung, Mobile Apps, Cloud-Services und zunehmend auch in Embedded Systems.

Durch die Automatisierung der Integration und Auslieferung werden Fehler frühzeitig erkannt und behoben, was die Softwarequalität verbessert. Zudem reduzieren sich die manuellen Aufwände für Deployment und Tests, was Zeit und Kosten spart. Die schnelle Rückmeldung an Entwickler unterstützt die kontinuierliche Verbesserung.

Abgrenzung zu verwandten Konzepten

Continuous Integration unterscheidet sich von Continuous Delivery und Continuous Deployment durch den Fokus auf die Integration und Testautomatisierung, ohne zwingend die automatische Auslieferung in die Produktion. Continuous Delivery stellt sicher, dass Software jederzeit auslieferbar ist, während Continuous Deployment die automatische Veröffentlichung ohne manuelle Freigabe bedeutet.

Andere verwandte Konzepte sind DevOps, das die Zusammenarbeit zwischen Entwicklung und Betrieb fördert, sowie Infrastructure as Code, das die Automatisierung der Infrastrukturverwaltung unterstützt. CI/CD ist ein Teilbereich innerhalb dieser umfassenderen Praktiken.

Verwandte Begriffe

Passende Leistung

Sie möchten wissen, was das für Ihr Projekt bedeutet? Sprechen Sie uns an.

Zur Leistung: Wartung