In entrata e in uscita come insiemi distinti
Grafi bipartiti nell'architettura di rete
Un grado bipartito divide i nodi in due insiemi, con archi ammessi solo tra insiemi (mai all'interno di un insieme).
I confini di rete hanno una struttura bipartita naturale:
- Lato di ingresso: fuori i clienti su un lato, i servizi interni sull'altro. Archi: richieste esterne che entrano, risposte interne che escono.
- Lato di uscita: i servizi interni su un lato, le destinazioni esterne sull'altro. Archi: i servizi interni che iniziano le chiamate in uscita, le risposte esterne che tornano.
L'asimmetria:
- Ingress: l'insieme di origine è illimitato (qualsiasi persona sulla rete). L'insieme di destinazione è piccolo (pochi servizi). Il volume scala con gli utenti.
- Uscita: l'insieme di origine è piccolo (pochi servizi interni). L'insieme di destinazione è limitato (poche partner note). Il volume scala con l'attività interna.
Design monouso unisce entrambe le metà bipartite attraverso un nodo. Questo nodo ha fan-in dall'esterno (ingress) E fan-in dall'interno (nella direzione opposta dell'uscita). Il carico del nodo = la somma di entrambi i lati.
Design diviso mantiene entrambe le metà bipartite in nodi separati. Ogni nodo gestisce un ruolo con il suo asse di scaling appropriato.
Prima dello split: un vertice di taglio ovunque
Singola casella: tutto concentrato su un vertice
Prima dello split, una singola casella proxy si trova tra ogni coppia esterna/interna. In termini di grafica è un vertice di taglio di alto ordine: la sua rimozione disconnette tutti i clienti da tutti i back-end e tutti i servizi interni da tutti i partner esterni.
Connettività in questo nodo = 1. Qualsiasi cosa interrompa questo nodo (crash del processo, glitch di rete, uccisione OOM) disconnette ogni percorso dipendente.
Dopo lo split: vertice di taglio sostituito da due nodi più leggeri
Lo split in ingress + egress crea due nodi del grafo dove c'era uno. Ogni nodo si trova ora su solo una metà bipartita:
- Nodo ingress: vertice di taglio per la metà bipartita tra clienti esterni e servizi interni
- Nodo egress: vertice di taglio per la metà bipartita tra servizi interni e partner
Il ciclo hairpin scompare geometricamente: in grafica singola, un servizio interno che cerca di raggiungere un servizio esposto al pubblico tramite l'indirizzo pubblico richiedeva di attraversare lo stesso vertice due volte (out via il ruolo egress, poi in via il ruolo ingress). Nel grafo split, il percorso colpisce due vertici diversi.
La connettività per lato rimane a 1, ma i due vertici di taglio possono essere sostituiti indipendentemente. L'aggiunta di un secondo proxy ingresso aumenta la connettività del lato ingress a 2 senza cambiare il lato egress.
Riproducibilità per lato
Frotte di produzione spesso eseguono 2+ proxy ingress (HA) E 2+ proxy egress (HA). Ogni lato raggiunge indipendentemente la connettività 2. La capacità si scalano orizzontalmente su ogni lato come necessario.
Tolleranza delle partizioni di rete
Sintesi
Ora puoi leggere le architetture di rete come grafi bipartiti, identificare vertici di taglio e tracciare la connettività per metà.
Applica questo alle partition di rete.
Una partition di rete è un taglio di grafo: gli edge che attraversano la partition falliscono; entrambi i lati continuano a funzionare ma non possono raggiungersi l'un l'altro.
Un sistema distribuito geograficamente ha due datacenter connessi da un unico link inter-DC. Il traffico di ingresso entra tramite DC1; il traffico di uscita passa attraverso DC1 per i partner esterni; alcune servizi interni vivono in DC2 e chiamano indietro in DC1 per le operazioni di stato.
Note Accompagnatrici
Note Accompagnatrici
Questa geometria-di-lezione ridisegna la lezione principale di Separazione di Ingresso e Egresso come un'analisi di grafo bipartito.
La prossima compagna, geometry_of_failure_modes_and_blast_radius, deriva la centralità di betweenness (identifica nodi a bottiglia) e il min-cut (delimita il raggio di esplosione).
Ben fatto.