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

un

гість
1 / ?
назад до уроків

Вхідний та Вихідний як Одніни Розділів

Біпартитні Графи в Архітектурі Мережі

Біпартитна графа розділяє вузли на два набори, з ребрами, що дозволяють лише між наборами (не всередині набору).

Границі мереж мають природну біпартитну структуру:

- Вхідний бік: з одного боку - зовнішні клієнти, з іншого - внутрішні служби. Ребра: зовнішні запити входять, внутрішні відповіді виходять.

- Вихідний бік: з одного боку - внутрішні служби, з іншого - зовнішні пункти призначення. Ребра: внутрішні служби ініціюють зв'язки з вихідним, зовнішні відповіді повертаються.

Асиметрія:

- Вхідний: набір джерел є безмежним (будь-хто на інтернеті). Набір призначення є невеликим (декількох служб). Об'єм зростає зі збільшенням користувачів.

- Вихідний: набір джерел є невеликим (декількох внутрішніх служб). Набір призначення є обмеженим (декількох відомих партнерів). Об'єм зростає зі збільшенням внутрішньої активності.

Одинична коробка зливає обидві біпартитні половини через одну вузлову точку. Ця точка має струм відзовнішнього боку (вхід) та струм від внутрішнього боку (зворотний вихідний). Вантаж точки = сума обох боків.

Розбитий дизайн зберігає обидві біпартитні половини на окремих вузлах. Кожен вузол обробляє одну роль зі своєю відповідною шкалою зростання.

Біпартитний вхідний та вихідний: окремі набори вузлів, окремі зниклі вершини розгалуження

Нарисуйте біпартитну графу для невеликого SaaS: 5 зовнішніх кінцевих точок клієнтів (які відправляють запити), 3 внутрішніх служб (задніх плів), та 4 зовнішніх партнерських API (які називаються вихідними). Визначте, які ребра належать вхідному біпартитному піввіку та які належать вихідному біпартитному піввіку. Погадайте, що стає з графовою сполучністю, якщо одна з внутрішніх служб зійде.

Перед Розбиттям: Вершина Розгалуження Всіма

Одинакова коробка: У одній вершині все

Перед розділенням одна проксі-штука знаходиться між кожною зовнішньою/внутрішньою парою. У графових термінах це вершина, що розділяє високого порядку: її видалення розриває зв'язок всіх клієнтів з усіма серверами та всіх внутрішніх служб з усіма зовнішніми партнерами.

Зв'язність цієї вузла = 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ти розширюються горизонтально на кожній стороні, як потрібно.

А команда зараз використовує одну проксі-штуку (один вершину для обох напрямів). Вони розділяють її на одну інгрес + одну егрес, а потім додають другу інгрес (пар HA), але зберігають одну егрес. Проходіть через зміни зв'язності графу на кожному кроці та ідентифікуйте біпартитну половину, яка залишається 1-зв'язною після кроку 3 (тобто, яка все ще є найнижчою-толерантністю до помилок).

Толерантність до мережної поділу

Синтез

Тепер ви можете читати мережеві архітектури як біпартитні графіки, ідентифікувати вершини розрізу та відстежувати зв'язність за половинами.

Застосуйте це до поділу мережі.

Поділ мережі - це графічний розріз: ребра через поділ виходять з ладу; обидві сторони продовжують працювати, але не можуть доповнювати один одного.

Географічно розподілена система має дві дата-центри, з'єднані одною між-дата-центровою лінією. Транзитний трафік потрапляє через DC1; транзитний трафік йде через DC1 до зовнішніх партнерів; деякі внутрішні служби знаходяться в DC2 та зв'язуються з DC1 для штатних операцій.

Попереджіть, що сталося, якщо зірвався зв'язок між DC: (1) які біпартитні половини залишилися зв'язаними всередині кожного DC, (2) які потоки трафіку продовжують та які припиняються, та (3) запропонуйте одну архітектурну зміну, яка дозволила би системі витримувати цю поділ з обмеженим погіршенням, а не повною аварійною зупинкою.

Допоміжні Примітки

Допоміжні Примітки

Ця геометрія-ліяр перевизначає основну лекцію «Розделення Ingress & Egress» як аналіз біпартитної графіки.

Наступна допоміжна лекція, geometry_of_failure_modes_and_blast_radius, виводить міжвузлову центральність (визначає вузли-бottle-necks) та мінімальний розріз (обмежує радіус вибуху).

Добре зроблено.