English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gast
1 / ?
terug naar lessen

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.

Bipartiete ingress & egress: aparte knoopsets, aparte snijpunten

Teken de bipartiete grafiek voor een klein SaaS: 5 externe klantuiteinden (sturen verzoeken in), 3 interne services (de achtersteinden) & 4 externe partner-API's (worden uitgevoerd). Identificeer welke randen behoren tot de ingress bipartiete helft & welke behoren tot de egress bipartiete helft. Voorspel wat er gebeurt met de grafiekconnectiviteit als een van de interne services faalt.

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.

Een team voert momenteel één proxybox uit (eenkel knooppunt voor zowel richtingen). Ze splitsen het in één ingress + één egress, waarna ze later een tweede ingress (HA-paar) toevoegen maar een enkel egress behouden. Loop door de wijzigingen in de grafiekconnectiviteit op elke stap en identificeer het bipartiete deel dat na stap 3 nog steeds 1-geconnecteerd is (en daardoor nog steeds het laagste tolerantiefoutgeval is).

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.

Voorspel wat er gebeurt als de inter-DC link faalt: (1) welke bipartiete helften blijven binnen elk DC verbonden, (2) welke verkeer blijft stromen en welke stopt, & (3) stel één architectonische aanpassing voor die het systeem laat tolereren voor deze deel met een gebonden degradatie in plaats van een volledige uitval.

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.