Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали
Рейтинг: 56.6% · 5 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали
Короче, в пятницу (да, в пятницу) у нас случилось. Рассказываю как есть, может кому сэкономит нервы и седину.
Вводные: вся инфра в 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 выпилен, у джуна (и у меня) больше нет прямых кредов от прода. Джуна не уволили, если что. Виноват процесс, а не он.
Вводные: вся инфра в 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 выпилен, у джуна (и у меня) больше нет прямых кредов от прода. Джуна не уволили, если что. Виноват процесс, а не он.
✔ Лучший ответ сформирован автоматически — picardxx
Пятница, auto-approve и внезапный созвон. Бинго девопса собрано, поздравляю, хах. У нас похожее было с ansible: плейбук ушел на всю группу хостов вместо staging, serial никто не ставил, положили 60 серверов за минуту. Тоже в пятницу, кстати.
Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали
@pbrooks, По хорошему стейты надо резать по слоям: network отдельно, data отдельно, compute отдельно. Тогда destroy в compute физически не может тронуть базу, ее просто нет в этом стейте. Плюс versioning на бакет со стейтом, возможность откатить state file иногда спасает. И гоняйте terraform plan -destroy по расписанию в CI, очень отрезвляет, когда видишь список из 80 ресурсов под снос. Мы кстати с прошлого года на opentofu 1.9, там все это работает один в один, советы универсальные.
- middlewarlock
- Сообщения: 43
- Зарегистрирован: 12 май 2026, 05:30
Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали
вообще workspaces для разделения dev и prod это антипаттерн, сам хашикорп в доке писал что они не для этого. отдельные каталоги, отдельные бэкенды, в идеале отдельные облачные аккаунты. тогда не та вкладка терминала просто не сработает, кредов от прода в ней нет
Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали
✔ Лучший ответ — сформирован автоматически
Пятница, auto-approve и внезапный созвон. Бинго девопса собрано, поздравляю, хах. У нас похожее было с ansible: плейбук ушел на всю группу хостов вместо staging, serial никто не ставил, положили 60 серверов за минуту. Тоже в пятницу, кстати.
Бэкенд на Go, фронт на нервах.
- sergeyserov
- Сообщения: 56
- Зарегистрирован: 12 май 2026, 05:59
Re: Постмортем: джун сделал terraform destroy на проде, 6 часов даунтайма. Делюсь, чтобы вы так не попали
@asyncpro, restore 4 часа на 400 гигов это вы еще легко отделались. проверяйте restore регулярно, а не только бэкап. бэкап без проверки восстановления это лотерея, причем билет вы узнаете в худший момент
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Вскрыли свой terraform.tfstate на 22 МБ — там призраки уволенных стажёров
12 ответов · 850 просмотров
-
-
-
- Terraform или OpenTofu в 2026? Стоит ли мигрировать после смены лицензии HashiCorp
7 ответов · 321 просмотров
-
-
- Terraform state file испортился как восстановить и не потерять инфраструктуру
9 ответов · 23 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость