Continuous Deployment
Continuous Deployment ermöglicht das vollautomatische Ausrollen von Softwareänderungen bis in die Produktion, ohne manuelle Freigabeschritte.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Wartungsaufwand kann steigen
- Sicherheitsrisiken durch schnelle Änderungen
- Abhängigkeiten zwischen Systemen
- Code-Reviews vor der Bereitstellung
- Feature-Toggles nutzen
- Regelmäßige Schulungen für das Team
I/O & Ressourcen
- Versionskontroll-repository
- CI/CD-Pipeline
- Automatisierte Tests
- Produktiv bereitgestellte Software
- Reporting über Bereitstellungen
- Benutzerfeedback nach Bereitstellungen
Beschreibung
Continuous Deployment ist eine Weiterentwicklung von Continuous Delivery. Jede Änderung, die alle automatisierten Build-, Test- und Qualitätsprüfungen erfolgreich durchläuft, wird automatisch in die Produktionsumgebung ausgerollt. Ziel ist es, Durchlaufzeiten zu minimieren, Feedback zu beschleunigen und Risiken durch kleine, häufige Releases zu reduzieren.
✔Vorteile
- Schnellere Bereitstellung von Funktionen
- Höhere Softwarequalität
- Effiziente Nutzung von Ressourcen
✖Limitationen
- Erhöhter Aufwand für Tests
- Risiko bei fehlerhaften Bereitstellungen
- Funktioniert nicht bei allen Anwendungen
Trade-offs
Metriken
- Bereitstellungsfrequenz
Häufigkeit, mit der neue Versionen bereitgestellt werden.
- Änderungserfolgsquote
Der Prozentsatz der Änderungen, die erfolgreich in die Produktion gebracht werden.
- Mean Time To Recovery (MTTR)
Durchschnittliche Zeit, die benötigt wird, um nach einem Fehler wiederhergestellt zu werden.
Beispiele & Implementierungen
E-Commerce-Plattform
Ein Team nutzt kontinuierliche Bereitstellung, um neue Funktionen und Sicherheitsupdates schnell zu implementieren.
SAAS-Anwendung
Eine Software-as-a-Service-Anwendung setzt kontinuierliche Bereitstellung ein, um ihre Dienste effizient zu aktualisieren.
Mobile App
Ein mobiles Entwicklungsteam verwendet kontinuierliche Bereitstellung, um schnell auf Benutzerfeedback zu reagieren.
Implementierungsschritte
Definieren der CI/CD-Pipeline
Automatisierte Tests einrichten
Regelmäßige Feedback-Schleifen implementieren
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichende Testabdeckung
- Veraltete Tools im Prozess
- Technische Schulden durch langsame Releases
Bekannte Engpässe
Beispiele für Missbrauch
- Nicht getestete Änderungen bereitstellen
- Änderungen ohne Rücksprache einführen
- Ignorieren von Nutzerfeedback
Typische Fallen
- Übersehene Abhängigkeiten zwischen Komponenten
- Vorbereitung unzureichend getestet
- Mangelnde Dokumentation der Prozesse
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Erforderliche Sicherheitsstandards einhalten
- • Technologische Rahmenbedingungen definieren
- • Teamorientierte Prozesse implementieren