Определение узла-бottleneck до того, как к нему приходит трафик
Бетвенность междуцентральности
Для каждой пары узлов в графе существует кратчайший путь между ними. Бетвенность междуцентральности узла N = доля всех кратчайших путей, проходящих через N.
Узел с высокой междуцентральностью проходит через путь между многими другими парами. Если он замедляется, многие потоки замедляются. Если он отказывает, многие потоки ломаются.
Архитектурное чтение: узлы с высокой междуцентральностью - это те, на которые каждый обзор архитектуры должен уделять особое внимание. Они являются узкими местами, SPOFs и компонентами с высокой пропускной способностью одновременно. Они склонны быть:
- Провайдером DNS (между каждым клиентом и каждым сервисом)
- Ингресс-прокси (между каждым клиентом и каждым backend)
- Основной базой данных (между каждым backend и каждым чтением)
- Услугой аутентификации (между каждым пользователем и каждым авторизованным действием)
Детекция без измерений: топология графа сама по себе определяет узлы с высокой междуцентральностью. Вам не требуется трафик; вам нужен диаграмма архитектуры. Узел, который находится между многими парами других, является структурально критическим.
Операционное последствие: узлы с высокой междуцентральностью заслуживают диспропорционального инвестиций в (1) запас пропускной способности, (2) редандантность, (3) наблюдаемость и (4) планы ответа на инциденты.
Самый маленький разрыв разрывает самую маленькую часть
Минимальный разрыв в простых терминах
Минимальный разрыв между двумя узлами в графе = наименьшее количество рёбер (или узлов), которые нужно удалить, чтобы разъединить их.
Операционная читабельность: минимальный разрыв ограничивает худший возможный радиус взрыва. Если минимальный разрыв между 'клиентами' и 'базой данных' составляет 1 край (один прокси), то потеря этого края разрывает всех клиентов с базой данных. Если минимальный разрыв составляет 5, вам нужно потерять 5 компонентов одновременно, чтобы полностью разорвать; плохая удача, но ограничена.
Проектирование радиуса взрыва: увеличьте минимальный разрыв на каждом важном границе. Множество прокси; множество узлов кэша; множество сетевых путей между DC. Каждое добавление повышает минимальный разрыв на 1.
Паттерн бульваров в графовых терминах: разделите ресурсы на отдельные подкруги, которые не имеют минимального разрыва друг с другом. Провал в одном подкруге не может распространяться на другие, потому что края не существуют.
Диаметры Устанавливают Расстояние Распространения Провалов
Диаметр графа = самая длинная самая короткая дорога между любыми двумя узлами.
Распространение провалов: когда узел проваливается и повторы возвращаются, они касаются узлов вверх до расстояния диаметра. Диаметр-3 системы (клиент -> прокси -> бэкенд -> БД) означает, что провал БД влияет на 3 верхних слоя в буре повторов.
Импликация: короче диаметр = быстрее локализация провалов, но также большая концентрация узлов. Каждый дизайн имеет свои плюсы и минусы.
Вычислите Минимальный Разрыв для Реальной Архитектуры
Архитектура: 1 DNS, 1 CDN, 3 обратных прокси, 12 реплик бэкенда, 1 первичная БД.
Аудит Режимов Провала с Графическими Метриками
Синтез
Вы теперь можете определить узлы с высокой междувесностью, вычислить минимальный разрыв на каждой границе и оценить расстояние распространения провалов через диаметр.
Примените все три.
Система: 50 конечных точек клиентов -> 1 DNS -> 2 POP CDN -> 4 обратных прокси -> 16 реплик backend -> { Кластер базы данных (1 основной + 2 резервных), Кластер Redis (5 узлов), 3 внешних API }.
Дополнительные примечания
Дополнительные примечания
Эта геометрия-урок преобразует главный урок Режимы отказа и радиус взрыва с использованием метрик графа (международность, мин-рез, диаметр).
Последний компаньон, geometry_of_observability_and_capacity, рассматривает Вороной ячейки для захвата POP CDN, нижнюю планковую скорость света треугольника задержки и кривую очереди, пересмотренную на уровне прокси.
Хорошая работа.