TGViewer
Devs Hive Devs Hive @devshive · 1.45K subscribers
Post #290 432
Terragrunt — коли Terraform стає замало ☕️☕️☕️

Заварюйте кофе, бо це буде довгий технічний допис про інструмент, який може суттєво спростити життя, коли інфраструктура розростається і звичайного Terraform стає недостатньо.

Яку проблему він вирішує?

Уявіть, що у вас є декілька середовищ: dev, staging та prod. У кожному з них розгорнуті певні ресурси.

Якщо у вас моноліт, все доволі просто. Ви створюєте окремий Git репозиторій cloud-infra, у якому описуєте всю інфраструктуру за допомогою Terraform, а для розділення середовищ використовуєте Workspaces.

Але уявімо, що ваша система поступово переходить до мікросервісної архітектури. Кількість ресурсів зростає, а централізована Terraform конфігурація "жирною".

Тому інфраструктуру часто розділяють на незалежні Terraform конфігурації.

Наприклад, спільну інфраструктуру залишаємо в cloud-infra. А оскільки кожен мікросервіс має власний репозиторій, у ньому також можна розмістити Terraform конфігурацію для ресурсів, які належать конкретному сервісу: PostgreSQL, Redis, S3 тощо.

Таким чином, кожен мікросервіс може мати власний Terraform State, незалежний від state інших сервісів та спільної інфраструктури.

І в багатьох випадках такого підходу цілком достатньо.

Але зі зростанням складності інфраструктури можуть виникнути нові проблеми.

Наприклад, вам потрібно розгорнути ресурси в певному порядку, але вони описані в різних Terraform конфігураціях і мають окремі State.

Або один мікросервіс залежить від інфраструктури іншого, тому перед його розгортанням потрібно переконатися, що всі необхідні ресурси вже створені.

Частіше всього, тут починається побудова кастомних велосипедів, які максимально костильно забезпечують оркестрацію ресурсів 😁

І якраз тут можна використати Terragrunt

Фактично, це інструмент, який працює поверх Terraform та дозволяє оркеструвати незалежні проєкти з окремими state.

Не буду детально розписувати всі його можливості, адже, як на мене, набагато важливіше зрозуміти проблему, яку він вирішує 🤌

Дуже коротко про основні фічі:

- Повторне використання спільних конфігурацій без копіювання між середовищами та різними Terraform проєктами

- Управління залежностями між незалежними проєктами та порядком їх розгортання

- централізоване керування і оркестрація

- зручна організація конфігурацій для різних середовищ (коли workspaces не стає мало).

В своєму досвіді, я тільки раз працював з ним - це був великий enterprise продукт з величезною інфрою. Він там ідеально вписувався, так як дійсно спрощував життя і перекладав операційні проблеми на рівень DevOps, а розгортання потрібної інфри на інженерів

🔗 - https://terragrunt.gruntwork.io/

І саме головне питання, треба відео по ньому? 📹

Без коду, а більше огляд його можливостей на архітектурном рівні з життєвими прикладами.
Terragrunt Terragrunt | Orchestrate Terraform & OpenTofu at Scale Standardize IaC and manage growing infra complexity: define units & stacks, cut repetition with includes/hooks, execute modules in dependency order across environments.
  • 👍 6
  • 🔥 6
  • ❤ 5
More from @devshive
  1. Oct 7, 2026Post #289
  2. Oct 7, 2026Post #288
  3. Oct 6, 2026Цікаве оновлення в Nest.js 🔥 Вони випиляли Axios з HTTP клієнта і тепер використовують na…
  4. Oct 6, 2026Ще одне практичне застосування Jev - jevgrep 🤯☕️ Це інструмент для пошуку потрібного коду…
  5. Oct 5, 2026Post #285
  6. Oct 4, 2026Дуже багато відповіли, що Promise виконає обчислення в окремому потоці 🚬 Треба робити від…
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 →