Läsa långsvansen
Latens lever på en kurva, inte ett nummer
En genomsnittlig latens döljer vad användarna upplever. Riktiga tjänster producerar en fördelning: en kurva som visar hur många förfrågningar som tog hur lång tid.
Tre punkter på den kurvan bär större delen av den operativa betydelsen:
- p50 (median): mitten av fördelningen. Hälften av förfrågningarna avslutas snabbare, hälften långsammare. Beskriver den typiska upplevelsen.
- p99: 99:e percentilen. Endast 1% av förfrågningarna tog längre tid än detta. Beskriver den värsta upplevelsen för typiska användare.
- p99.9: endast 0,1% av förfrågningarna tog längre. Beskriver den värsta upplevelsen för kraftfulla användare som ofta träffar tjänsten.
Geometrisk insikt: latensfördelningar har nästan alltid en lång höger svans. Kurvan stiger snabbt till en topp omkring medianen, sjunker sedan långsamt åt höger, ofta med en liten puckel långt från medelvärdet. Den puckeln representerar de långsammaste användarna: de som skriver arga biljetter.
Varför medelvärden vilseleder: en tjänst med median 50 ms och p99 på 5 000 ms har ett 100x-gap mellan typisk och svansupplevelse. Det aritmetiska medelvärdet kan hamna på 100 ms och dölja katastrofen helt. Det aritmetiska medelvärdet är en enpunktsprojektion av en 2D-form: nästan all information om formen försvinner.
Percentilmultiplikationsproblemet: en begäran som rör 10 serverdelstjänster, var och en med en p99 på 100 ms, har en p99 på ungefär 600 ms (inte 100 ms). De långsamma svansarna multipliceras. Det är därför SRE-boken varnar: 'varning för den långsammaste av N'. När N växer försämras din svanslatens snabbt.
Svanslatensmatematik
Service A har ett förfrågningsflöde som fläktar ut till 5 serverdelstjänster parallellt och väntar på alla svar. Varje serverdelstjänst har en p99-latens på 100 ms.
Budgetförbrukning som lutning
Att rita upp budgeten över tid
En felbudget ritad på 2D-axlar (tid på x, återstående budget på y) avslöjar tjänstehälsa på en gång. Formen på förbrukningskurvan bär samma information som tio instrumentpaneler skulle förmedla individuellt.
Tre referensformer:
- Hälsosam linjär förbrukning: budgeten faller i en rät linje proportionell mot förfluten tid. Vid dag 14 av ett 28-dagars fönster bör hälften av budgeten återstå. Detta är SLO-målet gjort synligt.
- Snabb förbrukning: en brant nedåtgående lutning. Indikerar ett aktivt tillförlitlighetsproblem. Om lutningen är brant nog förbrukas budgeten före fönstret återställs, vilket utlöser felbuggetpolicyn.
- Läkad kurva: ett platt eller stigande segment. Tjänsten presterar bättre än sin SLO. Återstående budget växer över tid och öppnar plats för riskabla lanseringar.
Förbrukningshastighet är lutningen på förbrukningslinjen, normaliserad: en förbrukningshastighet på 1 betyder att budgeten förbrukas exakt så snabbt som tiden går (perfekt i linje med SLO). En förbrukningshastighet på 10 betyder att förbrukningen går 10x snabbare än tillåtet: hela månadbudgeten skulle förbrukas på 2,8 dagar i denna takt.
Avisering för flera fönster med flera förbrukningshastigheter: Googles SRE-arbetsbok rekommenderar avisering på kombinerade villkor som 'förbrukningshastighet över 14,4 under den senaste timmen OCH över 14,4 under de senaste 5 minuterna'. Geometrin: en bestående brant lutning, inte bara en kort topp. Denna form filtrerar bort övergående glipor medan den fångar riktiga förbrukningshot.
Läsa en förbrukningshastighet
Ditt lags SLO är 99,9% över 28 dagar. Vid dag 7 har du redan använt 60% av din felbudget. Den aktuella förbrukningshastigheten under de senaste 24 timmarna är 8.
Tjänster som en riktad graf
Produktion som en DAG
Moderna tjänster körs som en graf av beroenden. Varje tjänst är en nod. Varje anrop från tjänst A till tjänst B är en riktad kant från A till B. Hela bilden bildar en riktad graf (ibland en DAG, ibland med cykler via asynkrona nya försök).
Kritiska geometriska egenskaper:
- Utgångsgrad: hur många tjänster en nod är beroende av. Högre utgångsgrad betyder fler felkällor uppströms. En tjänst som är beroende av 12 serverdelstjänster misslyckas om någon av dessa 12 misslyckas.
- Ingångsgrad (fläktning): hur många tjänster som är beroende av denna nod. Högre ingångsgrad betyder att ett enda misslyckande här kaskader brett. En databas med 30 beroende tjänster har det största spridsningsradien.
- Betweenness centrality: hur många kortaste vägar som passar genom en nod. Höga betweenness-noder är flaskhalsar. Autentiseringstjänster och kärn-API:er får vanligtvis höga poäng.
- Starkt sammankopplade komponenter: grupper av tjänster som bildar cykler. Om A anropar B och B anropar A har du en cykel. Cykler komplicerar felåterhämtning: att starta någon av tjänsterna kräver att den andra redan fungerar.
Spridsningsradie är det geometriska koncept som driver tillförlitlighetsinvesteringar. En misslyckandes spridsningsradie är undergraf av beroende tjänster den påverkar. Tillförlitlighetsteknik investerar tungt i noder med den största spridsningsradien. Det billigaste sättet att förbättra den övergripande systemtillförlitligheten är ofta att lägga till redundans eller graciös försämring vid de högsta betweenness-noderna.
Spridsningsradie-resonemang
En konsumenttjänst är beroende av: AuthService, UserDB, ProductCatalog, PaymentGateway, RecommendationEngine, EmailService, AnalyticsService. AuthService har 47 andra tjänster som är beroende av den. EmailService har 3 andra tjänster som är beroende av den. RecommendationEngine har 2 andra tjänster som är beroende av den.
Informationsgeometri för en instrumentpanel
Pixlar är fastighetsmark
En instrumentpanel är en 2D-yta med ändlig område. Varje pixel fördelad på en signal är en pixel som inte fördelats på en annan. Instrumentpaneldesign är ett geometriproblem: arrangera den mest beslutande informationen inom det minsta visuella området medan du bevarar rumsliga relationer som hjälper igenkänning.
Läsmönster: västerländska läsare skannar F-format (övre vänster först, sedan över, sedan ned). Den viktigaste signalen tillhör det övre vänstra hörnet. Det nedre högra hörnet får minst uppmärksamhet.
Gestalt-gruppering: signaler från samma tjänst tillhör samma visuella grupp. Latens, trafik, fel och mättnad för en tjänst tillhör en 2x2-rutnät, inte spridda över skärmen. Visuell närhet kodar logisk relation.
Färgkodning: röd för fel, gul för mättnad, grön för hälsosamma intervall. Färgval är konventioner, inte slumpmässiga. Att invertera dem kostar kognitiv belastning vid varje glimt under incidenter.
Y-axelskalning: en graf skalad 0-100% ser lugn ut även under en fördubbling av trafiken. En graf autoskalad till nyliga värden ser alarmerad ut under normal variation. Båda valen har lämpliga användningsområden; valet är geometrisk, inte kosmetik.
Informationstäthet: för få signaler lämnar laget blindt för vad som är fel. För många begrävar signalen i brus. Edward Tuftes data-ink-förhållande gäller: maximera förhållandet mellan bläck som förmedlar information till bläck som dekorerar. Sparkline-stil minimalisme slår röriga widgetar vid en glimt.
Designa för första ögonkastet
Ditt lag designar en enda primär instrumentpanel för en tjänst som har 8 kritiska SLI:er över 4 serverdelsberoenden. Instrumentpanelen måste svara på on-call-ingenjörens första fråga kl. 03:00 på mindre än 5 sekunder: 'brinner något, & i så fall var?'
Geometri för SRE: Sammanfattning
Former som kör produktion
Du har gått igenom fyra geometriska strukturer som löper under SRE-praxis:
- Latensfördelningar som långsvansade kurvor där percentilpoäng bär mer sanning än medelvärden
- Felbuggetkoner där förbrukningshastighetsluningen avslöjar tjänstehälsa bättre än det återstående antalet
- Beroendegrafer för tjänster där spridsningsradie och centralitet styr tillförlitlighetsinvestering
- Instrumentpanellayouter som 2D-fastighetsmark där pixelfördelning är ett geometriproblem med driftkonsekvenser
Geometrisk tänkande är det som skiljer SRE från generiska driftarbete. En ops-ingenjör läser siffror. En SRE läser former. Formerna kodar information som inget enskilt nummer kan fånga: lutningen på en förbrukningshastighet, fettheten på en svans, centraliteten på en nod, gestalten på en instrumentpanelpanel.
Följelektion om SRE själv täckte praktikerna. Denna lektion täckte geometrin under dem. Tillsammans bildar de den visuella och begreppsmässiga byggnaden för modern tillförlitlighetsteknik.