Вузька точка ідентифікована до прибуття трафіку
Бічність централізації
Для кожної пари вузлів в графі існує найкоротший шлях між ними. Бічність централізації вузла N = частка всіх найкоротших шляхів, які проходять через N.
Вузол з високою бічністю знаходиться на шляху між багатьма іншими парами. Якщо він повільно працює, багато потоків повільніють. Якщо він зривається, багато потоків ламаються.
Архітектурне читання: вузли з високою бічністю - це ті, над якими кожна архітектурна перевірка повинна надавати особливу увагу. Це вузькі місця, SPOFs та компоненти з високою ємкістю в одному. Вони мають тенденцію бути:
- Постачальником DNS (між кожним клієнтом та кожним сервісом)
- Вхідним проксі (між кожним клієнтом та кожним заднім плей)
- Основною базою даних (між кожним заднім плей та кожним читанням)
- Сервісом аутентифікації (між кожним користувачем та кожною авторизованою дією)
Виявлення без вимірювання: топологія графа сама по собі ідентифікує вузли з високою бічністю. Ви не需要е трафіку; вам потрібно діаграма архітектури. Вузол, який знаходиться між багатьма парами інших, є структурально критичним.
Оперативний наслідок: вузли з високою бічністю заслуговують на пропорціональне збільшення (1) надлишкової ємкості, (2) надлишкової надійності, (3) спостережності та (4) планів реакції на інциденти.
Найменший розріз відділяє найменший фрагмент
Мін-різець в простих термінах
Мін-різець між двома вузлами в графі = найменша кількість граней (або вузлів), які потрібно видалити, щоб відділити їх.
Оперативне читання: межа min-cut обмежує кращий випадок радіус вибуху. Якщо min-cut між 'клієнтами' та 'базою даних' становить 1 край (один проксі), то втративши цей край, всі клієнти відключаються від бази даних. Якщо min-cut становить 5, вам потрібно втратити 5 компонентів одночасно, щоб повноцінно відключитися; нещастя, але обмежене.
Проектування радіуса вибуху: збільшуйте min-cut на кожному важливому кордоні. Вільні проксі; вільні кеш-узли; кілька мережних шляхів між DC. Кожне додавання підвищує min-cut на 1.
Паттерн "бульбашка" у графових термінах: розділіть ресурси на окремі підграфи, які не мають min-cut один з одним. Провал всередині одного підграфа не може передаватися до інших, оскільки крани не існують.
Простори діаметра Визначення відстані пропагації провалу
Діаметр графа = найдовша найкоротша дорога між будь-якими двома вузлами.
Пропагація провалу: коли вузол провалюється та повторюваність повертається, вони торкаються верхівок угорі до відстані діаметра. Система діаметра-3 (клієнт -> проксі -> бекенд -> БД) означає, що провал БД впливає на 3 верхні шари у штормі повторювань.
Наступство: коротший діаметр = швидше виявлення та припинення провалу, але також більш концентровані вузли. Кожен дизайн має свою торгівлю.
Обчисліть Min-Cut для реальної архітектури
Архітектура: 1 DNS, 1 CDN, 3 відварту, 12 реплік бекенд, 1 основна БД.
Аудит режиму провалу за графовими метриками
Синтез
Тепер ви можете ідентифікувати вузли з високою міжвузловою в'язкістю, обчислювати min-cut на кожному кордоні та оцінювати відстань пропагації провалу за допомогою діаметра.
Застосуйте всі три.
Система: 50 кінцевих пунктів клієнтів -> 1 DNS -> 2 кластери CDN POPs -> 4 відстежуючих проксі -> 16 задніх екземплярів -> { кластер бази даних (1 основний + 2 резервні), кластер Redis (5 вузлів), 3 зовнішніх API }.
Додаткові примітки
Додаткові примітки
Ця геометрія-ліярність переробляє основну лекцію Режими провалу та Радіус вибуху через метрики графу (міжність, мінімальне розрізання, діаметр).
Остання доповнення, geometry_of_observability_and_capacity, розглядає Вороніові ячейки для захоплення кластерів CDN PoP, підлогову швидкість світла трикутника latency та криву черги переглянуто на рівні проксі-шару.
Добре зроблено.