TGViewer
KazDevOps KazDevOps @devopskaz · 6.87K subscribers
Post #1178 1.22K

Forwarded from DevOps FM

👩‍💻 Всем DevOps! Начнём неделю с подборки лучших практик по Terraform:

1. Разделяйте файлы конфигураций. Вместо того чтобы помещать весь код в main.tf, лучше распределите его по нескольким файлам:
• main.tf: вызывает модули, локальные файлы и источники данных для создания всех ресурсов.
• variables.tf: содержит объявления переменных, используемых в main.tf. Чтобы улучшить читаемость кода, размещайте обязательные переменные вверху, а необязательные — внизу, разделяя их строкой комментария;
• outputs.tf: содержит выходные данные ресурсов, созданных в main.tf;
• versions.tf: содержит требования к версиям Terraform и поставщиков;
• data.tf: содержит импорт ресурсов;
• resource.tf: содержит объявление конкретного ресурса;
• terraform.tfvars: содержит значения переменных. Нигде не должен использоваться.

2. Упорядочьте ключи в блоке переменных variables.tf следующим образом: description, type, default, validation.

3. Используйте динамические блоки. Они позволяют создавать конфигурации с более высокой степенью гибкости и автоматизации. Их используют для генерирования повторяющихся блоков кода на основе входных данных, что упрощает управление инфраструктурой и уменьшает объём дублирующегося кода.

4. Старайтесь делать ваши модули ресурсов максимально простыми.

5. Указывайте версии ваших модулей, иначе вы можете столкнуться с неожиданными проблемами при очередном развертывании. Для обновления ваших модулей используйте семантическое версионирование.

6. Если ваши модули тесно связаны — объедините их в один. Такие модули можно хранить в одном репозитории и использовать их в качестве подмодулей. Так вы сможете версионировать их как единое целое, и управлять ими станет проще.

7. Используйте map вместо list для описания группы объектов. Если требуется создать группу идентичных объектов, то лучше использовать map, так ресурсы будут обновляться. При использовании list ресурсы пересоздаются. Для некоторых сценариев это критично.

#bestpractices #devops #terraform
  • 🔥 9
  • 👍 8
  • ❤ 2
  • 😎 2
More from @devopskaz
  1. Oct 9, 2026🔥 Сервер на смартфоне OnePlus 6 с 26 контейнерами Предлагаем пятничное чтиво про один инт…
  2. Oct 8, 2026Post #2224
  3. Oct 7, 2026⚡️ Апдейт: спикер Тельман Илиев выступит на DevOpsDays Almaty'26 с новым докладом Тельман…
  4. Oct 7, 2026🔥 Cloudflare собрала логи, трейсы и аналитику в одной observability-платформе Cloudflare…
  5. Oct 6, 2026🔥 «Правильный FinOps в современных superapp» Делимся записью доклада от Мираса Байгашева,…
  6. Oct 5, 2026🔥 Спикеры №14 и №15 DevOpsDays Almaty'26 — Алимжан Шабаров, Senior DevOps и Султанмахмуд…
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 →