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

un

invitado
1 / ?

Ingreso y egreso como conjuntos distintos

Gráficos bipartita en la arquitectura de la red

Un gráfico bipartita divide los nodos en dos conjuntos, con bordes permitidos solo entre conjuntos (nunca dentro de un conjunto).

Las fronteras de la red tienen una estructura bipartita natural:

- Lado de ingreso: clientes externos en un lado, servicios internos en el otro. Bordos: solicitudes externas entrantes, respuestas internas saliendo.

- Lado de egreso: servicios internos en un lado, destinos externos en el otro. Bordos: servicios internos inician llamadas de salida, respuestas externas regresan.

La asimetría:

- Ingreso: conjunto de origen ilimitado (cualquiera en la Internet). Conjunto de destino pequeño (pocos servicios). Volumen escala con los usuarios.

- Egreso: conjunto de origen pequeño (pocos servicios internos). Conjunto de destino limitado (pocos socios conocidos). Volumen escala con la actividad interna.

Diseño de una sola caja colapsa ambas mitades bipartitas a través de un solo nodo. Ese nodo tiene fan-in desde afuera (ingreso) Y fan-in desde adentro (dirección opuesta del egreso). Carga del nodo = suma de ambos lados.

Diseño dividido mantiene ambas mitades bipartitas en nodos separados. Cada nodo maneja un rol con su eje de escalabilidad apropiado.

Ingreso y egreso bipartita: conjuntos de nodos separados, vértices de corte separados

Dibuje el gráfico bipartita para una pequeza SaaS: 5 puntos de extremo externo (enviando solicitudes), 3 servicios internos (los backends) y 4 API de socios externos (llamados de salida). Identifique qué bordes pertenecen a la mitad bipartita de ingreso y qué pertenecen a la mitad bipartita de egreso. Prediga qué pasa con la conectividad del gráfico si uno de los servicios internos falla.

Antes del split: un vértice de corte en todas partes

Caja Única: Todo en un Vértice

Antes de la división, una caja de proxy se sienta entre cada par externo/interno. En términos de gráfico es un vértice de corte de alto orden: su eliminación desconecta a todos los clientes de todos los backends Y todos los servicios internos de todos los socios externos.

Conectividad en esta nodo = 1. Cualquier cosa que interrumpa este nodo (crash de proceso, fallo de red, kill OOM) desconecta todos los caminos dependientes.

Después de la División: Vértice Pesado Reemplazado por Dos Nodos Más Ligeros

Dividiendo en entrada + salida se crean dos nodos de gráfico donde había uno. Cada nodo ahora se sienta en solo una mitad bipartita:

- Nodo de entrada: vértice de corte para la mitad bipartita externo-clientes-a-servicios-internos

- Nodo de salida: vértice de corte para la mitad bipartita servicios-internos-a-socios

La espiral desaparece geométricamente: en el gráfico de una sola caja, un servicio de interior intentando alcanzar un servicio de cara al público a través de la dirección pública requería atravesar el mismo vértice dos veces (saliendo a través del papel de salida, luego entrando a través del papel de entrada). En el gráfico dividido, la travesía golpea dos vértices diferentes.

La conectividad por lado se mantiene en 1, pero los dos vértices de corte pueden reemplazarse independientemente. Añadiendo una segunda caja de proxy de entrada aumenta la conectividad de lado de entrada a 2 sin cambiar el lado de salida.

Replicación por Lado

Los flotas de producción a menudo ejecutan 2+ cajas de entrada (HA) Y 2+ cajas de salida (HA). Cada lado alcanza conectividad 2 independientemente. La capacidad se escala horizontalmente en cada lado según sea necesario.

Una equipo actualmente ejecuta una caja de proxy (un solo vértice de corte para ambas direcciones). Dividen esta en una entrada + una salida, luego añaden una segunda entrada (pare de alta disponibilidad) pero mantienen una única salida. Pase por cada paso cómo cambia la conectividad del grafo y identifique la mitad bipartita que sigue siendo 1-conectada después del paso 3 (que por lo tanto sigue siendo el modo de falla de menor tolerancia).

Tolerancia a la Partición de Red

Synthesis

Ahora puedes leer las arquitecturas de red como grafos bipartitos, identificar vértices de corte y seguir la conectividad por mitades.

Aplica esto a las particiones de red.

Una partición de red es una corte gráfico: los bordes cruzando la partición fallan; ambos lados siguen funcionando pero no pueden alcanzarse el uno al otro.

Un sistema distribuido geográficamente tiene dos centros de datos conectados por un enlace inter-DC. El tráfico de ingreso entra a través de DC1; el tráfico de egreso pasa a través de DC1 a socios externos; algunos servicios internos viven en DC2 y llaman de vuelta a DC1 para operaciones estatales.

Prediga qué sucede si falla el enlace entre DC: (1) qué mitades bipartitas se mantienen conectadas dentro de cada DC, (2) qué tráfico fluye y qué se detiene, y (3) proponga un cambio arquitectónico que le permita a este sistema tolerar esta partición con degradación limitada en lugar de una suspensión total.

Notas Complementarias

Notas Complementarias

Esta geometría-de lección recuesta la lección principal de Separación de Ingreso y Egreso como un análisis de gráfico bipartito.

La siguiente compañera, geometry_of_failure_modes_and_blast_radius, deriva entreness centrality (identifica nodos de botella) y min-corte (limita el radio de explosión).

Buen trabajo.