Деплой и инфра
Infrastructure as Code: тест с выбором
Шесть вопросов, проходящих сквозь весь модуль. Каждый отражает решение, которое ты принимаешь в терминале во время реального окна изменений, — не определение для пересказа, а компромисс, который надо взвесить, пока прод под наблюдением.
Убедись, что умеешь связать декларативное желаемое состояние, движок diff в plan/apply, роль файла состояния, locking при конкурентности и обработку drift — синтез, к которому вёл урок.
Твой конфиг объявляет S3-бакет. Ты запускаешь apply один раз, затем ещё раз — без изменений в конфиге и без изменений вне инструмента. Что должно произойти на втором apply и какое свойство это гарантирует?
Коллега спрашивает: 'Зачем вообще держать файл состояния? Просто делай refresh против живого облака каждый раз и diff против него.' Какой самый сильный довод, что файл состояния не опционален?
Два CI-джоба запускают `terraform apply` против одного бэкенда с разницей в девять секунд, locking отключён через `-lock=false`. Какой основной режим отказа?
CI-прогон упал посреди apply и оставил несвежий лок. Следующий пайплайн быстро падает с `Error acquiring the state lock`. Джуниор хочет сразу запустить `terraform force-unlock` и повторить apply. В чём предостережение сеньора?
Во время инцидента в 2 ночи коллега вручную поправил правило security-group в консоли, чтобы остановить кровотечение. Код никто не трогал. Рутинный `terraform apply` запускается во вторник утром. В чём опасность и что должно было произойти сначала?
Сгенерированный пароль БД попадает в output Terraform, а файл состояния лежит в S3-бакете, который могут читать несколько инженеров. В чём экспозиция и какой правильный паттерн?
Сквозная линия: ты объявляешь желаемое состояние, plan делает diff против записанного файла состояния (сначала refresh провайдера), а apply исполняет diff идемпотентно. Файл состояния — карта идентичности, одновременно источник истины и опасность: держи его в версионируемом, залоченном удалённом бэкенде, никогда не прогоняй через него секреты и встречай drift осознанно через plan -refresh-only, решая намерение до того, как apply тихо откатит аварийное исправление. Склоняйся к иммутабельной инфраструктуре, чтобы дрейфить было нечему.