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

un

gast
1 / ?
terug naar lessen

De lange staart lezen

Latentie leeft op een curve, niet als getal

Een gemiddelde latentie verbergt wat gebruikers ervaren. Echte diensten produceren een verdeling: een curve die aangeeft hoeveel verzoeken hoe lang duurden.

Drie punten op die curve dragen het meeste operationele betekenis:

- p50 (mediaan): het midden van de verdeling. De helft van de verzoeken eindigt sneller, de helft langzamer. Beschrijft de typische ervaring.

- p99: het 99e percentiel. Slechts 1% van de verzoeken duurde langer dan dit. Beschrijft de slechtste ervaring voor gebruikers.

- p99.9: slechts 0,1% van de verzoeken duurde langer. Beschrijft de slechtste ervaring voor zeer actieve gebruikers.

Geometrisch inzicht: latentiedistributies hebben bijna altijd een lange rechterstaart. De curve rijst snel tot een piek rond de mediaan, daalt dan langzaam naar rechts, vaak met een kleine bump ver van het gemiddelde. Die bump vertegenwoordigt de traagste gebruikers: degenen die boos kaartjes schrijven.

Waarom gemiddelden misleiden: een dienst met mediaan 50 ms en p99 van 5000 ms heeft een verschil van 100x tussen typische en staart-ervaringen. Het rekenkundig gemiddelde ligt misschien op 100 ms en verbergt de ramp volledig. Het rekenkundig gemiddelde is een enkele-punt projectie van een 2D-vorm: bijna alle informatie van de vorm verdwijnt.

Het percentielverveelvoudigingsprobleem: een verzoek dat 10 backend-diensten aanraakt, elk met een p99 van 100 ms, heeft een p99 van ruwweg 600 ms (niet 100 ms). De trage staarten vermenigvuldigen. Dit is waarom het SRE-boek waarschuwt: 'pas op voor de traagste van N'. Naarmate N groeit, verslechtert uw staart-latentie snel.

Latentieverdeling: lange rechterstaart met p50, p99, p99.9 gemarkeerd

Staartlatentie-wiskunde

Dienst A heeft een verzoekstroom die naar 5 backend-diensten uitwaaiert in parallel & wacht op alle antwoorden. Elk backend heeft een p99-latentie van 100 ms.

Schat de p99-latentie van dienst A gegeven de uitwaaierings-structuur. Leg uit waarom het antwoord anders is dan 100 ms. Welk geometrisch patroon in de latentieverdeling veroorzaakt deze vermenigvuldiging, & wat is één specifieke architectuurverandering die staart-versterking vermindert?

Budgetuitputting als helling

Het budget in de tijd uitzetten

Een foutbudget uitgezet op 2D-assen (tijd op x, resterend budget op y) openbaart servicegezondheid in één oogopslag. De vorm van de uitputtingscurve bevat dezelfde informatie als tien individuele dashboards bij elkaar.

Drie referentievormen:

- Gezonde lineaire uitputting: het budget daalt in een rechte lijn evenredig met verstreken tijd. Op dag 14 van een 28-daags venster zou de helft van het budget over moeten blijven. Dit is het SLO-doel zichtbaar gemaakt.

- Snelle brand: een steile helling naar beneden. Duidt op een actief betrouwbaarheidsprobleem. Als de helling steil genoeg is, raakt het budget op voordat het venster reset, waardoor het foutbudget-beleid wordt geactiveerd.

- Genezen curve: een plat of stijgend segment. De dienst presteert beter dan het SLO. Het resterend budget groeit in de tijd, wat ruimte biedt voor riskante releases.

Brandsnelheid is de helling van de uitputtingslijn, genormaliseerd: een brandsnelheid van 1 betekent dat het budget precies even snel op gaat als tijd verstrijkt (perfect afgestemd op SLO). Een brandsnelheid van 10 betekent 10x sneller opbranden dan toegestaan: het hele maandelijkse budget zou in 2,8 dagen opgebrand zijn bij dit tempo.

Multi-venster multi-brandsnelheid-waarschuwing: het SRE-werkboek van Google raadt aan waarschuwingen in te stellen op gecombineerde voorwaarden zoals 'brandsnelheid boven 14,4 in het afgelopen uur ÉN boven 14,4 in de afgelopen 5 minuten'. De meetkunde: een aanhoudende steile helling, niet alleen een korte piek. Deze vorm filtert voorbijgaande storingen weg terwijl echte uitputtingsrisico's worden onderschept.

Foutbudget-uitputting: lineair, snelle brand, genezen vormen

Een brandsnelheid lezen

Het SLO van je team is 99,9% over 28 dagen. Op dag 7 heb je al 60% van je foutbudget gebruikt. De huidige brandsnelheid over de afgelopen 24 uur is 8.

Bereken de voorspelde toestand aan het einde van het venster (budget opgebrand of overschot) als de brandsnelheid aanhoudt. Beschrijf wat de geometrische vorm van de uitputtingsgrafiek je vertelt & wat het foutbudget-beleid waarschijnlijk zegt dat je deze week moet doen.

Diensten als gerichte grafiek

Productie als een DAG

Moderne diensten draaien als een grafiek van afhankelijkheden. Elke dienst is een knooppunt. Elke oproep van dienst A naar dienst B is een gerichte rand van A naar B. Het volledige beeld vormt een gerichte grafiek (soms een DAG, soms met cycli via asynchrone herhalingen).

Kritieke geometrische eigenschappen:

- Out-degree: hoeveel diensten een knooppunt van afhangt. Hogere out-degree betekent meer upstream-foutmodi. Een dienst die van 12 backends afhangt, faalt als een van die 12 faalt.

