Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Рейтинг: 56.6% · 5 голосов
Docker, Kubernetes, Helm, Terraform, Ansible, GitLab CI, GitHub Actions: автоматизация деплоя, инфраструктура как код, мониторинг и observability.
Ответить
Аватара пользователя
much
Сообщения: 13
Зарегистрирован: 15 май 2026, 15:06

Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение much »

Короче, в пятницу (да, в пятницу) у нас случилось. Рассказываю как есть, может кому сэкономит нервы и седину.

Вводные: вся инфра в terraform, стейт в s3 яндекс облака, окружения через workspaces, dev и prod в одном репо, разница только в tfvars. У джуна была задача снести тестовый стенд. Он сделал workspace select dev, потом его дернули на созвон, через час он вернулся не в ту вкладку терминала, где был выбран prod. И terraform destroy -auto-approve. Алиас tfd с auto-approve я сам когда-то в вики написал, каюсь.

Снесло все: ноды, балансер, managed postgres. Бэкапы были, но restore базы на 400 гигов занял почти 4 часа, плюс час собирали инфру обратно, плюс TTL на DNS. Итого 6 часов даунтайма, клиенты в чатах, директор седой.

Что поменяли: прод в отдельном репо с отдельным стейтом, в CI только plan, apply только из пайплайна после MR с двумя аппрувами, на базе и бакетах lifecycle prevent_destroy, алиас tfd выпилен, у джуна (и у меня) больше нет прямых кредов от прода. Джуна не уволили, если что. Виноват процесс, а не он.
👍 ❤️1 🔥2 😄 🤔1
✔ Лучший ответ сформирован автоматически — picardxx
Пятница, auto-approve и внезапный созвон. Бинго девопса собрано, поздравляю, хах. У нас похожее было с ansible: плейбук ушел на всю группу хостов вместо staging, serial никто не ставил, положили 60 серверов за минуту. Тоже в пятницу, кстати.
Перейти к ответу →
Аватара пользователя
pbrooks
Сообщения: 14
Зарегистрирован: 13 май 2026, 23:04

Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение pbrooks »

Спасибо что написал как есть, таких постов мало. prevent_destroy на стейтфул ресурсы это первое что надо ставить, но почему-то все узнают про него вот таким способом.
👍2 ❤️ 🔥 😄 🤔2
Аватара пользователя
ransome
Сообщения: 37
Зарегистрирован: 11 май 2026, 01:39

Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение ransome »

зачем у джуна вообще были креды от прода? вот это главный вопрос. это не процесс виноват, это вы доступы раздавали как конфетки на новый год
👍1 ❤️ 🔥1 😄1 🤔
Аватара пользователя
asyncpro
Сообщения: 17
Зарегистрирован: 15 май 2026, 10:37

Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение asyncpro »

@pbrooks, По хорошему стейты надо резать по слоям: network отдельно, data отдельно, compute отдельно. Тогда destroy в compute физически не может тронуть базу, ее просто нет в этом стейте. Плюс versioning на бакет со стейтом, возможность откатить state file иногда спасает. И гоняйте terraform plan -destroy по расписанию в CI, очень отрезвляет, когда видишь список из 80 ресурсов под снос. Мы кстати с прошлого года на opentofu 1.9, там все это работает один в один, советы универсальные.
👍 ❤️1 🔥1 😄 🤔
Аватара пользователя
middlewarlock
Сообщения: 43
Зарегистрирован: 12 май 2026, 05:30

Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение middlewarlock »

вообще workspaces для разделения dev и prod это антипаттерн, сам хашикорп в доке писал что они не для этого. отдельные каталоги, отдельные бэкенды, в идеале отдельные облачные аккаунты. тогда не та вкладка терминала просто не сработает, кредов от прода в ней нет
👍1 ❤️1 🔥1 😄 🤔1
Аватара пользователя
picardxx
Сообщения: 7
Зарегистрирован: 22 май 2026, 13:31
Репутация: 468

Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение picardxx »

✔ Лучший ответ — сформирован автоматически
Пятница, auto-approve и внезапный созвон. Бинго девопса собрано, поздравляю, хах. У нас похожее было с ansible: плейбук ушел на всю группу хостов вместо staging, serial никто не ставил, положили 60 серверов за минуту. Тоже в пятницу, кстати.
👍 ❤️ 🔥 😄 🤔
Бэкенд на Go, фронт на нервах.
Аватара пользователя
sergeyserov
Сообщения: 56
Зарегистрирован: 12 май 2026, 05:59

Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали

Сообщение sergeyserov »

@asyncpro, restore 4 часа на 400 гигов это вы еще легко отделались. проверяйте restore регулярно, а не только бэкап. бэкап без проверки восстановления это лотерея, причем билет вы узнаете в худший момент
👍 ❤️1 🔥 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «DevOps и CI/CD»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость