Суть. Отказы в сложных системах неизбежны, но их поведение обычно выясняется в самый неудобный момент. Подход предлагает вызывать отказы намеренно, в контролируемых условиях, с гипотезой и ограниченным радиусом поражения — чтобы узнать реакцию системы до того, как она проявится сама.
Порядок эксперимента
- Описать нормальное состояние измеримо: доля успешных запросов, время ответа, ключевое действие
- Сформулировать гипотезу: «при отказе одного узла показатели не изменятся»
- Ограничить радиус: один сервис, малая доля трафика, рабочее время
- Вызвать отказ и наблюдать
- Остановить по заранее заданному условию
- Записать вывод и починить найденное
Когда это уместно
Когда уже есть наблюдаемость, описанные цели по надёжности и работающая процедура восстановления. Без них эксперимент превращается в обычную аварию, только устроенную своими руками. Практическая проверка готовности: команда умеет откатывать выпуск за минуты и знает, кто дежурит.
Что это на самом деле
Не «ломать продуктив ради интереса», а проверять гипотезы об устойчивости в управляемых условиях. Отправная точка — утверждение вида «при отказе одной зоны размещения сервис продолжит принимать заказы». Проверка показывает, верно оно или нет, пока это ещё не выяснилось в три часа ночи.
Порядок эксперимента
- Описать нормальное поведение в цифрах: доля успешных запросов, время ответа.
- Сформулировать гипотезу: что должно остаться в норме при таком-то отказе.
- Ограничить радиус: одна зона, один процент трафика, рабочее время, дежурный на месте.
- Ввести отказ и наблюдать.
- Остановить по заранее заданному условию, не по ощущению.
- Записать вывод и превратить его в задачу, иначе смысла нет.
С чего начинать
| Уровень | Что проверяем | Готовность нужна |
|---|---|---|
| Начальный | Восстановление из резервной копии с секундомером | Никакой особой |
| Базовый | Отказ одного экземпляра сервиса в тестовой среде | Мониторинг и оповещения |
| Средний | Задержки и потери в сети между сервисами | Наблюдаемость и дежурство |
| Продвинутый | Отказ зоны размещения в продуктиве | Отработанные сценарии, бюджет ошибок |
Первая строка доступна всем и почти всегда даёт находку: реальное время восстановления оказывается в разы больше заявленного.
Где ломается
Начинают с рабочей среды. Первые эксперименты проводят в тестовой, чтобы отладить сам процесс.
Нет условия остановки. Эксперимент должен прекращаться автоматически при выходе показателей за границу.
Не чинят найденное. Тогда это развлечение инженеров, а не дисциплина: каждая найденная слабость должна превращаться в задачу с владельцем.
- Начинают с продуктива. Один неудачный эксперимент закрывает практику в компании на годы.
- Нет гипотезы. Без неё эксперимент превращается в поломку без вывода.
- Результат не превращается в задачу. Нашли слабое место, обсудили, забыли — типичный финал.
- Не предупреждают поддержку. Клиентские обращения во время эксперимента разрушают доверие к практике внутри компании.
