Węzeł Przeszkodowy Zidentyfikowany Przed Przyjściem Ruchu
Międzywęźnica Centrality
Dla każdego pary węzłów w grafie istnieje najkrótszy ścieżka między nimi. Międzywęźnica centrality węzła N = część wszystkich najkrótszych ścieżek, które przechodzą przez N.
Węzeł o wysokiej międzywęźnicy jest na ścieżce między wieloma innymi parami. Jeśli zwolni, wiele przepływów zwolni. Jeśli zawiedzie, wiele przepływów się zepsuje.
Czytanie architektoniczne: wysokimi międzywęźnicami są te węzły, których każda ocena architektury powinna przydzielić dodatkową uwagę. Są one przeszkodami, SPOFs & komponentami o wysokiej pojemności w jednym. Zazwyczaj są:
- Dostawca DNS (między każdym klientem & każdym usługą)
- Wgrywacz proxy (między każdym klientem & każdym tylnej ścianą)
- Podstawowa baza danych (między każdym tylnej ścianą & każdym odczytem)
- Usługa autentykacji (między każdym użytkownikiem & każdym autoryzowanym działaniem)
Wykrywanie bez pomiarów: sama topologia graficzna zidentyfikuje wysokie międzywęźnice. Nie potrzebujesz danych ruchu; potrzebujesz diagramu architektury. Węzeł, który siedzi między wieloma innymi parami, jest strukturalnie krytyczny.
Skutki operacyjne: wysokimi międzywęźnicami zasługują na dysproporcjonalne inwestowanie w (1) przestrzeń zapasowa pojemności, (2) nadmiarowość, (3) obserwowalność & (4) plany reakcji na incydenty.
Najmniejsze Przecięcie Odcięwa Najmniejszą Sztukę
Przecięcie Minimalne w Słownictwie Bezpośrednim
Przecięcie minimalne między dwoma węzłami w grafie to najmniejsza liczba krawędzi (lub węzłów), które musisz usunąć, aby je odciąć.
Operacyjne czytanie: granica min-cut ogranicza promień eksploatacji. Jeśli min-cut między 'klientami' a 'bazą danych' wynosi 1 krawędź (jedyny proxy), to utrata tej krawędzi odciąża wszystkich klientów od bazy danych. Jeśli min-cut wynosi 5, potrzebujesz jednoczesnej utraty 5 komponentów, aby całkowicie odciąć; niefortuna, ale ograniczona.
Projektowanie z uwzględnieniem promienia eksploatacji: zwiększaj min-cut na każdym ważnym granicznym punkcie. Kilka proxy; kilka węzłów cache; kilka ścieżek sieciowych między DC. Każde dodanie zwiększa min-cut o 1.
Wzorzec zespołu bulkhead w terminach graficznych: podziel zasoby na osobne podgrafy, które nie dzielą się min-cut z sobą. Porażka w jednym podgrafie nie może się przenosić do innych, ponieważ krawędzi nie ma.
Zestawy średnicy Określanie odległości propagacji awarii
Średnica grafu = najdłuższa najkrótsza droga między dowolnymi dwoma węzłami.
Propagacja awarii: gdy węzeł zawodzi i przepływ powtarza się, dotyka on węzłów w górę aż do odległości średnicy. System o średnicy 3 (klient -> proxy -> backend -> DB) oznacza, że awaria bazy danych wpływa na 3 warstwy w górę w burzy przetwarzania ponownie.
Skutki: krótsza średnica = szybsze zatrzymywanie awarii, ale także większa koncentracja węzłów. Każde projektowanie ma swoje zalety.
Obliczanie Min-Cut dla rzeczywistej architektury
Architektura: 1 DNS, 1 CDN, 3 odwrotne proxy, 12 replik backend, 1 główna baza danych.
Audyt trybu awaryjnego za pomocą metryk graficznych
Synteza
Teraz możesz zidentyfikować wysokie węzły międzywęźniowe, obliczać min-cut na każdej granicy i oszacować odległość propagacji awarii za pomocą średnicy.
Zastosuj wszystkie trzy.
System: 50 punktów końcowych klientów -> 1 DNS -> 2 POP CDN -> 4 odwrócone proxy -> 16 replik tła -> { klaster bazy danych (1 główny + 2 rezerwowe), klaster Redis (5 węzłów), 3 zewnętrzne API }.
Notatki towarzyszące
Notatki towarzyszące
Ta geometria- lekcja przekształca główną lekcję Trybów Awarii & Promień Eksplozji poprzez metryki graficzne (międzywęźle, min-cut, średnica).
Ostatnia towarzysząca lekcja, geometry_of_observability_and_capacity, traktuje komórki Voronoi dla obszarów obsługi CDN PoP, podłogę prędkości światła trójkąta opóźnienia oraz krzywą kolejki odwiedzana na poziomie proxy.
Świetnie zrobione.