- In-degree (fan-in): hoeveel diensten van dit knooppunt afhangen. Hogere in-degree betekent dat een enkele fout hier breed cascade. Een database met 30 afhankelijke diensten heeft de grootste explosiestraal.

- Betweenness centrality: hoeveel kortste routes door een knooppunt gaan. Knooppunten met hoge betweenness zijn de knelpunten. Authenticatiediensten & kern-API's scoren meestal hoog.

- Sterk verbonden componenten: groepen diensten die cycli vormen. Als A B aanroept en B roept A aan, heb je een cykel. Cycli bemoeilijken het herstel na fouten: het starten van een dienst vereist dat de ander al werkt.

Explosiestraal is het geometrische concept dat betrouwbaarheidsinvesteringen stimuleert. De explosiestraal van een fout is de subgraaf van afhankelijke diensten die het beïnvloedt. Betrouwbaarheidstechnici investeren zwaar in knooppunten met de grootste explosiestraal. De goedkoopste manier om de algehele systeembetrouwbaarheid te verbeteren is vaak redundantie of graceful degradation toe te voegen bij knooppunten met de hoogste betweenness.

Afhankelijkheidsgrafiek van diensten met gemarkeerd knooppunt met hoge betweenness

Explosiestraal-redenering

Een consumentendienst is afhankelijk van: AuthService, UserDB, ProductCatalog, PaymentGateway, RecommendationEngine, EmailService, AnalyticsService. AuthService heeft 47 andere diensten die ervan afhangen. EmailService heeft 3 andere diensten die ervan afhangen. RecommendationEngine heeft 2 andere diensten die ervan afhangen.

Rang de drie diensten op explosiestraal van hoogste tot laagste. Beschrijf vervolgens twee specifieke betrouwbaarheidsinvesteringen om eerst in het knooppunt met de hoogste explosiestraal te doen, & leg uit waarom investering daar veel meer totale betrouwbaarheidsverbetering oplevert dan dezelfde investering in een knooppunt met lagere explosiestraal.

Informatiemeetkunde van een dashboard

Pixels zijn vastgoed

Een dashboard is een 2D-oppervlak met eindig oppervlak. Elke pixel toegewezen aan één signaal is een pixel die niet aan een ander signaal wordt toegewezen. Dashboardontwerp is een meetkundeprobleem: rangschik de meest beslissingsgerelateerde informatie in het kleinste visuele gebied terwijl je ruimtelijke relaties bewaart die herkenning helpen.

Leeziggingpatronen: westerse lezers scannen F-vormig (top-links eerst, dan dwars, dan omlaag). De belangrijkste signaal hoort in de top-links. De onderkant-rechts krijgt de minste aandacht.

Gestalt-groepering: signalen van dezelfde dienst behoren in dezelfde visuele groep. Latentie, verkeer, fouten, & verzadiging voor één dienst behoren in een 2x2-grid, niet verspreid over het scherm. Visuele nabijheid codeert logische relatie.

Kleurcodering: rood voor fouten, geel voor verzadiging, groen voor gezonde bereiken. Kleurkeuzes zijn conventies, niet willekeurig. Ze omkeren kost cognitieve belasting bij elke blik tijdens incidenten.

Y-as schaling: een grafiek geschaald 0-100% ziet er kalm uit zelfs tijdens een verdubbeling van verkeer. Een grafiek automatisch geschaald naar recente waarden ziet er alarmerend uit tijdens normale variatie. Beide keuzes hebben passende uses; de keuze is geometrisch, niet cosmetisch.

Informatiedichtheid: te weinig signalen laten het team blind voor wat mis is. Te veel begraven het signaal in ruis. Edward Tufte's data-ink-ratio is van toepassing: maximaliseer de verhouding van inkt die informatie overbrengt tot inkt die versiering is. Sparkline-stijl minimalisme wint op een blik tegen rommelige widgets.

Dashboardlay-out: F-vormig lezen, Gestalt-groepering, kleurcodering

Ontwerpen voor eerste blik

Je team ontwerpt één primair dashboard voor een dienst met 8 kritieke SLI's over 4 backend-afhankelijkheden. Het dashboard moet de eerste vraag van de on-call-ingenieur beantwoorden om 3 uur 's nachts in minder dan 5 seconden: 'brandt iets, & zo ja, waar?'

Beschrijf de geometrische lay-out die je zou kiezen. Waar gaan de meest kritieke signalen op het scherm? Hoe groepeer je de SLI's per afhankelijkheid? Welke kleur- & schaalconventies pas je toe, & welk specifiek element zorgt ervoor dat de ingenieur de vraag 'brandt er iets' kan beantwoorden zonder tekst te lezen?

Meetkunde van SRE: Afronding

Vormen die productie besturen

Je hebt vier geometrische structuren doorlopen die onder SRE-praktijk liggen:

- Latentiedistributies als lange-staartcurven waar percentielwaarden meer waarheid dragen dan gemiddelden

- Foutbudget-kegels waar de helling van uitputting servicegezondheid beter openbaart dan het resterend getal

- Afhankelijkheidsgraphen van diensten waar explosiestraal en zentraliteit betrouwbaarheidsinvestering sturen

- Dashboardlay-outs als 2D-vastgoed waar pixeltoewijzing een meetkundeprobleem is met operationele gevolgen


Geometrisch denken is wat SRE onderscheidt van generiek bedrijfswerk. Een bedrijfsmedewerker leest getallen. Een SRE leest vormen. De vormen coderen informatie die geen enkel getal kan vastleggen: de helling van een brandsnelheid, de dikheid van een staart, de zentraliteit van een knooppunt, de Gestalt van een dashboardpanel.


De begeleiding les over SRE zelf behandelde de praktijken. Deze les behandelde de meetkunde eronder. Samen vormen ze het visuele & conceptuele ondersteuningswerk van moderne betrouwbaarheidstechnieken.