- 1 Section
- 10 Lessons
- unbegrenzt
- Patch- & Update-Management10
Test- vs. Produktivumgebung
Eine zentrale Regel im Patch-Management: niemals direkt in Produktion. Patches durchlaufen einen Pfad mehrerer Umgebungen – Entwicklung, Test, ggf. Staging, dann Produktion. Jede Stufe hat einen Zweck: in Dev wird ausprobiert, in Test wird verifiziert, in Staging wird unter produktivnahen Bedingungen final geprüft, in Prod läuft das Geschäft. Wer einen Patch ohne Test-Durchlauf direkt in Prod einspielt, riskiert Major Incidents wegen einer fehlerhaften Konfigurations-Annahme oder eines Hersteller-Bugs. Diese Lektion zeigt dir die typische 3- oder 4-Stage-Pipeline, was eine gute Test-Umgebung ausmacht (Stichwort Produktionsnähe), welche Test-Arten in welcher Stufe laufen, und wo die typischen Fehler liegen – allen voran das „aber bei uns im Test hat's funktioniert"-Phänomen.
1) Die typische Stage-Pipeline
Klick die Umgebungen an, um Details zu sehen:
2) Was eine gute Test-Umgebung ausmacht
Eine Test-Umgebung ist nur dann wertvoll, wenn sie der Produktion strukturell ähnelt. Sonst sind Test-Ergebnisse irreführend. Die wichtigsten Eigenschaften:
- Gleiche Versionen. OS, Datenbank, Anwendungsserver, Bibliotheken – wenn Test Java 11 und Prod Java 17, sind Tests nichts wert.
- Gleiche Konfiguration. Nicht nur Versionen, auch Konfigurations-Werte – Timeouts, Buffer-Größen, Connection-Pool-Konfig.
- Realistische Daten. Pseudodaten („Max Mustermann") finden andere Bugs als echte Daten. Idealerweise anonymisierte Kopien aus Prod.
- Vergleichbarer Datenumfang. 100 Test-Datensätze finden keine Performance-Probleme, die bei 5 Millionen Prod-Datensätzen auftreten.
- Gleiche Integrationen. Wenn Prod mit 8 anderen Systemen integriert, sollte Test mindestens mit deren Test-Pendants reden.
- Gleiche Berechtigungs-Struktur. Wenn Test alles als Admin macht, finden sich Bugs nicht, die nur bei eingeschränkten Rollen auftreten.
- Reproduzierbar. Per Ansible / Terraform aufgesetzt – wenn Test zerstört wird, neuer Bau in 30 Minuten.
3) Test-Arten und wo sie laufen
Smoke Test
Schnell, oberflächlich: „Startet die App? Antwortet sie?" Erste 5 Min. nach Deployment.Functional Test
Tut die Anwendung das, was sie soll? Kernfunktionen werden geprüft.Regression Test
Bricht der Patch etwas Bestehendes? Suite vorhandener Tests läuft komplett.Integration Test
Funktioniert das Zusammenspiel mit anderen Systemen? APIs, Datenströme.Performance Test
Wird der Patch langsamer? Last-Tests, Throughput, Antwortzeiten.Security Test
Hat der Patch wirklich die Lücke geschlossen? Vulnerability-Scan nach Patch.UAT (User Acceptance)
Bestätigung durch Fachbereich, dass der Patch funktioniert (in Staging).Backup-Restore-Test
Funktioniert das Backup nach dem Patch noch? Oft vergessen!Disaster-Recovery
Klappt Failover nach dem Patch? Vor allem bei Hochverfügbarkeits-Setups.4) Test vs. Prod – die typischen Unterschiede
Worin unterscheiden sich Test- und Prod-Umgebung in der Praxis?
5) Daten in Test-Umgebungen – DSGVO-relevant
Eine besonders wichtige Frage: Welche Daten dürfen ins Testsystem? Bei personenbezogenen Daten ist die DSGVO einschlägig. Drei mögliche Ansätze:
| Ansatz | Beschreibung | Datenschutz |
|---|---|---|
| Synthetische Daten | Künstlich generierte Datensätze. Test-User "Max Mustermann", Test-IBAN, Test-Adressen aus Generator. | ✓ DSGVO-frei |
| Anonymisierte Daten | Echte Prod-Daten, aber so verändert, dass keine Person mehr identifizierbar ist. Namen, Adressen, IDs werden ersetzt. | ✓ Wenn vollständig anonymisiert |
| Pseudonymisierte Daten | Wie anonymisiert, aber Re-Identifikation mit zusätzlichem Schlüssel möglich. | ⚠ DSGVO-relevant, weiter geschützt |
| 1:1-Kopie | Direkte Kopie aus Produktion. Inklusive aller personenbezogenen Daten. | ❌ DSGVO-konform nur mit voller TOM-Schutzschicht im Test (selten umgesetzt) |
Standardpraxis: anonymisierte oder pseudonymisierte Kopie. Tools wie pg_anonymizer, Delphix, Informatica machen das automatisiert. Wichtig: Anonymisierung muss in der TOM-Dokumentation beschrieben sein.
6) Promotion zwischen Stufen
Der Übergang von einer Stufe in die nächste heißt Promotion. Wichtige Praxis-Regeln:
- Nur in eine Richtung. Patches wandern strikt von Dev → Test → Staging → Prod. Niemals andersrum.
- Gleiches Artefakt. Der Patch, der in Test eingespielt wurde, ist exakt derselbe wie der in Staging und Prod – nicht „neu gebaut", sondern genau das gleiche Paket. Sonst sind Tests wertlos.
- Promotion-Kriterien. Klare Liste: was muss passiert sein, damit wir promoten dürfen? Alle Smoke-Tests grün, kein offener kritischer Bug, Approval vom Service-Owner.
- Promotion-Pause. Mindestens 24-48 h pro Stufe stehen lassen, damit Probleme sichtbar werden. „Direkt durchpromoten" ist gleichbedeutend mit „keine Stufen".
- Backout-Plan pro Stufe. Was passiert, wenn die Stufe schiefläuft? Rollback-Pfad muss klar sein.
7) Stage-Pipeline mit Repo-Snapshots
Die Stage-Pipeline lässt sich elegant mit den Repo-Snapshots aus Linux-Patch-Management kombinieren: jede Stufe zeigt auf einen anderen Snapshot. Damit ist die Patch-Welle im Repo selbst abgebildet:
| Stufe | Repo-Snapshot | Verzögerung |
|---|---|---|
| Dev | Latest (rolling) | aktuell |
| Test | Snapshot vom Montag der Vorwoche | 1 Woche |
| Staging | Snapshot vom Montag vor 2 Wochen | 2 Wochen |
| Prod | Snapshot vom Montag vor 3-4 Wochen | 3-4 Wochen |
8) Antipatterns
- „Bei uns im Test hat's funktioniert." Klassiker. Heißt fast immer: Test-Umgebung weicht in einem entscheidenden Detail von Prod ab (Version, Konfig, Datenmenge, Last). Lösung: Test-Umgebungs-Diff regelmäßig prüfen.
- Test = Prod-Klon-light. Test-Server haben halbe Ressourcen, halbe Datenmenge, halbe Last. Findet die Hälfte der Bugs. Lösung: Staging mit echten Prod-Ressourcen.
- Patch direkt in Prod „weil dringend". Selbst Emergency Changes sollten – wenn irgend möglich – einen Mini-Test-Durchlauf bekommen.
- Test-Daten gefährlich nahe an Prod. Echte personenbezogene Daten in Test ohne Anonymisierung. DSGVO-Verstoß.
- Veraltete Test-Umgebung. Test hängt 6 Monate hinter Prod, niemand pflegt sie nach – Tests werden bedeutungslos.
- „Lass uns das nur in Prod patchen, dann sehen wir, ob's funktioniert." Niemals.
- Stages, in denen niemand testet. Test-Umgebung existiert, aber niemand führt aktiv Tests durch. Nur Code-Deployments, dann nach Prod. Lösung: aktive Test-Verantwortlichkeit benennen.
Zusammenfassung
Patches durchlaufen typischerweise eine Stage-Pipeline: Dev → Test → Staging → Prod (oder in kleineren Setups Dev → Test → Prod). Jede Stufe hat ihren Zweck und ihre Test-Tiefe. Test-Umgebung muss strukturell produktionsnah sein: gleiche Versionen, Konfiguration, realistische Daten, vergleichbarer Datenumfang, gleiche Integrationen. Test-Arten: Smoke, Functional, Regression, Integration, Performance, Security, UAT, Backup-Restore, DR – verteilt über die Stufen. Test-Daten: synthetisch (DSGVO-frei), anonymisiert (sicher), pseudonymisiert (geschützt), 1:1-Kopie (nur mit voller TOM). Promotion zwischen Stufen: nur in eine Richtung, gleiches Artefakt, klare Kriterien, mindestens 24-48 h Verweilzeit. Stage-Pipeline lässt sich elegant mit Repo-Snapshots umsetzen (verschiedene Snapshots pro Stufe). Antipatterns: „funktionierte im Test", abgespeckte Test-Umgebung, direkt in Prod patchen, fehlende Anonymisierung, veraltete Stages.
Verwandte Lektionen: Patch-Management-Prozess · Rollback-Strategie · Change Management · und mehrWeitere relevante LektionenWSUSLinux Patch-MgmtCI/CDAnsibleDSGVOTOMsRTO/RPO
