Inbound & Outbound som Distinkta Mängder
Bipartit Graf i Nätverksarkitektur
En bipartit graf delar upp noder i två mängder, med kanter som är tillåtna endast mellan mängder (aldrig inom en mängd).
Nätverksgränser har naturlig bipartit struktur:
- Ingress sida: utanför kunder på ena sidan, interna tjänster på den andra. Kanter: externa begäranden som går in, interna svar som går ut.
- Egress sida: interna tjänster på ena sidan, externa destinationer på den andra. Kanter: interna tjänster som initierar utgående anrop, externa svar som kommer tillbaka.
Asymmetrin:
- Ingress: källmängden är obegränsad (alla på internet). Målmängden är liten (få tjänster). Volymen skalas med antalet användare.
- Egress: källmängden är liten (få interna tjänster). Målmängden är begränsad (få kända partner). Volymen skalas med intern aktivitet.
Enkelt-box-design sammanfogar båda bipartit halvor genom en nod. Den noden har fan-in från utsidan (ingress) OCH fan-in från insidan (egress's motsatta riktning). Nodens belastning = summan av båda sidor.
Delat design bevarar båda bipartit halvor på separata noder. Varje nod hanterar en roll med dess lämpliga skalaxel.
Innan Delning: En Snittknut överallt
Enskild Box: Allt Ligger Hos En
Innan delningen ligger en enda proxybox mellan alla externa/internala par. I grafterm är det ett högt ordnings snittverktyg: dess borttagande skiljer alla klienter från alla bakre delar och alla interna tjänster från alla externa parter.
Anslutning vid detta noder = 1. Allt som stör denna nod (processkrasch, nätverksglitch, OOM-avslag) skiljer varje beroende väg.
Efter Delningen: Snittverktyg Ersätts Av Två Lättare Noder
Delning till ingress + egress skapar två graf-noder där det var en. Varje nod ligger nu endast på en av de bipartita halvorna:
- Ingress-nod: snittverktyg för den externa-klienter-till-interna-tjänster bipartita halvan
- Egress-nod: snittverktyg för den interna-tjänster-till-partners bipartita halvan
Hållbar loopen försvinner geometriskt: i den enskilda boxens graf krävde en intern tjänst som försökte nå en externt utåt riktad tjänst via den publika adressen att två olika verktyg passerades (ut via egress-roll, sedan in via ingress-roll). I den delade grafen träffar förflyttningen två olika verktyg.
Anslutning per sida stannar vid 1, men de två snittverktygen kan ersättas oberoende av varandra. Att lägga till en andra ingress-proxy ökar ingress-sidans anslutning till 2 utan att ändra egress-sidan.
Replikation Per Sida
Produktionsflottor körs ofta med 2+ ingress-proxys (HA) OCH 2+ egress-proxys (HA). Varje sida når anslutning 2 oberoende av varandra. Kapacitet skalar horisontellt på varje sida som behövs.
Tålighet för Nätverksdelning
Sammanfattning
Du kan nu läsa nätverksarkitekturer som bipartita grafer, identifiera snittkantverk och spåraknivå per halva.
Använd detta på nätverksindelningar.
En nätverksindelning är en grafcut: kanter över indelningen misslyckas; båda sidorna fortsätter att fungera men kan inte nå varandra.
Ett geografiskt distribuerat system har två datacenter som är anslutna via en enda inter-DC-länk. Ingress-trafik går in via DC1; egress går genom DC1 till externa partners; vissa interna tjänster finns i DC2 och anropar tillbaka till DC1 för stateful-åtgärder.
Kompletterande Noteringar
Kompletterande Noteringar
Denna geometri-undervisning omformar huvudundervisningen om Separation of Ingress & Egress till en bipartit-grafanalys.
Nästa kompanjon, geometry_of_failure_modes_and_blast_radius, härleder mellanhetssäkerhet (identifierar knäckpunktsnoder) och min-cut (begränsar sprängradie).
Bra gjort.