Ogni PoP Possiede una Cella del Piano
Tessellazione di Voronoi
Posiziona N punti (PoP: Punti di Presenza) su un piano. Disegna i confini delle regioni in modo che ogni punto del piano venga assegnato al PoP più vicino. Il risultato è un diagramma di Voronoi: il piano si partiziona in N celle, una per ogni PoP, ciascuna contenente tutti i punti più vicini al proprio PoP rispetto a qualsiasi altro.
Geometria CDN: ogni richiesta dell'utente viene instradata al PoP più vicino. Ogni PoP serve una cella del piano geografico. I confini delle celle sono le bisettrici perpendicolari delle linee tra i PoP vicini.
Lettura geometrica:
- L'aggiunta di un PoP riduce le celle dei suoi vicini (& crea una nuova cella)
- La rimozione di un PoP costringe la sua cella a ridistribuirsi verso i vicini (picco di capacità nei vicini)
- Un utente vicino a un confine di cella può passare da un PoP all'altro man mano che si sposta l'equilibrio del carico
- Un guasto di un PoP amplia la cella effettiva di ogni vicino durante l'interruzione
Conseguenza operativa: quando un PoP va in guasto, il suo carico non scompare; migra verso i PoP vicini. Se i vicini sono dimensionati solo per la loro cella normale, il picco li farà andare in guasto a loro volta (guasto a cascata dei PoP). I provider CDN maturi dimensionano ogni PoP tenendo conto del picco dovuto al guasto dei vicini.
La Disuguaglianza Triangolare Che Non Puoi Ingannare
La Fisica Fissa il Limite Inferiore
La luce viaggia a ~300.000 km/s nel vuoto. Nella fibra ottica, circa 200.000 km/s a causa dell'indice di rifrazione. Questo significa:
- ~1.000 km di fibra = ~5 ms in un senso = ~10 ms andata e ritorno
- Da costa a costa negli USA (~5.000 km) = ~50 ms RTT minimo
- USA verso l'Europa (~8.000 km) = ~80 ms RTT minimo
- Antipodale (metà del giro del mondo) = ~200 ms RTT minimo
Questo è un limite inferiore. Il RTT reale è sempre maggiore (salti di router, commutazione, code, congestione). Nessuna applicazione può essere più veloce di quanto consenta la fisica.
Disuguaglianza triangolare
Per tre nodi A, B, C, la disuguaglianza triangolare afferma che d(A,C) <= d(A,B) + d(B,C): un percorso diretto è più corto (o uguale) a qualsiasi percorso indiretto.
Interpretazione di rete: se il tuo servizio instrada A -> B -> C invece di A -> C direttamente, la latenza è almeno pari alla somma delle latenze dei due tratti. Spesso è maggiore a causa dell'elaborazione presso B.
Lettura architetturale: ogni indirezione (proxy, load balancer, hop CDN) aggiunge almeno una gita di andata e ritorno alla latenza percepita dall'utente. Il vantaggio del CDN deriva dal rendere più corta la gita dell'utente (PoP più vicino rispetto all'origine), anche se il numero totale di hop aumenta.
Trappole multi-regione: un servizio che legge dalla regione A ma scrive nella regione B subisce la latenza da A a B a ogni scrittura. Se A e B sono distanti 100 ms, ogni scrittura richiede almeno 100 ms. I database estesi pagano questo limite inferiore ogni volta.
Paga il Limite
Un servizio opera in due regioni: US-East (us-east-1) e EU-West (eu-west-1). Le due regioni sono distanti circa 5.500 km. Il servizio ha un database primario in US-East. Le richieste degli utenti EU sono servite da backend in EU-West, ma ogni scrittura richiede una chiamata al primario in US-East.
Progettazione della capacità geografica
Sintesi
Ora puoi leggere le celle di Voronoi come bacini di PoP, calcolare i limiti inferiori di latenza basati sulla velocità della luce e applicare la curva di code al livello proxy.
Applica tutti e tre.
Un team pianifica la copertura CDN per un servizio con utenti su tre continenti: Nord America (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 punto di ginocchio della curva di code.
Chiusura del Corso Complementare
Chiusura del Corso Complementare
Hai completato tutte e cinque le lezioni compagne di geometria:
- Proxy e Origini: grafi diretti, conteggio hop, fan-in / fan-out, indirezione
- Scalabilità Orizzontale Stateless: Legge di Little come area, curva di code e il suo punto di ginocchio
- Separazione Ingresso e Uscita: struttura bipartita, eliminazione del vertice di taglio, tolleranza alla partizione
- Modalità di Guasto e Raggio d'Impatto: centralità di intermediazione, taglio minimo, diametro
- Osservabilità e Capacità (questa): celle Voronoi PoP, limite inferiore del triangolo di latenza, progettazione della capacità geografica
Il filo conduttore: i sistemi distribuiti hanno una struttura geometrica. Ogni architettura è un grafo. Ogni limite inferiore di latenza è un'uguaglianza triangolare. Ogni decisione sulla capacità è una curva e un punto di ginocchio. Una volta che si vede la geometria, le decisioni operative ne derivano.
In combinazione con le cinque lezioni principali (cs_distsys_*), hai un modello mentale funzionante di un sistema distribuito su scala web e la disciplina della teoria dei grafi per ragionare al riguardo.
Ben fatto.