English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gość
1 / ?
powrót do lekcji

Czytanie Długiego Ogona

Opóźnienie Żyje na Krzywej, Nie na Liczbie

Średnie opóźnienie ukrywa to, co doświadczają użytkownicy. Rzeczywiste usługi produkują rozkład: krzywą pokazującą, ile żądań zajęło ile czasu.

Trzy punkty na tej krzywej niosą większość operacyjnego znaczenia:

- p50 (mediana): środek rozkładu. Połowa żądań kończy się szybciej, połowa wolniej. Opisuje typowe doświadczenie.

- p99: 99. percentyl. Tylko 1% żądań zajęło więcej czasu. Opisuje najgorsze doświadczenie dla typowych użytkowników.

- p99.9: tylko 0,1% żądań zajęło więcej czasu. Opisuje najgorsze doświadczenie dla zaawansowanych użytkowników, którzy często używają usługi.

Wgląd geometryczny: rozkłady opóźnień prawie zawsze mają długo rozciągający się prawy ogon. Krzywa gwałtownie rośnie do szczytu wokół mediany, a następnie powoli spada w prawo, często z małą wypukłością daleko od średniej. Ta wypukłość reprezentuje najwolniejszych użytkowników: tych, którzy piszą rozjuszczone wiadomości.

Dlaczego średnie wprowadzają w błąd: usługa z medianą 50 ms i p99 5000 ms ma lukę 100x między typowym a doświadczeniem ogona. Średnia arytmetyczna może wynosić około 100 ms, całkowicie ukrywając katastrofę. Średnia arytmetyczna jest pojedynczą projekcją punktową kształtu 2D: prawie wszystkie informacje o kształcie znikają.

Problem mnożenia percentyli: żądanie, które dotyka 10 usług backendowych, każdy z p99 100 ms, ma p99 około 600 ms (nie 100 ms). Wolne ogony się mnożą. Dlatego właśnie książka SRE ostrzega: 'uważaj na najwolniejszego z N'. Gdy N rośnie, opóźnienie ogona szybko się pogarsza.

Rozkład opóźnień: długo rozciągający się prawy ogon z zaznaczonymi p50, p99, p99.9

Matematyka Opóźnienia Ogona

Usługa A ma przepływ żądań, który rozpowszechnia się na 5 usług backendowych równolegle i czeka na wszystkie odpowiedzi. Każdy backend ma opóźnienie p99 100 ms.

Oszacuj opóźnienie p99 usługi A biorąc pod uwagę strukturę rozpowszechniania. Wyjaśnij, dlaczego odpowiedź różni się od 100 ms. Jaki geometryczny wzór w rozkładzie opóźnień powoduje to mnożenie, & jaka jest jedna konkretna zmiana architektoniczna, która zmniejsza wzmacnianie ogona?

Wyczerpywanie Budżetu jako Nachylenie

Wykreślanie Budżetu w Czasie

Budżet błędów wykreślony na osiach 2D (czas na x, pozostały budżet na y) ujawnia kondycję usługi na pierwszy rzut oka. Kształt krzywej wyczerpywania niesie te same informacje, które dziesięć pulpitów mogłoby przekazać indywidualnie.

Trzy kształty odniesienia:

- Zdrowe liniowe wyczerpywanie: budżet spada w linii prostej proporcjonalnej do upływającego czasu. Do dnia 14 w 28-dniowym oknie powinna pozostać połowa budżetu. To jest widoczny cel SLO.

- Szybkie spalanie: strome nachylenie w dół. Wskazuje na aktywny problem niezawodności. Jeśli nachylenie jest wystarczająco strome, budżet wyczerpuje się zanim okno się zresetuje, uruchamiając politykę budżetu błędów.

- Wygojona krzywa: segment płaski lub rosnący. Usługa osiąga lepsze wyniki niż jej SLO. Pozostały budżet rośnie w czasie, otwierając miejsce na ryzykowne uruchomienia.

Szybkość spalania to znormalizowane nachylenie linii wyczerpywania: szybkość spalania 1 oznacza spalanie budżetu dokładnie tak szybko, jak upływa czas (doskonale wyrównany z SLO). Szybkość spalania 10 oznacza spalanie 10x szybciej niż dozwolone: cały miesięczny budżet wyczerpałby się w 2,8 dnia w tym tempie.

