TLDR How Complex Web Systems Fail by Mathias Lafeldt
Published in
1 min readMay 23, 2017
TLDR Любая сложная система постоянно испытывает проблемы, но успешно с ними справляется. Когда всё-таки всё падает, то это обычно комплекс из 100500 неудачно совпавших причин.
- Сложные системы должны бы постоянно ломаться, но имеют всякие механизмы защиты (redundancy, monitoring, ops team), которые регулярно успешно работают.
- Сложные системы всегда содержат в себе баги — на то они и сложные, что проверить все краевые случаи невозможно.
- Всё ломается только когда по стечению обстоятельств эти механизмы комбинированно не срабатывают в каких-то таких случаях.
- Искать root cause неправильно — нет никакого root cause. Это как искать ключи под фонарем.
Выводы, что ли:
- Опытные ops’ы при каждом действии играют в рулетку — нельзя на 100% предсказать результат. Но с опытом получается нормально :)
- Люди являются адаптивным элементом в системах.
- Редукция любой ситуации до нескольких пунктов в postmortem ограничивает эффективную пользу для борьбы с будущими проблемами.
- Безаварийная работа это результат опыта работы с отказами системы.