Der Engpassknoten wird vor dem Eintreffen des Datenverkehrs identifiziert
Betweenness-Zentralität
Für jede Paarung von Knoten in einem Graphen gibt es einen kürzesten Weg zwischen ihnen. Die Betweenness-Zentralität eines Knotens N = der Bruchteil aller kürzesten Wege, die durch N laufen.
Ein Knoten mit hoher Betweenness ist auf dem Weg zwischen vielen anderen Paaren. Wenn er sich verlangsamt, verlangsamen viele Flüsse sich. Wenn er ausfällt, brechen viele Flüsse zusammen.
Architektonische Lesart: Knoten mit hoher Betweenness sind diejenigen, auf die jede Architekturreview besondere Aufmerksamkeit schenken sollte. Sie sind Engpässe, SPOFs und kapazitätskritische Komponenten in einer. Sie neigen dazu:
- Der DNS-Anbieter (zwischen jedem Client und jedem Service)
- Der Eingangssproxy (zwischen jedem Client und jedem Backend)
- Die Datenbank-Primär (zwischen jedem Backend und jedem Lesen)
- Die Authentifizierungsdienst (zwischen jedem Benutzer und jedem autorisierten Aktion)
Detektion ohne Messung: Die Topologie des Graphen identifiziert allein hohe Betweenness-Knoten. Sie benötigen keine Verkehrsdaten; Sie benötigen den Architekturdiagramm. Ein Knoten, der sich zwischen vielen Paaren anderer befindet, ist strukturell kritisch.
Betriebsfolge: Knoten mit hoher Betweenness verdienen eine entauschende Investition in (1) Kapazitätsreserven, (2) Redundanz, (3) Beobachtbarkeit und (4) Incidentsresponse-Handbücher.
Der kleinsten Schnitt trennt die kleinsten Abschnitt
Min-Cut-Theorem in einfachen Worten
Der Min-Cut zwischen zwei Knoten in einem Graphen = die kleinsten Anzahl von Kanten (oder Knoten), die Sie entfernen müssen, um sie voneinander zu trennen.
Betriebsbedingte Lesart: Die Min-Streuung begrenzt den Schlimmstenfalls Auswirkungsradius. Wenn die Min-Streuung zwischen "Kunden" und "Datenbank" eine Kante (eine einzelne Proxy) beträgt, wird das Verlust der Kante alle Kunden von der Datenbank trennen. Wenn die Min-Streuung 5 beträgt, benötigen Sie gleichzeitig 5 Komponenten zu verlieren, um vollständig getrennt zu sein; Pech, aber begrenzt.
Entwurf für den Auswirkungsradius: Erhöhen Sie die Min-Streuung an jedem wichtigen Grenzbereich. Mehrere Proxy-Server; mehrere Cacheknoten; mehrere Netzwerkwege zwischen Rechenzentren. Jede Hinzufügung erhöht die Min-Streuung um 1.
Das Bulkhead-Muster in graphischer Terminologie: Teilen Sie Ressourcen in separate Untergraphen auf, die sich gegenseitig keine Min-Streuung teilen. Ein Versagen innerhalb eines Untergraphen kann nicht auf die anderen übertragen, weil die Kanten nicht existieren.
Durchmesser-Ensembles legen die Ausbreitungsstrecke von Fehlern fest
Graphischer Durchmesser = die längste kürzeste Strecke zwischen zwei Knoten.
Ausbreitung von Fehlern: Wenn ein Knoten versagt und die Ströme zurückgerufen werden, berühren sie aufwendige Knoten bis zur Durchmesserentfernung entfernt. Ein Durchmesser-3-System (Kunde -> Proxy -> Backend -> DB) bedeutet, dass ein DB-Versagen 3 aufsteigende Ebenen in einem Wiedergabesturm beeinflusst.
Folgerung: Kurzer Durchmesser = schnellere Fehlernachverfolgung, aber auch höheres Konzentration von Knoten. Jeder Entwurf hat seinen Kompromiss.
Rechnen Sie die Min-Streuung für eine echte Architektur
Eine Architektur: 1 DNS, 1 CDN, 3 Reverse-Proxy-Server, 12 Backend-Replicas, 1 DB-Primärdatenbank.
Fehlmodauswertung über Graphmetriken
Synthese
Sie können jetzt hoch zwischennessige Knoten identifizieren, die Min-Streuung an jedem Grenzbereich berechnen und die Ausbreitungsstrecke von Fehlern über den Durchmesser schätzen.
Anwenden Sie alle drei.
Ein System: 50 Kundenendpunkte -> 1 DNS -> 2 CDN POPs -> 4 Rückführungsproxy -> 16 Backend-Exemplare -> { DB-Cluster (1 Primär + 2 Stände), Redis-Cluster (5 Knoten), 3 externe APIs }.
Kommilitonennotizen
Kommilitonennotizen
Diese Geometrie-der-Stunde wiederholt das Hauptkapitel "Failure Modes & Blast Radius" unter Verwendung von Graph-Metriken (Zwischenheit, Min-Schnitt, Durchmesser).
Das letzte Begleitkapitel, geometry_of_observability_and_capacity, behandelt Voronoi-Zellen für CDN PoP-Erntegebiete, die Latenz-Dreieck-Geschwindigkeit der Lichtgeschwindigkeit und die Warteschlangenkurve im Proxy-Bereich.
Sehr gut gemacht.