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 les arêtes autorisées uniquement entre les ensembles (jamais dans un ensemble).
Les limites de réseau ont une structure bipartite naturelle:
- Côté ingress : de l'autre côté, les clients externes, les services internes. Arêtes : demandes externes entrantes, réponses internes sortantes.
- Côté egress : services internes d'un côté, destinations externes de l'autre. Arêtes : services internes effectuant des appels sortants, réponses externes revenant.
L'asymétrie:
- Ingress : ensemble source illimité (n'importe qui sur internet). Ensemble destination petit (quelques services). Volume qui augmente avec les utilisateurs.
- Egress : ensemble source petit (quelques services internes). Ensemble destination limité (quelques partenaires connus). Volume qui augmente avec l'activité interne.
Conception mono-boîte fait disparaître les deux moitiés bipartites dans un seul nœud. Ce nœud a un flux d'entrée venant de l'extérieur (ingress) ET un flux d'entrée venant de l'intérieur (direction inverse de l'egress). Charge du nœud = somme des deux côtés.
Conception divisée maintient les deux moitiés bipartites sur des nœuds séparés. Chaque nœud gère un rôle avec son échelle appropriée.
Avant la division : un vertice de coupure partout
Boîte unique : Un seul sommet gère tout
Avant la division, une seule boîte proxy se trouve entre chaque paire externe/intérieure. En termes de graphe, c'est un sommet de haute ordre : sa suppression coupe tous les clients de tous les backends et toutes les services internes des partenaires externes.
Connectivité sur ce nœud = 1. Quasi-anything qui perturbe ce nœud (crash de processus, bogue de réseau, OOM kill) coupe tout chemin dépendant.
Après la division : Le sommet de coupure est remplacé par deux nœuds plus légers
La division en entrée + sortie crée deux nœuds de graphe où il y avait un. Chaque nœud se trouve maintenant sur seulement une moitié bipartite:
- Nœud d'entrée : sommet de coupure pour la moitié bipartite externe-clients-vers-services-internes
- Nœud de sortie : sommet de coupure pour la moitié bipartite services-internes-vers-partners
La boucle géométrique disparaît : dans le graphe unique, un service essayant de rejoindre un service externe-facing via l'adresse publique nécessitait de traverser le même sommet deux fois (sortie via le rôle de sortie, puis entrée via le rôle d'entrée). Dans le graphe divisé, la traversée rencontre 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'une deuxième boîte proxy d'entrée augmente la connectivité de l'entrée à 2 sans changer la sortie.
Réplication par côté
Les flottes de production utilisent souvent 2+ boîtes proxy d'entrée (HA) ET 2+ boîtes proxy de sortie (HA). Chaque côté atteint indépendamment une connectivité de 2. La capacité s'échelle horizontalement sur chaque côté comme nécessaire.
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 coupe et suivre la connectivité par moitié.
Appliquez cela aux partitions de réseau.
Une partition de réseau est une coupe de graphe : les arêtes à travers la partition échouent ; les deux côtés continuent de fonctionner mais ne peuvent pas se joindre.
Un système géographiquement réparti a deux centres de données connectés par un seul lien inter-DC. Le trafic d'entrée entre via DC1 ; le trafic de sortie 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 géométrie-de leçon reformule la leçon principale Séparation d'Ingress & Egress en une analyse de graphe bipartite.
La prochaine complémentaire, geometry_of_failure_modes_and_blast_radius, dérive entre la centralité de court-bout (identifie les nœuds en bouteille) et la moindre coupe (limite le rayon d'explosion).
Bien fait.