Alertowanie z wieloma oknami i wieloma szybkościami spalania: podręcznik SRE Google rekomenduje alertowanie na połączonych warunkach takich jak 'szybkość spalania powyżej 14,4 w ciągu ostatniej godziny I powyżej 14,4 w ciągu ostatnich 5 minut'. Geometria: utrzymane strome nachylenie, a nie tylko krótki skok. Ten kształt filtruje przejściowe anomalie, jednocześnie wychwytując prawdziwe zagrożenia wyczerpywaniem się.

Wyczerpywanie budżetu błędów: liniowe, szybkie spalanie, wygojone kształty

Odczytywanie Szybkości Spalania

SLO Twojego zespołu to 99,9% przez 28 dni. W dniu 7 już wykorzystałeś 60% budżetu błędów. Obecna szybkość spalania w ciągu ostatnich 24 godzin wynosi 8.

Oblicz przewidywany stan na koniec okna (budżet wyczerpany lub nadwyżka), jeśli szybkość spalania będzie kontynuowana. Następnie opisz, co geometryczny kształt wykresu wyczerpywania ci mówi & co polityka budżetu błędów prawdopodobnie mówi, że powinieneś robić w tym tygodniu.

Usługi jako Graf Skierowany

Produkcja jako DAG

Nowoczesne usługi działają jako graf zależności. Każda usługa to węzeł. Każde wywołanie z usługi A do usługi B to skierowana krawędź od A do B. Pełny obraz tworzy skierowany graf (czasami DAG, czasami z cyklami poprzez asynchroniczne ponowne próby).

Krytyczne właściwości geometryczne:

- Stopień wyjściowy: ile usług zależy węzeł. Wyższy stopień wyjściowy oznacza więcej trybów awarii upstream. Usługa, która zależy od 12 backendów, kończy się niepowodzeniem, jeśli którykolwiek z tych 12 zawiedzie.

- Stopień wejściowy (fan-in): ile usług zależy od tego węzła. Wyższy stopień wejściowy oznacza, że jedna awaria tutaj rozprzestrzenia się szeroko. Baza danych z 30 usługami zależnymi ma największy promień wybuchu.

- Centralność pośrednicząca: ile najkrótszych ścieżek przechodzi przez węzeł. Węzły o wysokiej centralności pośredniczącej to wąskie gardła. Usługi uwierzytelniania i podstawowe API zazwyczaj uzyskują wysokie wyniki.

- Silnie połączone komponenty: grupy usług, które tworzą cykle. Jeśli A wywołuje B, a B wywołuje A, masz cykl. Cykle komplikują odzyskiwanie awaryjne: uruchomienie którekolwiek usługi wymaga, aby druga już działała.

Promień wybuchu to pojęcie geometryczne, które napędza inwestycje w niezawodność. Promień wybuchu awarii to podgraf usług zależnych, na które wpływa. Inżynieria niezawodności inwestuje dużo w węzły z największym promieniem wybuchu. Najtańszym sposobem na poprawę ogólnej niezawodności systemu jest często dodanie redundancji lub wdzięcznej degradacji w węzłach o największej centralności pośredniczącej.

Graf zależności usług z wyróżnionym węzłem o wysokiej centralności pośredniczącej

Rozumowanie Promienia Wybuchu

Usługa konsumencka zależy od: AuthService, UserDB, ProductCatalog, PaymentGateway, RecommendationEngine, EmailService, AnalyticsService. AuthService ma 47 innych usług zależnych od niego. EmailService ma 3 inne usługi zależne od niego. RecommendationEngine ma 2 inne usługi zależne od niego.

Ranking te trzy usługi według promienia wybuchu od najwyższego do najniższego. Następnie opisz dwie konkretne inwestycje niezawodności, które mają być dokonane w węźle o największym promieniu wybuchu po pierwsze, & wyjaśnij, dlaczego inwestowanie tam daje większą ogólną poprawę niezawodności niż ta sama inwestycja w węźle o niższym promieniu wybuchu.

