Вхідний та Вихідний як Одніни Розділів
Біпартитні Графи в Архітектурі Мережі
Біпартитна графа розділяє вузли на два набори, з ребрами, що дозволяють лише між наборами (не всередині набору).
Границі мереж мають природну біпартитну структуру:
- Вхідний бік: з одного боку - зовнішні клієнти, з іншого - внутрішні служби. Ребра: зовнішні запити входять, внутрішні відповіді виходять.
- Вихідний бік: з одного боку - внутрішні служби, з іншого - зовнішні пункти призначення. Ребра: внутрішні служби ініціюють зв'язки з вихідним, зовнішні відповіді повертаються.
Асиметрія:
- Вхідний: набір джерел є безмежним (будь-хто на інтернеті). Набір призначення є невеликим (декількох служб). Об'єм зростає зі збільшенням користувачів.
- Вихідний: набір джерел є невеликим (декількох внутрішніх служб). Набір призначення є обмеженим (декількох відомих партнерів). Об'єм зростає зі збільшенням внутрішньої активності.
Одинична коробка зливає обидві біпартитні половини через одну вузлову точку. Ця точка має струм відзовнішнього боку (вхід) та струм від внутрішнього боку (зворотний вихідний). Вантаж точки = сума обох боків.
Розбитий дизайн зберігає обидві біпартитні половини на окремих вузлах. Кожен вузол обробляє одну роль зі своєю відповідною шкалою зростання.
Перед Розбиттям: Вершина Розгалуження Всіма
Одинакова коробка: У одній вершині все
Перед розділенням одна проксі-штука знаходиться між кожною зовнішньою/внутрішньою парою. У графових термінах це вершина, що розділяє високого порядку: її видалення розриває зв'язок всіх клієнтів з усіма серверами та всіх внутрішніх служб з усіма зовнішніми партнерами.
Зв'язність цієї вузла = 1. Anything that disrupts this node (process crash, network glitch, OOM kill) disconnects every dependent path.
Після розділення: Вершину високого порядку замінюють двома легшими вузлами
Розділення на інгрес + егрес створює два графові вузли, де був один. Кожен вузол тепер знаходиться на одній з біпартитних сторін:
- Вузол інгрес: вершина, що розділяє зовнішніх клієнтів та внутрішніх служб біпартитної сторони
- Вузол егрес: вершина, що розділяє внутрішніх служб та партнерів біпартитної сторони
Геометрично зникає hairpin loop: у графі однаковипорядку внутрішня служба, яка намагається зв'язатися з зовнішньою службою, що має зовнішній адрес, повинна переходити через ту саму вершину двічі (виходить через роль егрес, а потім з'єднує через роль інгрес). У розділений граф, перехід зустрічає два різних вузла.
Зв'язність за стороною залишається на рівні 1, але два вершини, що розділяють, можуть бути замінені незалежно. Додання другої проксі-шахти піднімає зв'язність інгрес-сторони до 2 без зміни егрес-сторони.
Розподілене забезпечення
Виробничі флоти зазвичай працюють з 2+ проксі-шахтами інгрес (HA) та 2+ проксі-шахтами егрес (HA). Кожна сторона має зв'язність 2 незалежно. Капацiти розширюються горизонтально на кожній стороні, як потрібно.
Толерантність до мережної поділу
Синтез
Тепер ви можете читати мережеві архітектури як біпартитні графіки, ідентифікувати вершини розрізу та відстежувати зв'язність за половинами.
Застосуйте це до поділу мережі.
Поділ мережі - це графічний розріз: ребра через поділ виходять з ладу; обидві сторони продовжують працювати, але не можуть доповнювати один одного.
Географічно розподілена система має дві дата-центри, з'єднані одною між-дата-центровою лінією. Транзитний трафік потрапляє через DC1; транзитний трафік йде через DC1 до зовнішніх партнерів; деякі внутрішні служби знаходяться в DC2 та зв'язуються з DC1 для штатних операцій.
Допоміжні Примітки
Допоміжні Примітки
Ця геометрія-ліяр перевизначає основну лекцію «Розделення Ingress & Egress» як аналіз біпартитної графіки.
Наступна допоміжна лекція, geometry_of_failure_modes_and_blast_radius, виводить міжвузлову центральність (визначає вузли-бottle-necks) та мінімальний розріз (обмежує радіус вибуху).
Добре зроблено.