Production практики

Тема дорожной карты · Terraform

Лучшие практики Terraform для production — это набор паттернов, делающих HCL-инфраструктуру безопасной, проверяемой и аудируемой при запуске terraform apply против живых систем. Всегда храните remote-state в версионированном, зашифрованном бэкенде — S3 с таблицей блокировок DynamoDB или Terraform Cloud — и никогда не запускайте terraform apply локально против production: используйте CI/CD-конвейер с обязательным ревью плана. Фиксируйте версии провайдеров и модулей в блоках required_providers и source, чтобы предотвратить непреднамеренные обновления, и применяйте политику в виде кода через Sentinel или OPA перед каждым apply. Лучшие практики Terraform для production также включают разделение воркспейсов или корневых модулей по окружениям, использование tfvars-файлов для среда-специфичных входных данных, запуск tflint и Checkov в CI и хранение чувствительных значений вне состояния путём интеграции HashiCorp Vault или AWS Secrets Manager.

Как это работает

Production практики покрывает операционную гигиену: remote state с локингом + versioning, per-environment разделение, секреты вне git, CI/CD с PR-plan + ручным гейтом для prod, drift-detection по расписанию, policy-as-code гейты, версионирование модулей + приватный module registry, observability terraform apply-операций (логи, аудит), DR (бекапы state, runbook отката). Относитесь к Terraform-изменениям с той же осторожностью, что и к релизам приложения.

Когда применять

Применяйте эти практики с первого дня — ретрофит потом болезненный. Политика "destroy табу": production-ресурсы имеют prevent_destroy = true; удаление prod требует снятия флага, ревью PR, одобрения apply. Drift-detection еженочно — ручные изменения ловятся. Тренируйте recovery state на staging до нужды на prod.

Типичные ошибки

Ловушки Production практики: нет бекапа state, потом коррумпированный state = дни ручной сверки; нет prevent_destroy на БД; apply с ноута в production (нет аудита); пропуск staging-среды ("это же просто конфиг, заработает"). Production-дисциплина не вытекает из добрых намерений — нужны гейты.

Связанные понятия

Полезные ресурсы