Geometria Informacji Pulpitu

Piksele to Nieruchomości

Pulpit to powierzchnia 2D o skończonej powierzchni. Każdy piksel przydzielony jednemu sygnałowi to piksel nie przydzielony innemu. Projektowanie pulpitu to problem geometrii: ułóż najbardziej istotne dla decyzji informacje w najmniejszym obszarze wizualnym, zachowując relacje przestrzenne, które pomagają w rozpoznaniu.

Wzory czytania: czytelnicy zachodni skanują w kształcie F (od lewego górnego rogu najpierw, potem w poprzek, potem w dół). Najważniejszy sygnał należy do lewego górnego rogu. Prawy dolny róg otrzymuje najmniej uwagi.

Grupowanie Gestalt: sygnały z tej samej usługi należą do tej samej grupy wizualnej. Opóźnienie, ruch, błędy i nasycenie dla jednej usługi należą do siatki 2x2, a nie rozproszone po całym ekranie. Bliskość wizualna koduje logiczną relację.

Kodowanie kolorami: czerwień na błędy, żółty na nasycenie, zielony na zakresy zdrowotne. Wybory kolorów to konwencje, nie losowe. Odwrócenie ich kosztuje obciążenie poznawcze na każdy rzut oka podczas incydentów.

Skalowanie osi Y: wykres skalowany 0-100% wygląda spokojnie nawet podczas podwojenia ruchu. Wykres automatycznie skalowany do ostatnich wartości wygląda alarmująco podczas normalnej zmienności. Obie opcje mają odpowiednie zastosowania; wybór jest geometryczny, nie kosmetyczny.

Gęstość informacji: zbyt mało sygnałów pozostawia zespół ślepy na to, co jest nie tak. Zbyt wiele grzęźnie sygnałem w hałasie. Zastosowanie stosunku danych do atramentu Edwarda Tufte'a: maksymalizuj stosunek atramentu, który przekazuje informacje, do atramentu, który dekoruje. Minimalizmem w stylu sparkline bije zaśmiecone widżety na pierwszy rzut oka.

Układ pulpitu: czytanie w kształcie F, grupowanie gestalt, kodowanie kolorem

Projektowanie na Pierwszy Rzut Oka

Twój zespół projektuje jeden główny pulpit dla usługi, która ma 8 krytycznych wskaźników SLI na 4 zależnościach backendowych. Pulpit musi odpowiedzieć na pierwsze pytanie inżyniera na dyżurze o 3 rano w mniej niż 5 sekund: 'czy coś się pali, & jeśli tak, gdzie?'

Opisz układ geometryczny, który wybrałbyś. Gdzie na ekranie trafiają najkrytyczniejsze sygnały? Jak grupujesz SLI według zależności? Jakie konwencje koloru i skali stosujesz, & jaki konkretny element zapewnia, że inżynier może odpowiedzieć na pytanie 'czy coś się pali' bez czytania tekstu?

Geometria SRE: Podsumowanie

Kształty, które Kierują Produkcją

Przeszedłeś przez cztery struktury geometryczne, które działają pod praktyką SRE:

- Rozkłady opóźnień jako krzywe z długim ogonem, gdzie percentyly noszą więcej prawdy niż średnie

- Stożki budżetu błędów, gdzie nachylenie wyczerpywania ujawnia kondycję usługi lepiej niż pozostały numer

- Grafy zależności usług, gdzie promień wybuchu i centralność kierują inwestycją w niezawodność

- Układy pulpitów jako nieruchomości 2D, gdzie przydział pikseli to problem geometrii o konsekwencjach operacyjnych


Myślenie geometryczne to to, co oddziela SRE od ogólnej pracy operacyjnej. Inżynier operacyjny czyta liczby. SRE czyta kształty. Kształty kodują informacje, które żadna pojedyncza liczba nie może uchwycić: nachylenie szybkości spalania, grubość ogona, centralność węzła, gestalt panelu pulpitu.


Towarzysząca lekcja samej SRE obejmowała praktyki. Ta lekcja obejmowała geometrię pod nimi. Razem tworzą wizualny i koncepcyjny rusztowanie nowoczesnej inżynierii niezawodności.