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