Chaque PoP possède une cellule du plan
Tessellation de Voronoi
Placez N points (PoP : Points of Presence) sur un plan. Tracez les frontières des régions de telle sorte que chaque point du plan soit affecté au PoP le plus proche. Le résultat est un diagramme de Voronoi : le plan est partitionné en N cellules, une par PoP, chacune contenant tous les points plus proches de son PoP que de tout autre.
Géométrie CDN : chaque requête d'un utilisateur est routée vers le PoP le plus proche. Chaque PoP sert une cellule du plan géographique. Les frontières des cellules sont les médiatrices perpendiculaires des lignes reliant les PoP voisins.
Lecture géométrique :
- L'ajout d'un PoP réduit les cellules de ses voisins (& crée une nouvelle cellule)
- La suppression d'un PoP force sa cellule à se redistribuer vers les voisins (surge de capacité chez les voisins)
- Un utilisateur situé près d'une frontière de cellule peut basculer d'un PoP à l'autre lorsque l'équilibrage de charge évolue
- Une panne d'un PoP agrandit la cellule effective de chaque voisin pendant la durée de l'indisponibilité
Conséquence opérationnelle : lorsqu'un PoP tombe en panne, sa charge ne disparaît pas ; elle migre vers les PoP voisins. Si les voisins sont dimensionnés uniquement pour leur cellule normale, la surcharge les fera à leur tour échouer (panne en cascade des PoP). Les fournisseurs de CDN matures dimensionnent chaque PoP en tenant compte de la surcharge liée à la panne d'un voisin.
L'inégalité triangulaire qu'on ne peut pas tricher
La physique fixe le plancher
La lumière voyage à ~300 000 km/s dans le vide. Dans la fibre, environ 200 000 km/s en raison de l'indice de réfraction. Cela signifie :
- ~1 000 km de fibre = ~5 ms aller simple = ~10 ms aller-retour
- Traversée des États-Unis (~5 000 km) = ~50 ms RTT minimum
- États-Unis vers l'Europe (~8 000 km) = ~80 ms RTT minimum
- Point antipodal (à mi-chemin autour du monde) = ~200 ms RTT minimum
C'est un plancher. Le RTT réel est toujours supérieur (sauts de routeurs, commutation, mise en file d'attente, congestion). Aucune application ne peut être plus rapide que ce que la physique permet.
Inégalité triangulaire
Pour trois nœuds A, B, C, l'inégalité triangulaire stipule que d(A,C) <= d(A,B) + d(B,C) : un chemin direct est plus court (ou égal) à tout chemin indirect.
Interprétation réseau : si votre service achemine A -> B -> C au lieu de A -> C directement, la latence est au moins égale à la somme des latences des deux segments. Souvent supérieure en raison du traitement effectué sur B.
Lecture architecturale : chaque indirection (proxy, équilibreur de charge, saut CDN) ajoute au moins une jambe d'aller-retour à la latence perçue par l'utilisateur. L'avantage du CDN réside dans le fait de raccourcir la jambe de l'utilisateur (le PoP est plus proche que l'origine), même si le nombre total de sauts augmente.
Pièges multi-région : un service qui lit depuis la région A mais écrit vers la région B subit la latence A-vers-B à chaque écriture. Si A et B sont distantes de 100 ms, chaque écriture prend au minimum >= 100 ms. Les bases de données étendues paient ce plancher à chaque fois.
Payer le plancher
Un service fonctionne dans deux régions : US-East (us-east-1) et EU-West (eu-west-1). Les deux régions sont distantes d'environ 5 500 km. Le service possède une base de données principale dans US-East. Les utilisateurs de l'UE ont leurs requêtes traitées par des backends EU-West, mais chaque écriture nécessite un appel retour vers la base principale de US-East.
Conception de la capacité géographique
Synthèse
Vous pouvez désormais lire les cellules de Voronoï comme des zones de captation PoP, calculer les planchers de latence de la vitesse de la lumière et appliquer la courbe de file d'attente au niveau du proxy.
Appliquez les trois.
Une équipe planifie la couverture CDN pour un service dont les utilisateurs sont répartis sur trois continents : Amérique du Nord (60 % des utilisateurs), Europe (30 %), Asie (10 %). Ils disposent d'un budget pour 6 PoPs. Chaque PoP peut servir une cellule stable à 70 % de taux d'utilisation sans franchir le point d'inflexion de la courbe de mise en file d'attente.
Clôture du cours compagnon
Clôture du cours compagnon
Vous avez terminé les cinq leçons compagnes de géométrie des systèmes distribués :
- Proxies & Origines : graphes orientés, nombre de sauts, convergence / divergence, indirection
- Mise à l'échelle horizontale sans état : loi de Little comme aire, courbe de file d'attente & son point d'inflexion
- Séparation des entrées et des sorties : structure bipartite, élimination des articulations, tolérance aux partitions
- Modes de défaillance & Rayon d'impact : centralité d'intermédiation, coupure minimale, diamètre
- Observabilité & Capacité (celle-ci) : cellules de PoP de Voronoï, plancher du triangle de latence, conception de la capacité géographique
Le fil conducteur : les systèmes distribués ont une structure géométrique. Toute architecture est un graphe. Tout plancher de latence est une inégalité triangulaire. Toute décision de capacité est une courbe & un point d'inflexion. Une fois que vous voyez la géométrie, les décisions opérationnelles en découlent.
Combinées aux cinq leçons principales (cs_distsys_*), vous disposez d'un modèle mental fonctionnel d'un système distribué à l'échelle du Web et de la discipline théorique des graphes pour en raisonner.
Bien joué.