$ cat post.md
practiceПочему мои деплои стали спокойнее после того, как я перестал “улучшать” прод перед релизом
О вредной привычке вносить инфраструктурные улучшения в тот же день, когда нужно просто аккуратно выкатить изменения.
Долгое время мне казалось логичным объединять полезное с полезным. Если я и так иду в прод, почему бы заодно не поправить пару мелочей в proxy-конфиге, не переименовать каталог, не обновить образ базы и не привести compose-файл к более красивому виду.
Проблема в том, что в момент релиза прод и так находится в чувствительном состоянии. Любая дополнительная переменная увеличивает не пользу, а неопределённость. После нескольких неприятных выкладок я понял простую вещь: деплой должен быть скучным.
Если изменение не связано напрямую с релизом, оно не должно ехать вместе с ним. Улучшения инфраструктуры, рефакторинг конфигов и “небольшие правки” лучше выносить в отдельный цикл. Тогда и причина проблем читается быстрее, и откат становится понятнее.
Что изменилось в моём подходе
- Я перестал объединять релиз и инфраструктурную уборку.
- Перед выкладкой оставляю только минимально необходимый diff.
- Всё, что можно вынести в отдельный deploy, выношу.
- Если хочется “заодно поправить”, это обычно знак остановиться.