Проверка начинается с отказа одной копии

Chaos Monkey — инструмент для проверки устойчивости распределённого приложения: он намеренно завершает работу отдельных экземпляров сервисов, то есть запущенных копий программ. Это не случайное отключение всей инфраструктуры. Смысл в том, чтобы создать ограниченный отказ и посмотреть, выдержит ли его система, пока остальные части продолжают работать.

Такой тест проверяет предположение, на котором строятся многие облачные приложения: если одна копия исчезнет, другая сможет принять её работу. Оркестратор — программа, которая следит за запущенными сервисами, — может обнаружить потерю экземпляра, перенаправить запросы и запустить замену. Но эта цепочка сработает только при достаточном запасе ресурсов и корректной настройке зависимостей.

Почему отказ делают непредсказуемым

Если команда тестирует только заранее известные сбои, она может невольно проверить лишь сценарии, к которым уже подготовилась. Непредсказуемый выбор экземпляра помогает обнаружить менее очевидные слабые места: например, незаменимую копию сервиса или зависимость, о которой забыли при проектировании.

При этом важна не случайность сама по себе, а контролируемость эксперимента. Команда должна понимать, какую часть системы затрагивает проверка, и иметь возможность заметить последствия и остановить воздействие. Иначе эксперимент не выявит полезную уязвимость, а просто превратится в незапланированный крупный сбой.

Что именно показывает результат

Успешное восстановление — не только появление новой копии. Важно, успели ли запросы перейти к работающим экземплярам, не перегрузились ли они и не нарушилась ли работа сервисов, которые зависят от отказавшего. Если пользователь всё же замечает задержку или ошибку, это тоже результат: он показывает, где нужно улучшить резервирование, мониторинг или автоматическое восстановление.

Поэтому такой инструмент проверяет не обещание, что отказов не будет, а способность системы пережить отказ отдельной части. Надёжность здесь измеряется не отсутствием поломок, а тем, насколько быстро и незаметно сервис возвращается к нормальной работе.