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

un

ospite
1 / ?
torna alle lezioni

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.

Bipartite ingresso e uscita: insiemi di nodi separati, vertici di taglio separati

Disegna il grafo bipartito per un piccolo SaaS: 5 endpoint esterni dei clienti (che inviano richieste), 3 servizi interni (i backends) e 4 API partner esterni (chiamati in uscita). Identifica quali archi appartengono alla metà bipartita di ingresso e quali appartengono alla metà bipartita di uscita. Prevedi cosa accade alla connettività del grafo se uno dei servizi interni fallisce.

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.

Una squadra attualmente gestisce una casella proxy (singolo vertice di taglio per entrambe le direzioni). Dividono in una ingress + una egress, poi aggiungono una seconda ingress (piastra HA) ma mantengono una singola egress. Passa in rassegna come cambia la connettività del grafo in ogni passo e identifica la metà bipartita che è ancora 1-connessa dopo il passo 3 (che è quindi ancora il modo di fallimento con la minore tolleranza).

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.

Prevedi cosa accade se il collegamento tra DC fallisce: (1) quali metà bipartite restano connesse all'interno di ogni DC, (2) quali flussi di traffico continuano e quali si interrompono, e (3) propone un cambiamento architettonico che consentirebbe al sistema di tollerare questa partizione con una degradazione limitata piuttosto che un black out completo.

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.