TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.1K subscribers
Post #902 4.08K
Лучшие практики Terraform, которые вам нужно знать

1. Структура кода, качество кода и организация

Никогда не храните всю конфигурацию в одном main.tf файле. Разделяйте файлы по папкам в зависимости от ресурсов, окружений, регионов и проектов. Если конфигурация простая, используйте команду terraform workspaces для управления несколькими окружениями. Это также ускоряет выполнение Terraform.

Стандартизируйте соглашения по именованию. Используйте входные и выходные переменные — не хардкодьте значения, которые можно передавать в переменные или получать из источников данных.

2. Поддерживаемость и повторное использование

Создавайте переиспользуемые модули для инфраструктурных компонентов (ресурсные и инфраструктурные модули). Храните модули в отдельном репозитории или в специальной директории (modules/). Думайте о них как о шаблонах для ваших ресурсов. Старайтесь, чтобы ресурсные модули были максимально простыми.

3. Управление состоянием

Всегда используйте удаленное хранилище для файлов состояния. Варианты хранения:
🔹S3 с блокировкой DynamoDB (AWS)
🔹Google Cloud Storage
🔹Azure Storage
🔹Terraform Cloud
🔹MinIO (самостоятельный хостинг)
🔹GitLab (да, GitLab поддерживает хранение состояния Terraform)

4. Практики безопасности

🔹Избегайте хардкодинга секретов. Используйте переменные окружения или инструменты управления секретами, такие как Hashicorp Vault, AWS Secrets Manager, Google Secret Manager.
🔹Шифруйте файл состояния в удаленном хранилище.
🔹Управляйте доступом к файлу состояния через IAM-политики.
🔹Избегайте использования учетной записи администратора. Определите IAM-роль или сервисный аккаунт для выполнения Terraform.

5. Продвинутый подход: применяйте принцип DRY с Terragrunt

Terragrunt — это обертка для Terraform и инструмент для оркестрации инфраструктуры. Он нативно поддерживает инфраструктурные модули и управляет зависимостями, что позволяет уменьшить дублирование кода. Именно поэтому ключевой принцип — DRY (Don't Repeat Yourself — Не повторяйся).

👉 DevOps Portal
  • 👍 14
  • ❤ 4
More from @loose_code
  1. Oct 1, 2026Обработка миллионов файлов – это та точка, где большинство распределённых систем хранения…
  2. Oct 1, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  3. Oct 1, 2026Docker 101: Как достучаться до контейнера без проброса порта Знали, что IP-адрес контейнер…
  4. Sep 30, 2026В этой статье разбирается, как спроектировать production-ready MCP-сервер для платформенны…
  5. Sep 30, 2026В этой статье объясняется, почему Ingress заменяют на Gateway API, за что на самом деле от…
  6. Sep 30, 2026Архитектура Argo CD: разбор К концу этого материала вы: Поймёте, как Argo CD реально работ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →