Postmortem „Network vs. App“: Ein faires Template

Ein Postmortem „Network vs. App“ ist dann am wertvollsten, wenn es nicht zur Schuldfrage wird, sondern zu einem fairen, faktenbasierten Lerninstrument. Genau hier scheitern viele Teams: Wenn Latenzspitzen, Timeouts oder Verbindungsabbrüche auftreten, zeigt die App Symptome – und das Netzwerk gilt schnell als „der Unsichtbare“, der alles verursacht. Umgekehrt werden Netzwerkprobleme oft vorschnell behauptet, weil Applikationslogs und Traces unvollständig sind oder weil Fehlermeldungen wie „connection reset“ zu schnell als Infrastrukturproblem interpretiert werden. Ein faires Template hilft, diese Reflexe zu vermeiden. Es zwingt dazu, Hypothesen von Beweisen zu trennen, Messlücken sichtbar zu machen und die Verantwortung entlang der tatsächlichen Kette (Client → DNS/TCP/TLS → LB → App → Upstream) sauber zu dokumentieren. In diesem Artikel erhalten Sie ein praxiserprobtes, publizierbares Template, das sowohl App- als auch Netzwerkperspektive gleichwertig abbildet: mit klarer Struktur, neutraler Sprache, einer gemeinsamen Zeitleiste, evidenzbasierten Abschnitten, Entscheidungslogik und einer Maßnahmenliste, die nicht nur „mehr Monitoring“ fordert, sondern konkrete technische und prozessuale Verbesserungen ermöglicht.

Warum „Network vs. App“ in Postmortems so häufig eskaliert

Der Konflikt entsteht meist nicht aus Bosheit, sondern aus Asymmetrie: Applikationsteams sehen ihre Metriken und Logs, Netzwerkteams sehen Links, Routen, Load Balancer und Paketpfade. Beide Seiten arbeiten mit unterschiedlichen Werkzeugen, Begriffen und Zeitauflösungen. Kommen dann noch Zeitdruck und Incident-Stress hinzu, rutschen Teams in vereinfachte Narrative („Die App ist kaputt“ oder „Das Netzwerk spinnt“).

  • Unterschiedliche Beweisarten: App-Logs/Traces vs. Netzwerk-Telemetrie (Flows, Retransmits, TLS-Handshake-Fehler).
  • Unklare Ownership: Wer besitzt LB-Timeouts, DNS-Resolver, Service Mesh, Zertifikate?
  • Fehlende Korrelation: Keine gemeinsame Zeitleiste für Deployments, Config-Änderungen, Traffic-Spikes und Upstream-Probleme.
  • Symptome sind irreführend: Ein Timeout sieht in der App wie „Upstream kaputt“ aus, kann aber durch Queueing oder fehlende Cancellation entstehen.

Ein faires Template schafft einen gemeinsamen Rahmen. Statt „Team A vs. Team B“ geht es um „Systemverhalten vs. Messdaten“.

Grundprinzipien für ein faires Postmortem

Bevor Sie Felder und Abschnitte definieren, sollten drei Prinzipien feststehen. Diese Prinzipien sind das Fundament, damit das Postmortem nicht zu einer nachträglichen Rechtfertigung wird.

  • Blameless, aber nicht folgenlos: Keine Schuldzuweisung, aber klare, überprüfbare Maßnahmen. Eine gute Einführung in blameless Postmortems bietet die „Postmortem Culture“ im Google SRE Book.
  • Evidenz vor Meinung: Jede zentrale Aussage wird mit Messdaten, Logs, Traces oder reproduzierbaren Tests untermauert.
  • Symmetrie der Perspektiven: App und Netzwerk bekommen gleichwertige Abschnitte, gleiche Tiefe und klare Schnittstellen.

Postmortem „Network vs. App“: Template-Übersicht

Das folgende Template ist so gestaltet, dass es direkt in Confluence, Google Docs oder einem Wiki als Standard genutzt werden kann. Es führt Teams durch Diagnose, Ursachenanalyse und Maßnahmenplanung – ohne Abkürzungen, aber auch ohne unnötigen Formalismus.

Metadaten und Kontext

  • Incident-ID / Ticket-Link: (z. B. PagerDuty, Jira, Opsgenie)
  • Datum und Zeitfenster: Beginn, Ende, Dauer
  • Betroffene Services/Komponenten: App-Services, LBs/Gateways, Netzwerkzonen, Upstreams
  • Schweregrad: nach interner Skala (z. B. SEV1–SEV4)
  • Kundenauswirkung: Anzahl betroffener Nutzer, Regionen, Prozent Traffic, Umsatz-/Conversion-Effekt
  • Owner und Reviewer: Incident Commander, App-Owner, Netzwerk-Owner, SRE/Plattform
  • Status: Draft, Review, Final, Maßnahmen in Umsetzung

Executive Summary ohne Schuldzuweisung

Dieser Abschnitt ist bewusst kurz, präzise und neutral. Er beantwortet: Was ist passiert, wie groß war der Impact, was war die Hauptursache (sofern bekannt) und welche zwei bis drei wichtigsten Fixes folgen daraus? Vermeiden Sie Formulierungen wie „Team X hat…“ und nutzen Sie stattdessen systemische Sprache: „Das System zeigte…“, „Die Abhängigkeit verhielt sich…“, „Die Konfiguration führte zu…“.

  • Was ist passiert? (ein Satz)
  • Impact: (ein Satz)
  • Haupttreiber: (ein Satz, evidenzbasiert)
  • Top-Maßnahmen: (2–3 Stichpunkte)

Gemeinsame Zeitleiste

Die Zeitleiste ist der wichtigste Entschärfer für „Network vs. App“. Sie zwingt dazu, Ereignisse in derselben Zeitachse zu betrachten: Deployments, Traffic-Änderungen, LB-Konfig, Routing, DNS, Zertifikate, App-Rollouts, Upstream-Probleme. Idealerweise nutzen Sie UTC oder eine einheitliche Zeitzone und geben die Quelle an (Monitoring, Git, Change-Log).

  • T-0: Erster Alarm / erste Nutzerbeschwerde (Quelle)
  • T+X: Erste Hypothese (wer/was/warum, explizit als Hypothese markieren)
  • T+X: Wichtige Beobachtungen (Metriken/Traces/Logs, Link oder Screenshot)
  • T+X: Änderungen am System (Deployments, Config, Feature Flags, Routing)
  • T+X: Mitigation-Schritte (was wurde getan, warum, Effekt)
  • T+X: Recovery (wann stabil, welche Metriken bestätigten Stabilität)

Symptome und Signale

Hier dokumentieren Sie, was sichtbar war, ohne bereits die Ursache zu behaupten. Trennen Sie End-to-End-Sicht (Client) von Service-Sicht und Netzwerk-Sicht. So reduzieren Sie die Gefahr, dass Symptome voreilig als Beweis für eine Seite interpretiert werden.

  • End-to-End: p95/p99 Latenz, Erfolgsrate, Timeouts, betroffene User Journeys
  • App: Error-Rate (4xx/5xx), Queueing, Threadpools, Connection Pools, GC-Pausen
  • LB/Gateway: Upstream-Response-Codes, handshake errors, upstream connect failures
  • Netzwerk: Paketverlust, Retransmits, DNS-Latenz, TLS-Handshake-Failures, Routing-Änderungen

Hypothesen-Board: Was wurde angenommen, was wurde bewiesen?

Dieser Abschnitt ist das Herzstück für Fairness. Jede Hypothese bekommt einen Status: „Bestätigt“, „Widerlegt“, „Unklar (Messlücke)“. So bleibt sichtbar, warum sich das Team in eine Richtung bewegt hat und wo Unsicherheit bestand.

  • Hypothese: (z. B. „DNS-Resolver hatte erhöhte Latenz“)
  • Beobachtung: (konkretes Signal, Zeitfenster)
  • Beweis: (Messdaten/Trace/Log, Link)
  • Gegenbeweis: (falls vorhanden)
  • Status: bestätigt / widerlegt / unklar

Abgrenzung der Verantwortungszonen

„Network vs. App“ ist oft ein falscher Dualismus, weil die echte Ursache in der Übergangszone liegt: Timeouts zwischen LB und App, falsche Retry-Policies, fehlende Deadline-Propagation oder ein Service Mesh mit Default-Retries. Dieser Abschnitt zwingt zur expliziten Abgrenzung: Welche Schicht kontrolliert welche Parameter?

  • Client: Timeouts, Retries, DNS-Caching, Connection Reuse
  • Edge/LB/Gateway: Idle-Timeouts, connect timeouts, upstream selection, health checks
  • App: Deadline/Cancellation, Connection Pool, Retry-Policy, Circuit Breaker
  • Upstreams: Rate limits, SLOs, Query-Timeouts, Backpressure

Diagnose-Schema: „Network oder App?“ als überprüfbare Fragen

Damit die Analyse nicht zur Debatte wird, nutzen Sie eine wiederholbare Fragenliste. Jede Frage sollte mit einer Messquelle beantwortbar sein. Wenn nicht, ist das Ergebnis eine konkrete Messlücke, die als Action Item landet.

  • Ist das Problem regional oder global? (Region/Zone/PoP-Segmentierung)
  • Tritt es nur bei bestimmten Endpunkten auf? (Endpoint-Segmentierung)
  • Steigt die Retry-Rate? (Client/App/Mesh)
  • Gibt es Hinweise auf Queueing/Saturation? (Threadpool, CPU, DB-Pool)
  • Sehen wir Handshake-/Connect-Probleme? (TLS/TCP Signale im LB/Mesh)
  • Ist DNS auffällig? (Resolver-Latenz, Fehlerquoten)
  • Gibt es Change-Events im Zeitfenster? (Deployments, Config, Routing)

