Binnenkomend & Uitgaand als Afzonderlijke Sets
Bipartiete Grafieken in Netwerkarchitectuur
Een bipartiete grafiek deelt knopen in twee sets, met randen die alleen tussen sets zijn toegestaan (nooit binnen een set).
Netwerkgrenzen hebben een natuurlijke bipartiete structuur:
- Ingress zijde: buitenklanten aan de ene kant, interne services aan de andere kant. Randen: externe verzoeken die binnenkomen, interne antwoorden die uitgaan.
- Egress zijde: interne services aan de ene kant, externe bestemmingen aan de andere kant. Randen: interne services die uitgaande oproepen initiëren, externe antwoorden die terugkomen.
De asymmetrie:
- Ingress: bronset is onbegrensd (iedereen op het internet). Bestemmingset is klein (een paar services). Volume schaalt met gebruikers.
- Egress: bronset is klein (een paar interne services). Bestemmingset is begrensd (een paar bekende partners). Volume schaalt met interne activiteit.
Enkelvoudige ontwerpblok samenvoegt beide bipartiete helften via één knoop. Die knoop heeft fan-in van buitenaf (ingress) EN fan-in van binnenuit (egress' omgekeerde richting). De belasting van de knoop = som van beide zijden.
Gesplitst ontwerp behoudt beide bipartiete helften op aparte knopen. Elk knoop handelt één rol met de passende schaalas.
Voordat de Split: Een Snijpunt Overal
Enkelvoudig: Alles in Eén Vertex
Voordat het systeem wordt gesplitst, zit er een enkele proxybox tussen elk externe/interne paar. In grafische termen is het een knipperend knooppunt van hoge orde: zijn verwijdering scheidt alle klanten van alle backends EN alle interne services van alle externe partners.
Connectiviteit op dit knooppunt = 1. Wat dan ook verstoort dit knooppunt (procescrash, netwerkglitch, OOM-kill) scheidt elke afhankelijke pad.
Na het splitsen: Knipperend Knooppunt Vervangen Door Twee Lichtere Noden
Het splitsen in ingress + egress creëert twee grafiekknopen waar er vroeger één was. Elke knooppunt zit nu alleen op één bipartiet halve:
- Ingress knooppunt: knipperend knooppunt voor de bipartiete helft van externe-clients-naar-interne-services
- Egress knooppunt: knipperend knooppunt voor de bipartiete helft van interne-services-naar-partners
De haakje loop verdwijnt wiskundig: in de enkelvoudige grafiek moest een interne service die probeerde een externe service te bereiken via de openbare adres vereiste hetzelfde knooppunt tweemaal te doorkruisen (uit via de egress rol, en daarna in via de ingress rol). In de gesplitste grafiek raakt het pad twee verschillende knopen.
Connectiviteit per kant blijft op 1, maar de twee knipperende knopen kunnen onafhankelijk worden vervangen. Het toevoegen van een tweede ingress proxy verhoogt de ingress-kant-connectiviteit tot 2 zonder de egress-kant te wijzigen.
Replicatie per kant
Productiefleets lopen vaak 2+ ingress proxies (HA) EN 2+ egress proxies (HA). Elke kant bereikt onafhankelijk connectiviteit 2. Capaciteit schaal horizontaal op elke kant als nodig.
Netwerkdeelings tolerantie
Synthese
Je kunt nu netwerkarchitecturen lezen als bipartiete grafen, knooppunten met een snede identificeren en de connectiviteit per helft volgen.
Toepassen op netwerkdeling.
Een netwerkdeling is een grafensnede: de kanten over de deling falen; beide zijden blijven functioneren maar kunnen elkaar niet bereiken.
Een geografisch gedistribueerd systeem heeft twee datacenters die zijn verbonden via een enkel inter-DC-koppeling. Inkomende verkeer gaat via DC1; uitgaande verkeer gaat via DC1 naar externe partners; enkele interne services leven in DC2 en maken gebruik van DC1 voor stateful operaties.
Bijsluiter Notities
Bijsluiter Notities
Dit lessenaar over de vormgeving van het onderwerp herschrijft het hoofdlessenaar over de Scheiding van Inkomend en Uitgaand Verkeer als een analyse van bipartiete grafen.
De volgende bijsluiter, geometry_of_failure_modes_and_blast_radius, ontleedt tussenheidscentrualiteit (identificeert flessenhalsknooppunten) & min-snede (bepaalt de ontploffingsstraal).
Goed gedaan.