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

un

ospite
1 / ?
torna alle lezioni

Ogni PoP possiede una cella del piano

Tessellazione di Voronoi

Posa N punti (PoP: Punti di Presenza) su un piano. Disegna regioni di confine in modo che ogni punto sul piano sia assegnato al PoP più vicino. Il risultato è un diagramma di Voronoi: il piano si suddivide in N celle, una per PoP, ognuna contenente tutti i punti più vicini al suo PoP rispetto ad ogni altro.

Geometria CDN: ogni richiesta dell'utente si dirige al PoP più vicino. Ogni PoP serve una cella del piano geografico. I confini delle celle sono i bisettori perpendicolari delle linee tra i PoP vicini.

Lettura geometrica:

- Aggiungere un PoP riduce le celle dei suoi vicini (e crea una nuova cella)

- Rimuovere un PoP costringe la sua cella a redistribuirsi ai vicini (surgo di capacità)

- Un utente vicino a un confine della cella può passare da un PoP all'altro a seconda dello spostamento del bilanciamento del carico

- L'insorgere di un problema in un PoP rende ogni cella del vicino più grande durante il guasto

Conseguenza operativa: quando un PoP fallisce, il suo carico non scompare; viene migrato ai PoP vicini. Se i vicini sono dimensionati solo per la loro cella normale, il surgo rompe il prossimo (fallimento cascata dei PoP). I fornitori di CDN maturi dimensionano ogni PoP con un surgo di fallimento vicino a mente.

! Celle di Voronoi intorno ai PoP; un fallimento di PoP ingrandisce le celle dei vicini

Una CDN gestisce 4 PoP che servono il continente USA: Costa Ovest, Montagne, Midwest, Costa Est. Ogni PoP è dimensionato per ~25% del totale del traffico USA. Il PoP delle Montagne fallisce. Previsione: (1) quali PoP vicini assorbono il carico ridistribuito, e in quale proporzione, e (2) cosa succede se quei vicini erano dimensionati esattamente per il 25% ognuno senza margine di testa.

L'uguaglianza del triangolo che non puoi eludere

Fisica stabilisce il pavimento

La luce viaggia a ~300.000 km/s nel vuoto. Nei cavi in fibra, circa 200.000 km/s a causa dell'indice di rifrazione. Ciò significa:

- 1.000 km di fibra = ~5 ms in un senso = ~10 ms per andata e ritorno

- Coast-to-coast US (~5.000 km) = ~50 ms RTT minimo

- Stati Uniti verso Europa (~8.000 km) = ~80 ms RTT minimo

- Opposti poli (metà del mondo) = ~200 ms RTT minimo

Questo è un tetto. L'RTT reale è sempre maggiore (salti dei router, switching, incollo, congestione). Nessuna applicazione può superare la velocità della luce.

Triangolo di disuguaglianza

Per tre nodi A, B, C, il triangolo di disuguaglianza afferma che d(A,C) <= d(A,B) + d(B,C): una via diretta è più corta (o uguale) di qualsiasi via indiretta.

Lettura di rete: se il tuo servizio avvia A -> B -> C invece di A -> C direttamente, la latenza è di almeno la somma delle due latenze di tratta. Di solito più a causa del processo in B.

Lettura architettonica: ogni indirezione (proxy, bilanciamento del carico, salto CDN) aggiunge almeno un tratto di round-trip al latenza percepita dall'utente. I benefici del CDN derivano dal rendere il tratto dell'utente più corto (PoP più vicino dell'origine), anche se il numero totale di salti aumenta.

Trappole multi-regioni: un servizio che legge dalla regione A ma scrive nella regione B incurre la latenza A-to-B su ogni scrittura. Se A & B sono 100 ms di distanza, ogni scrittura richiede >= 100 ms minimo. Gli database allungati pagano questo tetto ogni volta.

Triangolo di latenza: A-B-C definito fisicamente dalla distanza

Pagare il Tetto

Il servizio è disponibile in due regioni: US-East (us-east-1) & EU-West (eu-west-1). Le due regioni sono circa 5.500 km di distanza. Il servizio ha un database primario in US-East. Gli utenti EU hanno le loro richieste servite dai back-end EU-West, ma ogni scrittura richiede un richiamo al database primario di US-East.

Calcola la latenza del tetto per un'operazione di scrittura da un utente EU (andata e ritorno dal browser dell'utente all'backend EU-West al backend primario US-East e ritorno). Confronta con un'operazione di lettura EU servita interamente dallo stato cache EU-West. Proponi quindi un cambiamento architettonico che riduce la latenza del tetto per le operazioni di scrittura da parte degli utenti EU.

Progettazione geografica della capacità

Sintesi

Ora puoi leggere le celle di Voronoi come bacini di cattura di PoP, calcolare i pavimenti di latenza della velocità della luce e applicare la curva della coda al livello di proxy.

Applica tutti e tre.

Un team pianifica la copertura CDN per un servizio con utenti su tre continenti: America del Nord (60% degli utenti), Europa (30%), Asia (10%). Hanno un budget per 6 PoP. Ogni PoP può servire una cella stabile al 70% di utilizzo senza superare il ginocchio della curva della coda.

Progetta la posizionamento dei PoP: (1) come distribuiresti 6 PoP su tre continenti, (2) per la quota di utenti più piccola (Asia al 10%), quale è il tetto di latenza per un utente asiatico che viene servito da un PoP europeo se non esiste alcun PoP asiatico (assumi ~9000 km di distanza) e (3) quale margine di capacità richiederesti per PoP per sopravvivere a una sola falla di PoP senza cascading?

Chiusura del Corso Complementare

Chiusura del Corso Complementare

Hai completato tutte e cinque le lezioni di geometria-di-* complementari:

- Proxies & Origins: grafi diretti, conto dei salti, fan-in / fan-out, indirezione

- Stateless Horizontal Scaling: Legge di Little come area, curva della coda e il suo ginocchio

- Ingress & Egress Separation: struttura bipartita, eliminazione del vertice di taglio, tolleranza delle partitioni

- Failure Modes & Blast Radius: centralità tra i nodi, minimo taglio, diametro

- Observability & Capacity (questa): celle di PoP di Voronoi, pavimento triangolare della latenza, progetto della capacità geografica

La linea guida: i sistemi distribuiti hanno struttura geometrica. Ogni architettura è un grafo. Ogni pavimento di latenza è un triangolo uguale. Ogni decisione di capacità è una curva e un ginocchio. Una volta che vedi la geometria, le decisioni operative ne seguono la logica.

Combinato con le cinque lezioni principali (cs_distsys_*), hai un modello mentale funzionante di un sistema distribuito web-scala e il disciplinare geometrico per ragionare su di esso.

Ben fatto.