Інфраструктура як код з Terraform: найкращі практики
Модулі, стан і організація коду для інфраструктури, що зростає.

Інфраструктура як код з Terraform: найкращі практики
Модульність з самого початку
Проєкти на Terraform, які починалися з одного великого файлу main.tf, зазвичай перетворюються на некерований моноліт через півроку активної розробки. Розділення на перевикористовувані модулі — наприклад, окремий модуль для мережі, окремий для бази даних, окремий для застосунку — з самого початку окупається кратно. Детальніше про суміжний підхід можна прочитати в матеріалі «Моніторинг і алертинг: будуємо спостережуваність сервісу».

Управління станом
Файл стану (terraform.tfstate) — найкритичніша частина проєкту: він зберігає відповідність між кодом і реальними ресурсами в хмарі. Зберігати його локально або в системі контролю версій — гарантований спосіб рано чи пізно отримати розсинхронізацію між учасниками команди.
Правильний підхід — віддалений backend із блокуванням стану, наприклад S3 разом із DynamoDB для блокування або вбудовані рішення хмарних провайдерів. Перед terraform apply завжди варто запускати terraform plan і уважно читати вивід — особливо рядки з позначкою -/+ про перестворення ресурсу, які можуть означати незапланований простій продакшен-бази даних. Ці ідеї перегукуються з темами «Docker: багатоступеневі збірки для зменшення образів» та «NoSQL vs SQL: як обрати правильно».
Схожі матеріали
Автоматизація онбордингу розробників (dev environment as code)
Практичний посібник з теми «автоматизація онбордингу розробників (dev environment as code)» для DevOps-інженерів та SRE.
Автоматизація патчингу серверів
Практичний посібник з теми «автоматизація патчингу серверів» для DevOps-інженерів та SRE.
Автоматизація тестування інфраструктури
Практичний посібник з теми «автоматизація тестування інфраструктури» для DevOps-інженерів та SRE.