Вхід та вихід як окремі множини
Біпартитні графії в архітектурі мережі
Біпартитна графа розділяє вузли на дві множини, з ребрами, які дозволяють лише між множинами (ніколи всередині множини).
Користові межі мають природну біпартитну структуру:
- Сторона Інгрес: з одного боку - зовнішні клієнти, з іншого - внутрішні служби. Ребра: зовнішні запити, що входять, внутрішні відповіді, що виходять.
- Сторона Егрес: з одного боку - внутрішні служби, з іншого - зовнішні пункти призначення. Ребра: внутрішні служби, які ініціюють вихідні дзвінки, зовнішні відповіді, що повертаються.
Асиметрія:
- Інгрес: множина джерел безмежна (будь-який на інтернеті). Множина призначення мала (два-три сервіси). Об'єм зростає з кількістю користувачів.
- Егрес: множина джерел мала (два-три внутрішні сервіси). Множина призначення обмежена (два-три партнери). Об'єм зростає з внутрішньою діяльністю.
Одинадцатигранна схема зливає обидві половини біпартитної графу через одну вузол. Цей вузол має витяжку ззовні (інгрес) І витяжку всередину (зворотний напрям егрес). Завантаження вузла = сума обох сторін.
Роздільна схема зберігає обидві половини біпартитної графу на окремих вузлах. Кожен вузол обробляє одну роль зі своєю відповідною оссю масштабування.
Перед розділом: вершина розрізу на кожному кроці
Одно-боксова: Усього Всего в одній вершині
До розділення одна проксі-бокс знаходиться між кожною зовнішньою/внутрішньою парою. У графових термінах це вершина розрізу високого порядку: її видалення відділяє всіх клієнтів від всіх бекендів І всіх внутрішніх служб від всіх зовнішніх партнерів.
Зв'язність цієї вершини = 1. Anything, що порушує цю вершину (помилка процесу, мережна затримка, OOM вилучення) відділяє кожен залежний шлях.
Після розділення: Вершина розрізу замінена на дві менші вершини
Розділення на інгрес + егрес створює дві графові вершини, де було одна. Кожна вершина тепер знаходиться лише на одній біпартитній половині:
- Вершина інгрес: вершина розрізу для біпартитної половини зовнішніх клієнтів-внутрішніх служб
- Вершина егрес: вершина розрізу для біпартитної половини внутрішніх служб-партнерів
Гарпунний ланцюжок зникає геометрично: в графі одної боксу внутрішня служба, яка намагалася зв'язатися з зовнішньою службою з відкритого доступу за допомогою публічного адреса, вимагала переходу через ту саму вершину двічі (виходячи через роль егрес, а потім входячи через роль інгрес). У розділеному графі перехід зустрічає дві різні вершини.
Зв'язність на кожній стороні залишається на рівні 1, але дві вершини розрізу можна замінити незалежно. Додання другої проксі-інгрес звишує зв'язність інгрес-сторони до 2 без зміни сторони егрес.
Розмноження на кожній стороні
Виробничі флоти часто працюють з 2+ проксі-інгрес (HA) та 2+ проксі-егрес (HA). Кожна сторона має зв'язність 2 незалежно. Обсяг збільшується горизонтально на кожній стороні за потреби.
Толерантність до розбиття мережі
Синтез
Тепер ви можете читати мережеві архітектури як біпартитні графи, ідентифікувати вершини розрізу та відстежувати зв'язність за половинами.
Застосуйте це до поділу мережі.
Поділ мережі є графом розрізу: ребра через поділ виходять з ладу; обидві сторони продовжують працювати, але не можуть досягти одна одної.
Система, розподілена географічно, має два дата-центри, з'єднані одною між-DC посилкою. Прихідний трафік вступає через DC1; відхідний проходить через DC1 до зовнішніх партнерів; деякі внутрішні служби живуть у DC2 та викликають DC1 для станових операцій.
Допоміжні Примітки
Допоміжні Примітки
Ця геометрія-ліярність перетворює основну лярню «Розделення Приходу та Відхідного Трафіку» на аналіз біпартитного графа.
Наступний допоміжний, geometry_of_failure_modes_and_blast_radius, виводить міжвласну центральність (визначає вузли-бottleneck) та мінімальний розріз (обмежує радіус вибуху).
Добре зроблено.