Entrées et sorties en tant que ensembles distincts
Graphes bipartis dans l'architecture réseau
Un graphe biparti divise les nœuds en deux ensembles, avec des arêtes autorisées uniquement entre les ensembles (jamais au sein d'un même ensemble).
Les frontières réseau ont une structure bipartite naturelle :
- Côté entrée : clients externes d'un côté, services internes de l'autre. Arêtes : requêtes externes entrantes, réponses internes sortantes.
- Côté égress : services internes d'un côté, destinations externes de l'autre. Arêtes : appels sortants initiés par les services internes, réponses externes renvoyées.
L'asymétrie :
- Ingress : l'ensemble des sources est illimité (n'importe qui sur Internet). L'ensemble des destinations est petit (quelques services). Le volume évolue en fonction des utilisateurs.
- Egress : l'ensemble des sources est petit (quelques services internes). L'ensemble des destinations est borné (quelques partenaires connus). Le volume évolue en fonction de l'activité interne.
La conception à boîte unique fusionne les deux moitiés bipartites à travers un seul nœud. Ce nœud reçoit un flux entrant (fan-in) de l'extérieur (ingress) ET un flux entrant de l'intérieur (direction inverse de l'egress). La charge du nœud = somme des deux côtés.
La conception séparée conserve les deux moitiés bipartites sur des nœuds distincts. Chaque nœud gère un rôle avec son axe de mise à l'échelle approprié.
Avant la scission : un sommet de coupure partout
Boîte unique : un seul sommet soutient tout
Avant la séparation, une seule boîte de proxy se situe entre chaque paire externe/interne. En termes de graphe, il s'agit d'un sommet de coupure de haut degré : sa suppression déconnecte tous les clients de tous les back-ends ET tous les services internes de tous les partenaires externes.
La connectivité à ce nœud est de 1. Tout ce qui perturbe ce nœud (crash du processus, problème réseau, arrêt par OOM) déconnecte tous les chemins dépendants.
Après la séparation : le sommet de coupure est remplacé par deux nœuds plus légers
La séparation en entrée (ingress) et sortie (egress) crée deux nœuds de graphe là où il n'y en avait qu'un. Chaque nœud se situe désormais sur une seule moitié bipartite :
- Nœud d'entrée (Ingress) : sommet de coupure pour la moitié bipartite des clients externes vers les services internes
- Nœud de sortie (Egress) : sommet de coupure pour la moitié bipartite des services internes vers les partenaires
La boucle en épingle (hairpin) disparaît géométriquement : dans le graphe à boîte unique, un service interne tentant d'atteindre un service orienté externe via l'adresse publique devait traverser le même sommet deux fois (sortie via le rôle egress, puis entrée via le rôle ingress). Dans le graphe séparé, la traversée touche deux sommets différents.
La connectivité par côté reste à 1, mais les deux sommets de coupure peuvent être remplacés indépendamment. L'ajout d'un second proxy d'entrée porte la connectivité du côté entrée à 2 sans modifier le côté sortie.
Réplication par côté
Les flottes de production exécutent souvent 2+ proxys d'entrée (HA) ET 2+ proxys de sortie (HA). Chaque côté atteint une connectivité 2 de manière indépendante. La capacité se scale horizontalement sur chaque côté selon les besoins.
Tolérance aux partitions réseau
Synthèse
Vous pouvez désormais lire les architectures réseau comme des graphes bipartis, identifier les sommets de coupure et suivre la connectivité pour chaque moitié.
Appliquez ceci aux partitions réseau.
Une partition réseau est une coupure de graphe : les arêtes traversant la partition échouent ; les deux côtés continuent de fonctionner mais ne peuvent plus se joindre.
Un système géographiquement distribué possède deux centres de données connectés par un unique lien inter-DC. Le trafic d'entrée arrive via le DC1 ; le trafic de sortie passe par le DC1 vers les partenaires externes ; certains services internes résident dans le DC2 et rappellent le DC1 pour les opérations à état.
Notes complémentaires
Notes complémentaires
Cette leçon de géométrie reformule la leçon principale Séparation des entrées et des sorties comme une analyse de graphe biparti.
La prochaine note complémentaire, geometry_of_failure_modes_and_blast_radius, dérive la centralité d'intermédiation (identifie les nœuds goulets d'étranglement) et la coupe minimale (borne le rayon d'impact).
Bien joué.