Deployment (deutsch: Ausrollung, Bereitstellung) bezeichnet den Prozess, eine Software in eine Zielumgebung zu bringen — etwa eine neue Version einer Webanwendung vom Entwicklungsrechner auf den Produktionsserver. Ein gutes Deployment ist automatisiert, wiederholbar und jederzeit umkehrbar.
Umgebungen im Deployment-Prozess
- Development: Lokale Entwicklungsumgebung der Programmierer.
- Staging: Testumgebung, die der Produktion möglichst genau entspricht.
- Production: Die Umgebung, die echte Nutzer erreicht.
Je ähnlicher Staging und Produktion sind, desto seltener überraschen Fehler erst nach dem Livegang.
Deployment-Strategien
- Rolling Deployment: Server werden nacheinander aktualisiert — die Dienste bleiben durchgehend verfügbar.
- Blue-Green-Deployment: Zwei identische Umgebungen; die neue Version läuft komplett auf der grünen Seite, bei Erfolg wird der Verkehr umgeschaltet.
- Canary-Deployment: Die neue Version erreicht zunächst nur einen kleinen Nutzeranteil, dann wird langsam hochskaliert.
- Rollback: Bei Problemen zurück zur letzten stabilen Version — dazu gehört ein funktionierender Rollback-Plan.
Continuous Deployment und CI/CD
In modernen Teams ist Deployment oft Teil der CI/CD-Kette: Die Pipeline baut den Code (Build), testet ihn automatisiert und rollt ihn bei Erfolg selbstständig aus. Continuous Deployment heißt: Jeder erfolgreiche Build kann direkt in Produktion gehen — ohne manuellen Knopfdruck.
Werkzeuge
Häufige Werkzeuge sind Jenkins, GitHub Actions, GitLab CI, Ansible, Terraform (Infrastructure as Code) und Container-Plattformen wie Kubernetes. Welche Kombination passt, hängt von Teamgröße, Stack und Compliance-Anforderungen ab.
Grundlage jeder Ausrollung ist ein sauberer Versionsstand: Versionierung und Release gehören eng zum Deployment.