Entrant et sortant en tant que ensembles distincts
Graphe bipartite dans l'architecture de réseau
Un graphe bipartite divise les nœuds en deux ensembles, avec des arêtes autorisées uniquement entre les ensembles (jamais à l'intérieur d'un ensemble).
Les limites de réseau ont une structure bipartite naturelle :
- Côté ingress : des clients externes du côté gauche, des services internes du côté droit. Arêtes : demandes externes entrantes, réponses internes sortantes.
- Côté egress : services internes du côté gauche, destinations externes du côté droit. Arêtes : services internes initiants des appels sortants, réponses externes revenant.
L'asymétrie :
- Ingress : l'ensemble source est illimité (n'importe qui sur internet). L'ensemble destination est petit (quelques services). Le volume est proportionnel au nombre d'utilisateurs.
- Egress : l'ensemble source est petit (quelques services internes). L'ensemble destination est limité (quelques partenaires connus). Le volume est proportionnel à l'activité interne.
Conception unique : les deux moitiés bipartites sont compressées à travers un seul nœud. Ce nœud a un débit entrant depuis l'extérieur (ingress) ET un débit entrant depuis l'intérieur (la direction inverse d'egress). La charge du nœud = somme des deux côtés.
Conception divisée : les deux moitiés bipartites sont conservées dans des nœuds séparés. Chaque nœud gère un rôle avec son axe de mise à l'échelle approprié.
Avant le split : un sommet coupé partout
Boîte unique : tout repose sur un seul sommet
Avant la division, une seule boîte proxy est située entre chaque paire externe/intérieure. En termes de graphe, c'est un sommet de coupe d'ordre élevé : sa suppression coupe tous les clients de tous les backends ET tous les services internes de tous les partenaires externes.
Connectivité sur ce nœud = 1. Qu'un seul élément perturbe ce nœud (crash de processus, bogue réseau, kill OOM) et tous les chemins dépendants sont coupés.
Après la division : le sommet de coupe remplacé par deux nœuds plus légers
La division en ingress + egress crée deux nœuds de graphe où il y en avait un. Chaque nœud est maintenant situé sur seulement une moitié bipartite :
- Nœud d'ingress : sommet de coupe pour la moitié bipartite externe-clients-internal-services
- Nœud de egress : sommet de coupe pour la moitié bipartite services-internes-partners
Le boucle de rétroaction disparaît géométriquement : dans le graphe unique, un service interne tentant de rejoindre un service exposé à l'extérieur via l'adresse publique nécessitait de traverser le même sommet deux fois (sortie via le rôle egress, puis entrée via le rôle ingress). Dans le graphe divisé, la traversée rencontre deux sommets différents.
La connectivité par côté reste à 1, mais les deux sommets de coupe peuvent être remplacés indépendamment. L'ajout d'une deuxième boîte proxy d'ingress augmente la connectivité du côté ingress à 2 sans changer le côté egress.
Réplication par côté
Les flottes de production déployent souvent 2+ boîtes proxies d'ingress (HA) ET 2+ boîtes proxies d'egress (HA). Chaque côté atteint indépendamment une connectivité de 2. La capacité s'échelle horizontalement sur chaque côté en fonction des besoins.
Tolérance aux partitions de réseau
Synthèse
Vous pouvez maintenant lire les architectures de réseau comme des graphes bipartites, identifier les sommets de coupure et suivre la connectivité par moitié.
Appliquez cela aux partitions de réseau.
Une partition de réseau est une coupe de graphes : les arêtes traversant la partition échouent ; les deux côtés continuent de fonctionner mais ne peuvent pas s'atteindre mutuellement.
Un système géographiquement distribué a deux centres de données connectés par un seul lien inter-DC. Le trafic d'ingress entre via DC1 ; le trafic egress passe par DC1 vers les partenaires externes ; certaines services internes vivent dans DC2 et appellent DC1 pour les opérations d'état.
Notes Complémentaires
Notes Complémentaires
Cette leçon de géométrie de réseau reformule la leçon principale sur la Séparation des Entrées et Sorties en une analyse de graphe bipartite.
La prochaine note complémentaire, geometry_of_failure_modes_and_blast_radius, dérive la centralité de betweenness (identifie les nœuds en bouteille) et la coupe minimale (limite le rayon d'explosion).
Bien fait.