Terraform — это инструмент Infrastructure as Code (IaC) от HashiCorp. Он позволяет описывать топологию сети, серверы, базы данных и политики безопасности в виде декларативного кода на языке HCL (Hashicorp Configuration Language). Вместо ручной настройки в консоли облачного провайдера, инженер фиксирует желаемое состояние системы в текстовых файлах, которые сохраняются в системе контроля версий.
Принцип работы
Работа строится на трех этапах: написание кода, планирование (terraform plan) и применение (terraform apply). Terraform сравнивает текущее состояние ресурсов (файл state) с описанным в коде и вычисляет минимально необходимый набор изменений. Это обеспечивает идемпотентность: повторный запуск с теми же параметрами не изменит уже созданные ресурсы.
Инструмент поддерживает более 2000 провайдеров, включая AWS, Azure, Google Cloud и Yandex Cloud. Это позволяет управлять гибридными средами из единого интерфейса. Модульная структура кода дает возможность переиспользовать конфигурации для разных окружений (dev, staging, production), исключая человеческий фактор при настройке.
Статистика показывает, что использование IaC сокращает время развертывания инфраструктуры в несколько раз. В промышленной эксплуатации Terraform интегрируется в CI/CD пайплайны, обеспечивая автоматическое обновление ресурсов при обновлении репозитория.