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

un

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

Вузлова точка, ідентифікована до прибуття трафіку

Центральність міжності

Для кожної пари вузлів у графі існує найкоротший шлях між ними. Центральність міжності вузла N = частка всіх найкоротших шляхів, що проходять через N.

Вузол із високою централістю міжності лежить на шляху між багатьма іншими парами. Якщо він уповільнюється, уповільнюються багато потоків. Якщо він виходить з ладу, багато потоків зупиняються.

Архітектурна інтерпретація: вузли з високою централістю міжності — це ті, на які кожен архітектурний огляд має звертати особливу увагу. Вони є одночасно вузловими точками, однократними точками відмови (SPOF) та компонентами, критичними за навантаженням. До них, як правило, належать:

- Провайдер DNS (між кожним клієнтом і кожним сервісом)

- Вхідний проксі (між кожним клієнтом і кожним бекендом)

- Первинний вузол бази даних (між кожним бекендом і кожним запитом на читання)

- Сервіс аутентифікації (між кожним користувачем і кожним авторизованим дією)

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

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

Міжцентральність: підсвічений вузол лежить на більшості найкоротших шляхів

У системі є: 100 зовнішніх клієнтів -> 1 DNS -> 1 провайдер CDN -> 3 зворотних проксі -> 12 реплік бекенду -> {1 первинний вузол БД, 2 вузли кешу, 5 зовнішніх API-точок}. Розташуйте ці класи вузлів за показником міжцентральності (від найвищого до найнижчого) та поясніть, чому два перші місці заслуговують на особливу увагу.

Найменший розріз відключає найменшу частину

Теорема про мінімальний розріз простими словами

Мінімальний розріз (min-cut) між двома вузлами графа = найменша кількість ребер (або вузлів), які необхідно видалити, щоб розірвати з'єднання між ними.

Операційне тлумачення: min-cut обмежує найгірший випадок радіусу вибуху (blast radius). Якщо min-cut між 'clients' та 'database' дорівнює 1 ребру (єдиний проксі), то втрата цього ребра розриває з'єднання всіх клієнтів із базою даних. Якщо min-cut дорівнює 5, то для повного розірвання з'єднання потрібно одночасно втратити 5 компонентів; це невдача, але вона обмежена.

Проектування з урахуванням радіусу вибуху: збільшуйте min-cut на кожному важливому межі. Кілька проксі; кілька вузлів кешу; кілька мережевих шляхів між ЦОД. Кожне додавання збільшує min-cut на 1.

Візерунок «бульдока» (bulkhead pattern) у термінах графів: розділіть ресурси на окремі підграфи, які не мають спільного min-cut один з одним. Збій у межах одного підграфа не може поширитися на інші, оскільки ребер між ними не існує.

Діаметр визначає відстань поширення збою

Діаметр графа = найдовший найкоротший шлях між будь-якими двома вузлами.

Поширення збою: коли вузол збивається, а повторні спроби (retries) повертаються назад, вони торкаються вихідних вузлів на відстані до діаметра. Система з діаметром 3 (клієнт -> проксі -> бекенд -> БД) означає, що збій БД впливає на 3 вихідні шари під час шторму повторних спроб.

Наслідок: менший діаметр = швидше локалізація збою, але також більше концентрація вузлів. У кожного проєкту є свої компроміси.

Min-cut as bound on blast radius; diameter as propagation distance

Обчислення мінімального розрізу для реальної архітектури

Архітектура: 1 DNS, 1 CDN, 3 зворотних проксі, 12 реплік бекенду, 1 основний БД.

Обчисліть (або оцініть) мінімальний розріз на трьох межах: (1) між зовнішніми клієнтами та рівнем зворотних проксі; (2) між рівнем зворотних проксі та рівнем бекенду; (3) між рівнем бекенду та основним БД. Для кожної межі вкажіть, що виходить з ладу, коли цей мінімальний розріз перевищується.

Аудит режимів збою за допомогою графових метрик

Синтез

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

Застосуйте всі три методи.

Система: 50 клієнтських кінцевих точок -> 1 DNS -> 2 POP-вузли CDN -> 4 зворотні проксі -> 16 реплік бекенду -> { кластер БД (1 основний + 2 резервні), кластер Redis (5 вузлів), 3 зовнішні API }.

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

Додаткові нотатки

Додаткові нотатки

Цей урок про геометрію переосмислює основний урок Режими збою та радіус вибуху за допомогою метрик графів (міжність, мінімальний розріз, діаметр).

Останній додатковий матеріал, geometry_of_observability_and_capacity, розглядає комірки Вороного для зон охоплення PoP CDN, нижню межу швидкості світла в трикутнику затримки та криву чергування, переглянуту на рівні проксі.

Чудова робота.