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

un

invité
1 / ?
retour aux leçons

Chaque PoP possède une cellule du plan

Tissellation de Voronoi

Placez N points (PoPs : Points of Presence) sur un plan. Tracez des limites de région de sorte que chaque point du plan est attribué au plus proche PoP. Résultat : un diagramme de Voronoi : le plan se divise 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 demande d'utilisateur route vers le PoP le plus proche. Chaque PoP sert une cellule du plan géographique. Les limites des cellules sont les bissectrices perpendiculaires des lignes entre PoPs voisins.

Lecture géométrique :

- Ajouter un PoP réduit les cellules de ses voisins (& crée une nouvelle cellule)

- Supprimer un PoP force sa cellule à se redistribuer vers les voisins (surcharge des voisins)

- Un utilisateur près d'une limite de cellule peut basculer entre PoPs en fonction du rééquilibrage de charge

- Une panne d'un PoP agrandit toutes les cellules des voisins pendant la panne

Conséquence opérationnelle : lorsqu'un PoP faiblit, sa charge n' disparaît pas ; elle migre vers les PoPs voisins. Si les voisins sont dimensionnés uniquement pour leur cellule normale, la surcharge les casse ensuite (échec en cascade des PoP). Les fournisseurs de CDN expérimentés dimensionnent chaque PoP en tenant compte de la surcharge de panne des voisins.

! Cellules de Voronoi autour des PoPs ; une panne de PoP agrandit les cellules des voisins

Un CDN opère 4 PoPs desservant les États-Unis continentaux : Côte Ouest, Montagnes, Midwest, Côte Est. Chacun est dimensionné pour ~25% du trafic total américain. Le PoP des Montagnes échoue. Prédisez : (1) quelles PoPs voisines absorbent la charge redistribuée, et dans quelle proportion, et (2) ce qui se passe si ces voisins étaient dimensionnés exactement pour 25% chacun, sans marge de manœuvre.

L'inégalité triangulaire que vous ne pouvez pas contourner

Physique établit le plancher

La lumière se déplace à ~300 000 km/s en vide. Dans le fibre, environ 200 000 km/s en raison de l'indice de réfraction. Cela signifie :

- ~1 000 km de fibre = ~5 ms en un sens = ~10 ms en aller-retour

- Côte à côte États-Unis (~5 000 km) = ~50 ms RTT minimum

- États-Unis vers l'Europe (~8 000 km) = ~80 ms RTT minimum

- Antipodal (à mi-chemin autour du monde) = ~200 ms RTT minimum

Ceci est un plancher. L'RTT réelle est toujours supérieure (trous de routeurs, commutage, file d'attente, congestion). Aucune application ne peut aller plus vite que ce que permet la physique.

Inégalité du triangle

Pour trois nœuds A, B, C, l'inégalité du triangle dit d(A,C) <= d(A,B) + d(B,C): une voie directe est plus courte (ou égale) qu'une voie indirecte.

Lecture réseau: si votre service route A -> B -> C au lieu de A -> C directement, le délai est au moins la somme des deux latences de tronçon. Plus souvent en raison du traitement à B.

Lecture architecturale: chaque redirection (proxy, équilibreur de charge, saut CDN) ajoute au moins une étape de boucle à la latence perçue de l'utilisateur. Les avantages du CDN proviennent du fait que la longueur de la boucle de l'utilisateur est réduite (PoP plus proche que l'origine), même si le nombre total de sauts augmente.

Pièges multi-région: un service qui lit dans la région A mais écrit dans la région B entraîne une latence A-vers-B sur chaque écriture. Si A & B sont à 100 ms de distance, chaque écriture prend au moins >= 100 ms minimum. Les bases de données étirées paient ce plancher à chaque fois.

Triangle de latence : A-B-C planché par la distance physique

Payer le Plancher

Un service tourne dans deux régions: US-East (us-east-1) & EU-West (eu-west-1). Les deux régions sont à environ 5 500 km l'une de l'autre. Le service a une base de données principale dans US-East. Les utilisateurs EU ont leurs demandes servies par les backends EU-West, mais chaque écriture nécessite un appel vers la base de données principale US-East.

Calculez la latence du plancher pour une écriture d'un utilisateur EU (aller-retour de leur navigateur vers le backend EU-West vers le principal US-East & retour). Comparez à une lecture d'utilisateur EU servie entièrement à partir de l'état caché EU-West. Proposez ensuite une modification architecturale qui réduit la latence du plancher pour les écritures d'utilisateurs EU.

Conception de la capacité géographique

Synthèse

Vous pouvez maintenant lire les cellules de Voronoi en tant que zones d'attraction de PoP, calculer les plans de latence de vitesse de la lumière et appliquer la courbe d'attente au niveau du niveau de la proxy.

Appliquez les trois.

Une équipe planifie la couverture CDN pour un service avec des utilisateurs sur trois continents : l'Amérique du Nord (60 % des utilisateurs), l'Europe (30 %), l'Asie (10 %). Ils ont un budget pour 6 PoPs. Chaque PoP peut servir une cellule stable à 70 % d'utilisation sans franchir le genou de la courbe d'attente.

Concevez la localisation des PoP : (1) comment distribueriez-vous 6 PoP sur les trois continents, (2) pour la part d'utilisateur la plus faible (Asie à 10 %), quelle est la latence du plancher pour un utilisateur asiatique servi à partir d'un PoP européen si aucun PoP asiatique n'existe (supposons une distance de ~9000 km) et (3) quel marge de capacité auriez-vous besoin par PoP pour survivre à un échec unique d'un PoP sans déclencher de cascades ?

Cloture de la Leçon Complémentaire

Cloture de la Leçon Complémentaire

Vous avez terminé les cinq leçons de géométrie-* complémentaires :

- Proxies & Origins : graphes orientés, nombre de sauts, entrée / sortie, redirection

- Échelle Horizontale Étatique : Loi de Little comme aire, courbe d'attente et son genou

- Séparation d'Entrée & Sortie : structure bipartite, élimination du sommet de coupe, tolérance de partition

- Modes de Faillite & Rayon d'Explosion : centralité de betweenness, min-coupe, diamètre

- Observabilité & Capacité (cette une) : cellules PoP de Voronoi, plan de latence triangulaire, conception de capacité géographique

Le fil conducteur : les systèmes distribués ont une structure géométrique. Chaque architecture est un graphe. Chaque plan de latence est un triangle inégal. Chaque décision de capacité est une courbe et un genou. Une fois que vous voyez la géométrie, les décisions opérationnelles en découlent.

Combinaison avec les cinq leçons principales (cs_distsys_*), vous avez un modèle mental de travail pour un système de distributed web-scale et la discipline géométrique pour raisonner à ce sujet.

Bien fait.