# Application Recovery: Orchestrierung komplexer Dienst-Wiederherstellungen
TL;DR / Management Summary Ein erfolgreiches Recovery endet nicht beim Booten der VM. Application Recovery umfasst die Wiederherstellung der vollen Funktionalität eines Dienstes, der oft aus mehreren Komponenten (Webserver, Datenbank, Cache, Auth-Service) besteht. Ein Senior Admin nutzt Wiederherstellungs-Playbooks und Orchestrierungstools, um Abhängigkeiten zu wahren (z.B. Datenbank muss vor dem Webserver laufen) und die Integrität der Daten zwischen den Schichten zu validieren.
# 1. Das Ebenen-Modell des Recovery
Die Schichten der Wiederkehr.
- Infrastructure Level: Blech, Hypervisor, Storage, Netzwerk (VLANs).
- OS Level: Bootfähigkeit, Treiber, Systemdienste.
- Data Level: Datenbanken (Artikel 640), Fileshares (Artikel 638).
- Application Level: Logik, Konfigurationsdateien, Zertifikate.
- Access Level: DNS-Einträge, Firewall-Regeln, Loadbalancer (Artikel 562).
# 2. Abhängigkeiten managen (Boot Order)
Wer darf zuerst?
In einem modernen Stack ist die Reihenfolge entscheidend:
- Stufe 1: Core Infrastructure (DNS, Domain Controller, NTP).
- Stufe 2: Database Tier (SQL Cluster, Redis).
- Stufe 3: Application Tier (Java Apps, API Gateways).
- Stufe 4: Frontend Tier (Nginx, Apache, HAProxy).
- Wichtig: Wenn Frontend startet, bevor die DB da ist, laufen viele Apps in einen Error-Loop und hängen sich auf.
# 3. Deep Dive: Web-Applikation Recovery (LOB Apps)
Vom Code zum Dienst.
Häufiges Szenario: Eine interne Web-App ist abgestürzt.
- Code Restore: Wiederherstellung des
/var/wwwoder/inetpubVerzeichnisses. - Config Sync: Prüfen, ob Passwörter in der
.envoderweb.confignoch zum wiederhergestellten SQL-Server passen. - Perms Check: Sicherstellen, dass der User
www-dataoderIIS_IUSRSwieder Schreibrechte auf dem Upload-Verzeichnis hat.
# 4. Day-2 Operations: Disaster Recovery Playbooks
Wissen unter Druck.
Schreiben Sie “Kochrezepte” für Ihre wichtigsten Applikationen.
- Inhalt:
- Exakte IP-Adressen der beteiligten Server.
- Links zu den Backup-Jobs.
- Checkliste: “Wie teste ich, ob die App wirklich geht?” (z.B. “Einloggen als Testuser, Datei hochladen”).
# 5. Troubleshooting & “War Stories”
Wenn die App ‘Nein’ sagt.
# Top 3 Fehlerbilder
-
Symptom: VM läuft, aber Webseite zeigt “Database Connection Error”.
- Ursache: Datenbank-Server hat nach dem Restore eine neue IP bekommen oder der Dienst-Account ist im AD gesperrt.
- Lösung:
/etc/hostsoder Config-Files prüfen.
-
Symptom: “Permission Denied” im Browser nach dem Restore.
- Ursache: Die User-IDs (UID/GID) im Backup passen nicht zum neuen Linux-System (Mismatch bei LDAP/Local User).
- Fix:
chown -R www-data:www-data /var/www.
-
Symptom: Applikation ist extrem langsam.
- Ursache: Der Cache (Redis/Memcached) wurde nicht wiederhergestellt oder ist noch leer (Cold Cache Problem).
# “War Story”: Die “DNS-Falle” beim Schwenk
Ein Unternehmen schwenkte nach einem Brand auf sein DR-Rechenzentrum um. Alle Server waren nach 2 Stunden online. Das Problem: Niemand kam auf die Webseiten. Die Ursache: Die TTL (Time To Live) der öffentlichen DNS-Einträge stand auf 24 Stunden. Obwohl die OPNsense im neuen RZ die richtige IP hatte, leiteten die Internet-Provider den Traffic immer noch an die abgebrannte Brandruine weiter. Lehre: Application Recovery beinhaltet auch das DNS-Management. Setzen Sie die TTL für kritische Dienste präventiv auf 5-10 Minuten.
# 6. Monitoring & Reporting
Funktionstest automatisieren.
# Synthetic Monitoring
Nutzen Sie Tools wie Uptime Kuma oder Nagios, um nach dem Restore sofort die End-to-End Funktionalität zu prüfen.
- KPI:
HTTP 200 OKmit spezifischem String auf der Seite.
# 7. Fazit & Empfehlung
Application Recovery ist das eigentliche Ziel des Backups.
- Empfehlung: Nutzen Sie Infrastructure as Code (Terraform/Ansible), um die Applikationsumgebung im Notfall neu aufzubauen, statt mühsam hunderte Einstellungen manuell zu korrigieren.
- Wichtig: Dokumentieren Sie die Shared Secrets (API Keys, Token), die oft zwischen den App-Komponenten geteilt werden.
# Anhang: Cheatsheet (App Health Check)
| Befehl (Linux) | Zweck |
|---|---|
systemctl status <dienst> |
Läuft der Prozess? |
ss -tlpn |
Lauscht die App auf dem Port? |
tail -f /var/log/<app>/error.log |
Wo klemmt es? |
df -h |
Ist Platz für Uploads da? |