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

un

gäst
1 / ?

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.

Latensfördelning: långsvans höger med p50, p99, p99.9 märkt

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.

Uppskatta Service A:s p99-latens givet utfläktsstrukturen. Förklara varför svaret skiljer sig från 100 ms. Vilket geometriskt mönster i latensfördelningen orsakar denna multiplikation, & vad är en specifik arkitekturändring som minskar svansförstärkning?

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.

Felbugget-förbrukning: linjär, snabb förbrukning, läkade former

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.

Beräkna det projicerade sluttillståndet för fönstret (budget utmattad eller överskud) om förbrukningshastigheten fortsätter. Beskriv sedan vad den geometriska formen av förbrukningsgrafen säger dig & vad felbuggetpolicyn förmodligen säger att du ska göra denna vecka.

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.

Beroendegrafer för tjänster med högt centralt belägen nod markerad

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.

Rangordna dessa tre tjänster efter spridsningsradie från högst till lägst. Beskriv sedan två specifika tillförlitlighetsinvesteringar som ska göras vid den högsta spridsningsradienoden först, & förklara varför investeringen där ger större total tillförlitlighetsförbättring än samma investering vid en lägre spridsningsradienod.

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.

Instrumentpanellayout: F-format läsning, gestalt-gruppering, färgkodning

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?'

Beskriv den geometriska layouten du skulle välja. Var går de viktigaste signalerna på skärmen? Hur grupperar du SLI:erna efter beroende? Vilka färg- och skalningskonventioner tillämpar du, & vilket specifikt element säkerställer att ingenjören kan svara på 'brinner något' utan att läsa någon text?

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.