Граф зависимостей как фильтр перед хаос инженерией (Рубрика SRE)
Прочитал пятистраничную работу Анатолия Красновского "Model Discovery and Graph Simulation: A Lightweight Gateway to Chaos Engineering". Главная идея простая: перед дорогими экспериментами со сбоями можно автоматически собрать из распределенных трасс граф зависимостей, добавить число реплик и дешево прогнать по нему Monte Carlo.
Практическая проблема таких моделей - ручное описание архитектуры, которое быстро устаревает. Здесь граф извлекается из Jaeger; в перспективе источниками могут быть телеметрия service mesh, манифесты Kubernetes/Terraform, API-контракты и SLO-as-Code. Получается не еще одна диаграмма, а исполняемая модель доступности, которую можно обновлять в CI/CD.
Проверяли подход на DeathStarBench Social Network: два режима развертывания, пять долей отказавших экземпляров, сравнение симуляции с реальным внедрением сбоев (fault injection). Общая корреляция между моделью и живым экспериментом составила около 0,992. При репликации и доле отказов 0,3 оценки практически совпали: 0,3054 против 0,3054. Но без реплик отклонение было систематическим: от -24,4% при 0,1 до +20,7% при 0,5.
Отдельно надо отметить, что модель видит только обязательные синхронные вызовы и независимые fail-stop отказы. Она не учитывает частичные и серые отказы (gray failures), коррелированные сбои, очереди, повторные попытки, сброс нагрузки и асинхронные потоки. А опытные архитекторы знают, что реальный радиус поражения (blast radius) часто определяется не числом сервисов или кластеров, а общими коррелированными слоями - образом ОС, CNI, системой доставки или цепочкой поставки.
Поэтому для меня это не замена хаос инженерии, а хороший и относительно дешевый этап перед ним. Граф быстро показывает подозрительные цепочки, единичные точки отказа (SPOF) и эффект репликации; живые эксперименты остаются для мест, где топология неполна или поведение системы сложнее бинарного «работает / упал».
Работа вошла в ICSE-NIER 2026 и получила отметку Distinguished Paper Award (кстати код к статье опубликован). Но пока это проверка на одном примере (proof by instance) и одном бенчмарке. Практический первый шаг для платформенной команды: связать трассы, граф зависимостей, SLO и число реплик в проверяемый артефакт - а уже из него формировать короткий список chaos-сценариев с наибольшим риском.
P.S. Возможно, запишем с автором статьи ее разбор и обсуждение инежнерного продукта, что сделал автор на базе этой идеи. Если вам нравится эта идея, то поставьте 👌
#Software #Engineering #Architecture #DevOps #PlatformEngineering #RnD