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

Flaskhalsnoden identifieras innan trafiken anländer

Mellancentralitet

För varje par noder i en graf finns det en kortaste väg mellan dem. Mellancentralitet för en nod N = andelen av alla kortaste vägar som passerar genom N.

En nod med hög mellancentralitet ligger på vägen mellan många andra par. Om den blir långsam, blir många flöden långsamma. Om den fallerar, bryts många flöden.

Arkitekturell tolkning: Noder med hög mellancentralitet är de som varje arkitekturgenomgång bör ägna extra uppmärksamhet åt. De är flaskhalsar, SPOF:er (single points of failure) & kapacitetskritiska komponenter i ett. De tenderar att vara:

- DNS-leverantören (mellan varje klient & varje tjänst)

- Ingress-proxy (mellan varje klient & varje backend)

- Databasens primärnöd (mellan varje backend & varje läsning)

- Autentiseringstjänsten (mellan varje användare & varje auktoriserad åtgärd)

Detektion utan mätning: grafens topologi identifierar noder med hög mellanliggande centralitet. Du behöver inte trafikdata; du behöver arkitekturdiagrammet. En nod som ligger mellan många par av andra noder är strukturellt kritisk.

Operationell konsekvens: noder med hög mellanliggande centralitet förtjänar oproportionerligt stort investering i (1) kapacitetsmarginal, (2) redundans, (3) observabilitet & (4) incidenthanteringsplaner.

Mellanliggande centralitet: markerad nod ligger på flest kortaste vägar

Ett system har: 100 externa klienter -> 1 DNS -> 1 CDN-leverantör -> 3 reverse proxies -> 12 backend-replikor -> {1 DB-primär, 2 cachemoduler, 5 externa API-endpoints}. Rangord dessa nodklasser efter mellanliggande centralitet (högst först) & förklara varför de två översta rangerna förtjänar särskild uppmärksamhet.

Den minsta skärningen isolerar den minsta delen

Min-Cut-satsen i enkla ord

Min-cut mellan två noder i en graf = det minsta antalet kanter (eller noder) du måste ta bort för att koppla bort dem från varandra.

Operationell tolkning: min-cut sätter en övre gräns för värsta tänkbara skadeomfattning. Om min-cut mellan 'clients' och 'database' är 1 kant (en enda proxy), innebär det att om denna kant går sönder kopplas alla klienter bort från databasen. Om min-cut är 5, måste du förlora 5 komponenter samtidigt för att helt koppla bort dem; det är dåligt tur, men begränsat.

Design för skadeomfattning: öka min-cut vid varje viktig gräns. Flera proxies; flera cachemoduler; flera nätverksvägar mellan datacenter. Varje tillägg ökar min-cut med 1.

Bulkhead-mönstret i grafiska termer: partitionera resurser i separata delgrafer som inte delar någon min-cut med varandra. En felaktighet inom en delgraf kan inte spridas till de andra eftersom kanterna inte finns.

Diameter sätter avståndet för felaktighetsspridning

Grafdiameter = den längsta kortaste vägen mellan godtydliga två noder.

Felaktighetsspridning: när en nod felar och omförsökningar (retries) flödar tillbaka, drabbar de upströms-noder upp till diameter-avståndet bort. Ett system med diameter 3 (client -> proxy -> backend -> DB) innebär att ett DB-fel påverkar 3 upströmslager i en omförsöksomstorm.

Konsekvens: kortare diameter = snabbare inneslutning av felaktigheter men också högre nodkoncentration. Varje design har sina kompromisser.

Min-cut som övre gräns för spridningsradie; diameter som spridningsavstånd

Beräkna min-cut för en verklig arkitektur

En arkitektur: 1 DNS, 1 CDN, 3 reverse proxies, 12 backend-replikor, 1 DB-huvud.

Beräkna (eller uppskatta) min-cut vid tre gränser: (1) mellan externa klienter och reverse-proxy-lagret; (2) mellan reverse-proxy-lagret och backend-lagret; (3) mellan backend-lagret och DB-huvudet. För varje gräns, ange vad som går sönder när den min-cut gränsen överskrids.

Revisions av felmoder via grafmått

Syntes

Du kan nu identifiera noder med hög mellanliggande grad (betweenness), beräkna min-cut vid varje gräns och uppskatta spridningsavståndet för fel via diametern.

Tillämpa alla tre.

Ett system: 50 kundändpunkter -> 1 DNS -> 2 CDN-noder (POPs) -> 4 omvända proxyer -> 16 bakändskopior -> { databaskluster (1 primär + 2 reserv), Redis-kluster (5 noder), 3 externa API:er }.

Revidera systemet: (1) namnge noden med högst mellanliggande grad (betweenness), (2) beräkna min-cut vid den mest oroande gränsen, och (3) föreslå två specifika arkitekturella förändringar (var och en ska öka ett min-cut, och var och en ska namnge den gräns den förstärker).

Kompanjonsanteckningar

Kompanjonsanteckningar

Denna lektion om geometri omformulerar huvudlektionen Felmoder & Spridningsradie genom grafmetriker (mellanligghetsgrad, min-cut, diameter).

Den sista kompanjonen, geometry_of_observability_and_capacity, behandlar Voronoi-celler för CDN PoP-täckningsområden, latenstriangelns ljushastighetsbotten & kökurvan besökt på proxynivån.

Bra jobbat.