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.