Site icon bintorosoft.com

Rolling Updates ohne Swarm: Praktische Patterns für Compose

Dissident social justice crusaders doing online activism, wearing anonymous masks and filming video in underground bunker, blackmailing government after stealing secret military documents

Rolling Updates sind eine wichtige Strategie, um Container-Services kontinuierlich zu aktualisieren, ohne dass es zu spürbaren Ausfallzeiten kommt. Während Docker Swarm oder Kubernetes eingebaute Mechanismen für Rolling Updates bereitstellen, lassen sich ähnliche Patterns auch mit Docker Compose umsetzen. Dieser Leitfaden zeigt praxisnahe Methoden, wie Sie Updates kontrolliert ausrollen können.

1. Grundlagen von Rolling Updates

Bei Rolling Updates werden Container nach und nach aktualisiert, sodass immer eine funktionierende Instanz online bleibt. Ziel ist es, die Verfügbarkeit zu sichern und Downtime zu vermeiden.

2. Vorbereitung der Compose-Umgebung

Ein sauber strukturierter Compose-Stack ist Voraussetzung für kontrollierte Updates.

Beispiel-Setup

version: "3.9"

services:
app_v1:
image: myapp:1.0
ports:
- "8080:80"
networks:
- webnet
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 15s
timeout: 5s
retries: 3

networks:
webnet:
driver: bridge

3. Deployment-Pattern: Blue/Green als Rolling Basis

Auch ohne Swarm kann das Blue/Green-Pattern als Basis für Rolling Updates dienen:

4. Traffic-Steuerung

Für Rolling Updates muss der Traffic kontrolliert verteilt werden.

Option 1: Reverse Proxy

upstream app {
    server app_v1:80;
    server app_v2:80; # neue Version
}

server {
listen 80;
location / {
proxy_pass http://app;
}
}

Option 2: Port-Mapping

Alternativ können Container unterschiedliche Ports verwenden und der Load-Balancer den Traffic schrittweise umschalten.

5. Update-Skripte und Automatisierung

Rolling Updates lassen sich mit einfachen Bash- oder Python-Skripten automatisieren:

# Beispiel Bash-Skript
docker-compose up -d app_v2
# Warten bis Healthcheck erfolgreich
sleep 15
docker-compose stop app_v1
docker-compose rm -f app_v1

6. Healthchecks als Kontrollmechanismus

Healthchecks steuern, wann Container für den Traffic freigegeben werden:

services:
  app_v2:
    image: myapp:2.0
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/health"]
      interval: 10s
      timeout: 5s
      retries: 3

7. Umgang mit Datenbanken

Schreibende Dienste benötigen besondere Aufmerksamkeit:

8. Rollback-Strategien

Falls Probleme auftreten, ist ein schnelles Rollback möglich:

9. Monitoring und Logging

Für sichere Rolling Updates ist Monitoring entscheidend:

10. Best Practices

11. Zusammenfassung

Rolling Updates ohne Swarm lassen sich mit Docker Compose durch gezielte Versionierung, parallele Container, Traffic-Switches und Healthchecks effizient umsetzen. Mit klaren Patterns, Automatisierung und Monitoring können stabile Deployments erreicht werden, die Ausfallzeiten vermeiden und Rollbacks vereinfachen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version