SystemarchitekturDevOps Engineer, Backend-Entwickler

Was ist Zero Downtime Deployment im Kontext der IT-Systemarchitektur und wie wird es implementiert?

Bestehen Sie Vorstellungsgespräche mit dem Hintsage-KI-Assistenten

Antwort.

Zero Downtime Deployment ist die Praxis der Aktualisierung einer Anwendung, ohne dass die Arbeit unterbrochen wird und sie für Benutzer nicht erreichbar ist. Dies wird erreicht, indem alte Instanzen der Anwendung schrittweise abgeschaltet und neue eingeführt werden.

Ein Beispiel für die Implementierung einer stateless Anwendung in der Cloud (zum Beispiel mit Kubernetes):

  1. Bereitstellung der neuen Version von Pods, ohne die alten zu beenden.
  2. Überprüfung, dass die neuen Instanzen gesund sind.
  3. Erst danach wird der Traffic auf sie umgeleitet (blue-green/release oder rolling update).
  4. Alte Container werden langsam heruntergefahren, nachdem die vollständige Sicherheit in die neue Version gewährleistet ist.

Beispiel deployment.yaml mit rolling update:

apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 4 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1 template: metadata: labels: app: my-app spec: containers: - name: app image: my-app:v2

Schlüsselfunktionen:

  • Erfordert stateless Dienste oder spezielle Strategien zur Zustandsmigration.
  • Wird häufig durch rolling update oder blue-green deployment realisiert.
  • Für Zero Downtime auf Datenbankebene ist eine Migration in mehreren Schritten erforderlich (backward/forward-kompatible Schemata).

Trickfragen.

Ist Zero Downtime Deployment unmöglich bei Änderungen des Datenschemas?

Es ist möglich, wenn die Schemasmigrationen in zwei Schritten durchgeführt werden: Zuerst wird der Code mit dem alten und neuen Schema kompatibel, dann erfolgt die eigentliche Migration und die Entfernung des Legacy-Codes.

Ist bei stateless Anwendungen Zero Downtime Deployment immer gewährleistet?

Nein! Eine Einschränkung kann der externe Zustand, Zeitüberschreitungen bei Verbindungen, nicht bearbeitete Anfragen oder nicht unterstützte rückwärtsinkompatible Änderungen in der API sein.

Brauchen nur große Unternehmen Zero Downtime Deployment?

Nein. Selbst für kleine Startups und SaaS-Lösungen ist Zero Downtime ein kritischer Faktor für die Benutzererfahrung (insbesondere auf globalen Märkten und bei hohen Lasten).