Evidenzblock App: Was zeigt die Anwendungsschicht?

Dieser Abschnitt gehört dem Applikationsbereich – mit denselben Qualitätsanforderungen wie der Netzwerkblock. Ziel ist nicht, die App zu „verteidigen“, sondern die app-spezifischen Beweise sauber zu dokumentieren.

  • Latenzprofil: p50/p95/p99, Queueing-Indikatoren, tail latency Treiber
  • Ressourcen: CPU, Memory, GC, Threadpools, Event-Loop Lag (falls relevant)
  • Dependencies: DB-Latenzen, Cache hit rate, externe APIs, Rate limits
  • Timeout-/Retry-Policy: Werte, Attempt-Zahl, Backoff/Jitter, Deadline-Propagation
  • Cancellation: Wurde Arbeit beim Client-Abbruch abgebrochen oder weiter ausgeführt?
  • Traces: Welche Spans dominieren? Gibt es „stuck spans“ oder fehlende Spans?

Evidenzblock Netzwerk: Was zeigt die Netzwerkschicht?

Dieser Abschnitt dokumentiert Netzwerkbeweise gleichwertig: Routing, Paketverlust, Retransmits, TLS, DNS, Load Balancer, Service Mesh. Wichtig ist, nicht nur „Netzwerk war ok“ zu sagen, sondern messbar zu belegen, welche Indikatoren normal waren.

  • Transport-Indikatoren: Retransmits, Paketverlust, RTT, Connection failures
  • DNS: Resolver-Latenz, Fehler, Cache-Strategie, NXDOMAIN-Spikes
  • TLS: Handshake-Failures, Zertifikatswechsel, mTLS-Fehlerbilder
  • LB/Gateway: Upstream connect timeouts, 502/503/504, health check state, outlier ejection
  • Routing/Policy: Änderungen an Routen, Security-Gruppen, Firewall-Regeln, NAT-Engpässe
  • Service Mesh: Retries/Timeouts auf Proxy-Ebene, Circuit Breaker/Outlier Detection

Timeout- und Retry-Abstimmung als Neutralitäts-Test

Viele „Network vs. App“-Diskussionen lassen sich auf falsch abgestimmte Timeouts und Retries zurückführen. Dieser Abschnitt ist deshalb bewusst neutral: Er prüft die Kette. Wenn der LB länger wartet als die App, oder wenn Retries ohne Jitter laufen, ist die Ursache oft systemisch – nicht teambezogen.

  • Client-Deadline: (Wert, Quelle)
  • LB/Gateway-Timeouts: connect/read/idle/overall (Werte, Quelle)
  • App-Deadline und Upstream-Timeouts: (Werte, Quelle)
  • Retry-Kaskaden: Wo wird retryed (Client, App, Mesh, LB)?
  • Jitter/Backoff: aktiviert? (ja/nein, wie)

Skew-Regel als prüfbarer Rahmen

Eine einfache Konsistenzprüfung ist, ob Deadlines gestaffelt sind. Als Leitlinie:

Dclient > Dlb > Dapp > Dupstream

Wenn diese Reihenfolge nicht eingehalten ist, entsteht häufig „hängende Arbeit“ und schwer deutbare Timeout-Symptome.

Root Cause Analysis: Ursache, beitragende Faktoren, Auslöser

Um Fairness zu sichern, trennen Sie in drei Ebenen. So vermeiden Sie „Single Cause“-Erzählungen, die oft nur eine Seite treffen. Ursache ist der Kernmechanismus, beitragende Faktoren verschärfen, Auslöser startet den Incident.

  • Root Cause: (ein Satz, evidenzbasiert)
  • Trigger: (z. B. Traffic-Anstieg, Deployment, Provider-Event)
  • Contributing Factors: (z. B. fehlender Jitter, zu lange Timeouts, fehlende Outlier Detection)
  • Warum nicht früher erkannt? (Detection Gap)
  • Warum war Mitigation langsam? (Response Gap)

Detektions- und Diagnose-Lücken

Dieser Abschnitt verhindert Wiederholungen. Er macht sichtbar, warum die Teams Zeit verloren haben: fehlende Traces, fehlende LB-Metriken, keine DNS-Latenz, keine Korrelation mit Change-Events. Jede Lücke endet idealerweise in einer konkreten Maßnahme.

  • Messlücke: (z. B. „Keine Sicht auf TCP-Retransmits pro Zone“)
  • Auswirkung: (z. B. „Hypothese konnte 30 Minuten nicht bestätigt/widerlegt werden“)
  • Fix: (konkrete Telemetrie, Dashboard, Alert, Ownership)

