Backup & DR für Compose Stacks: RPO/RTO messbar machen

In produktiven Docker Compose-Umgebungen ist ein durchdachtes Backup- und Disaster-Recovery-Konzept entscheidend, um Datenverlust zu vermeiden und Geschäftskontinuität sicherzustellen. Dieser Artikel zeigt praxisnahe Methoden, um RPO (Recovery Point Objective) und RTO (Recovery Time Objective) messbar zu machen, Backups zuverlässig zu erstellen und Wiederherstellungsprozesse zu testen.

1. Grundlagen von Backup und DR

Backup und Disaster Recovery (DR) sind zwei eng miteinander verbundene Konzepte:

  • Backup: Regelmäßige Kopien von Daten und Konfigurationen, die im Falle eines Datenverlusts genutzt werden können.
  • Disaster Recovery: Strategien und Prozesse, um nach einem Ausfall die Systeme schnell wiederherzustellen.
  • RPO (Recovery Point Objective): Maximale Datenverlustspanne, z. B. 15 Minuten oder 1 Stunde.
  • RTO (Recovery Time Objective): Maximale Ausfallzeit, bis ein System wieder verfügbar ist.

2. Backup-Strategien für Compose Stacks

Compose Stacks bestehen aus mehreren Containern, darunter Datenbanken, Caches, Fileserver und Applikationen. Eine effektive Backup-Strategie berücksichtigt alle relevanten Volumes und Konfigurationen.

Volume-Backups

Docker Volumes speichern persistente Daten. Diese sollten regelmäßig gesichert werden:

# Beispiel für Backup eines Datenbankvolumes
docker run --rm 
  -v db-data:/volume 
  -v $(pwd)/backups:/backup 
  alpine 
  tar czf /backup/db-data-$(date +%F).tar.gz -C /volume .

So werden alle Inhalte des Volumes als komprimiertes Archiv gesichert.

Konfigurations-Backups

Compose-Dateien, Umgebungsvariablen und Secrets müssen ebenfalls versioniert werden:

  • Docker Compose YAMLs in Git speichern
  • .env Dateien verschlüsselt ablegen
  • Secrets über dedizierte Secret-Management-Lösungen sichern

3. RPO messen und optimieren

Die Recovery Point Objective gibt an, wie viel Datenverlust im schlimmsten Fall tolerierbar ist. Kürzere Intervalle erfordern häufigere Backups oder Replikation:

Frequenz definieren

  • Datenbanken: kontinuierliche Replikation oder WAL Shipping
  • Dateisysteme: inkrementelle Backups alle 15–60 Minuten
  • Applikationsdaten: Snapshot-Techniken für Volumes

Automatisierte Tests

# Beispiel: Prüfen, ob Backup aktuell ist
LAST_BACKUP=$(ls -t backups/db-data-*.tar.gz | head -n1)
echo "Letztes Backup: $LAST_BACKUP"

Die Automatisierung sorgt dafür, dass RPO eingehalten und dokumentiert werden kann.

4. RTO messen und optimieren

RTO definiert, wie schnell ein System nach einem Ausfall wieder verfügbar sein muss. Dies kann durch Test-Restores simuliert werden.

Wiederherstellung von Volumes

# Restore eines Datenbankvolumes
docker run --rm 
  -v db-data:/volume 
  -v $(pwd)/backups:/backup 
  alpine 
  sh -c "rm -rf /volume/* && tar xzf /backup/db-data-2026-03-08.tar.gz -C /volume"

Container-Stacks neu deployen

# Stack stoppen und wieder hochfahren
docker compose -f docker-compose.yml down
docker compose -f docker-compose.yml up -d

Durch Messen der Zeit vom Stoppen bis zur vollständigen Verfügbarkeit kann die RTO bestimmt und optimiert werden.

5. Strategien für inkrementelle Backups

In großen Umgebungen kann es ineffizient sein, jedes Volume vollständig zu sichern. Inkrementelle Backups speichern nur geänderte Daten.

# Beispiel rsync für inkrementelles Backup
rsync -a --link-dest=/backups/previous /var/lib/docker/volumes/db-data/_data/ /backups/current

Das reduziert Speicherbedarf und Backup-Dauer erheblich.

6. Remote-Backups und S3-kompatible Ziele

Backups sollten nicht auf demselben Host verbleiben, um bei Host-Ausfall geschützt zu sein.

  • S3, MinIO oder andere Objekte-Speicher
  • Verschlüsselung während der Übertragung (TLS) und im Ziel
  • Versionierung aktivieren
# Beispiel mit AWS CLI
aws s3 cp backups/db-data-2026-03-08.tar.gz s3://mybucket/backups/ --storage-class STANDARD_IA

7. Automatisierung und CI/CD Integration

Backups sollten automatisiert und in CI/CD Pipelines integriert werden, um Konsistenz sicherzustellen:

  • Cron-Jobs für regelmäßige Backups
  • Pipeline-Schritte für Backup- und Restore-Tests
  • Alerting bei fehlgeschlagenen Backups

8. DR-Tests und Validierung

Ein Backup ist nur so gut wie sein Restore. Regelmäßige DR-Tests sind Pflicht:

  • Testumgebung aufsetzen
  • Restore durchführen und Funktionalität prüfen
  • RPO und RTO dokumentieren und vergleichen

9. Monitoring und Alerting

Die Überwachung der Backup- und DR-Prozesse ist entscheidend:

  • Erfolgreiche Backup-Logs überwachen
  • Alert bei fehlgeschlagenem Backup oder Restore-Test
  • Metrics für RPO/RTO erfassen

10. Best Practices

  • Backups sollten host-unabhängig und versioniert sein
  • Secrets und Konfigurationen stets getrennt sichern
  • Automatisierte Tests für RPO und RTO implementieren
  • Inkrementelle Backups nutzen, um Performance zu verbessern
  • Remote-Ziele und Verschlüsselung für Disaster-Sicherheit
  • Regelmäßige Restore-Tests zur Validierung
  • Dokumentation der Backup-Strategie und Prozesse für das Team

11. Zusammenfassung

Ein robustes Backup- und DR-Konzept für Docker Compose Stacks sorgt dafür, dass RPO und RTO messbar sind und Ausfallzeiten minimiert werden. Durch Kombination aus Volume-Backups, automatisierten Restore-Tests, Remote-Speichern und Monitoring lässt sich die Verfügbarkeit von Services erhöhen und die Sicherheit der Daten gewährleisten. Die konsequente Umsetzung dieser Praktiken schafft Vertrauen in produktive Compose-Umgebungen und unterstützt IT-Teams bei der Einhaltung von SLAs.

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:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

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

Related Articles