Не делайте так: мой пятничный деплой
👀 Снова пятница, пора сворачиваться и надеяться, что ни один pipeline не применит изменения, способные снести пол-инфры. Расскажем поучительную историю о DevOps-инженере, который решил выполнить развертывание в пятницу, после рефакторинга Terraform-модулей. Не судите автора статьи слишком строго, он обычный человек, который на кофеине нажал «Deploy».
💬 Что произошло в пятницу?
•15:47 – запуск развертывания после рефактора Terraform-модулей.
Изменение – автор переименовал одну переменную, которая используется в сорока семи местах, в трёх окружениях. Но проверка линтером пройдена. Что может пойти не так?
•16:02 – запуск GitHub Actions, а дальше...пайплайн упал, в Terraform появился неожиданный
•16:07 – сообщения о падении staging и подозрительные изменения в проде, возгласы: "КТО ДЕПЛОИЛ В ПЯТНИЦУ?!". Автор попытался отключить роутер, но было поздно – имя уже в коммите.
•16:11 – созвон в зуме, SRE подключился со вздохом, бэкэнд-разработчик присоединился с пивом, CTO – с пляжа на Бали.
•16:20-16:45 – откат коммита, повторный прогон пайплайна, окружение восстановлено.
После – постмортем без прямых обвинений с коллективной критикой в виде смайликов и пассивно-агрессивных мемов.
❌ Проблема заключалась в том, что при рефакторинге конфигурации автор изменил имя без полного анализа зависимостей и проверки влияния на все окружения. Изменения затронули многочисленные модули и окружения, но не были синхронизированы между собой. Сопутствующими факторами стали недостаточная верификация
✅ Уроки, которые автор не усвоил (а должен был):
•Не деплоить в пятницу
•Всегда перепроверять
•Подготовить воспроизводимый плана отката, желательно, без слёз.
•Внедрить автоматическую валидацию переменных и контрактов модулей (schema/validation) и тесты на согласованность именований.
Пятничный деплой: храбрость или безрассудство? Делитесь вашими историями ниже.
#deploy #devops #terraform #postmortem
•15:47 – запуск развертывания после рефактора Terraform-модулей.
Изменение – автор переименовал одну переменную, которая используется в сорока семи местах, в трёх окружениях. Но проверка линтером пройдена. Что может пойти не так?
•16:02 – запуск GitHub Actions, а дальше...пайплайн упал, в Terraform появился неожиданный
destroy -план. Уведомления в Slack накрыли волной. •16:07 – сообщения о падении staging и подозрительные изменения в проде, возгласы: "КТО ДЕПЛОИЛ В ПЯТНИЦУ?!". Автор попытался отключить роутер, но было поздно – имя уже в коммите.
•16:11 – созвон в зуме, SRE подключился со вздохом, бэкэнд-разработчик присоединился с пивом, CTO – с пляжа на Бали.
•16:20-16:45 – откат коммита, повторный прогон пайплайна, окружение восстановлено.
После – постмортем без прямых обвинений с коллективной критикой в виде смайликов и пассивно-агрессивных мемов.
terraform plan во всех средах и отсутствие автоматизированных проверок. •Не деплоить в пятницу
•Всегда перепроверять
terraform plan для каждого окружения перед применением.•Подготовить воспроизводимый плана отката, желательно, без слёз.
•Внедрить автоматическую валидацию переменных и контрактов модулей (schema/validation) и тесты на согласованность именований.
Пятничный деплой: храбрость или безрассудство? Делитесь вашими историями ниже.
#deploy #devops #terraform #postmortem
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9🤯6🔥3❤1