Mitigation und Entscheidungslogik

Dokumentieren Sie nicht nur, was getan wurde, sondern warum. Gerade bei Degradationsmaßnahmen ist es wichtig, die Entscheidungskriterien transparent zu machen (p99, Error Budget, Saturation).

  • Welche Maßnahmen wirkten? (Beweis: Metriken vor/nach)
  • Welche Maßnahmen wirkten nicht? (und warum vermutlich nicht)
  • Welche Maßnahmen waren riskant? (Rollback-Risiko, Datenintegrität, Nebenwirkungen)
  • Welche Feature Flags/Degradation-Stufen wurden genutzt? (wenn vorhanden)

Action Items: fair, überprüfbar, mit Owner und Datum

Maßnahmen müssen konkret sein. Ein faires Postmortem vermeidet generische Aufgaben wie „Monitoring verbessern“ ohne Scope. Nutzen Sie klare Formulierungen und messbare Kriterien.

  • Prävention: (z. B. Timeouts staffeln, Retry Budget, Circuit Breaker, Outlier Detection)
  • Detektion: (z. B. Alert auf steigende Timeout-Rate pro Dependency, p99-Trigger, DNS-Latenz)
  • Diagnose: (z. B. standardisierte Trace-Attribute: dependency.name, attempt, region)
  • Mitigation: (z. B. Degradation-Flags, Runbook, One-Click-Aktion)
  • Ownership: Team/Person, Priorität, Fälligkeitsdatum, Erfolgsnachweis

Priorisierung mit Impact und Aufwand

Wenn Sie Maßnahmen priorisieren möchten, ohne in Diskussionen zu verlieren, nutzen Sie ein einfaches Scoring. Beispiel: Impact I und Aufwand E als Skalenwerte (z. B. 1–5). Ein grober Prioritätswert:

P = IE

Das ersetzt keine Planung, hilft aber, „high impact, low effort“ sichtbar zu machen.

Fairness-Check: Sprache, Attribution und Beweise

Dieser Abschnitt ist ein kurzer Selbsttest, bevor das Postmortem finalisiert wird. Er reduziert unterschwellige Schuldzuweisung und verbessert die Qualität.

  • Ist jede zentrale Aussage belegt? (Metrik/Log/Trace/Test)
  • Werden Hypothesen als Hypothesen markiert?
  • Wird zwischen Ursache und beitragenden Faktoren unterschieden?
  • Gibt es symmetrische Evidenzblöcke für App und Netzwerk?
  • Ist Ownership für LBs/Mesh/DNS klar dokumentiert?
  • Gibt es konkrete Action Items statt allgemeiner Wünsche?

Anhang: Mess- und Referenzpunkte, die „Network vs. App“ objektiver machen

Viele Diskussionen werden objektiv, wenn Teams dieselben Referenzpunkte verwenden. Der Anhang ist optional, aber in der Praxis sehr hilfreich, weil er Standards etabliert.

Cisco Netzwerkdesign, CCNA Support & Packet Tracer Projekte

Cisco Networking • CCNA • Packet Tracer • Network Configuration

Ich biete professionelle Unterstützung im Bereich Cisco Computer Networking, einschließlich CCNA-relevanter Konfigurationen, Netzwerkdesign und komplexer Packet-Tracer-Projekte. Die Lösungen werden praxisnah, strukturiert und nach aktuellen Netzwerkstandards umgesetzt.

Diese Dienstleistung eignet sich für Unternehmen, IT-Teams, Studierende sowie angehende CCNA-Kandidaten, die fundierte Netzwerkstrukturen planen oder bestehende Infrastrukturen optimieren möchten. Finden Sie mich auf Fiverr.

Leistungsumfang:

  • Netzwerkdesign & Topologie-Planung

  • Router- & Switch-Konfiguration (Cisco IOS)

  • VLAN, Inter-VLAN Routing

  • OSPF, RIP, EIGRP (Grundlagen & Implementierung)

  • NAT, ACL, DHCP, DNS-Konfiguration

  • Troubleshooting & Netzwerkoptimierung

  • Packet Tracer Projektentwicklung & Dokumentation

  • CCNA Lern- & Praxisunterstützung

Lieferumfang:

  • Konfigurationsdateien

  • Packet-Tracer-Dateien (.pkt)

  • Netzwerkdokumentation

  • Schritt-für-Schritt-Erklärungen (auf Wunsch)

Arbeitsweise:Strukturiert • Praxisorientiert • Zuverlässig • Technisch fundiert

CTA:
Benötigen Sie professionelle Unterstützung im Cisco Networking oder für ein CCNA-Projekt?
Kontaktieren Sie mich gerne für eine Projektanfrage oder ein unverbindliches Gespräch. Finden Sie mich auf Fiverr.

 

Related Articles