← Ко всем open source проектам

Terraform

hashicorp/terraform

Terraform — инструмент инфраструктуры как кода для описания, планирования и применения изменений через провайдеры.

Форки 10,367
Автор hashicorp
Язык Go
Лицензия NOASSERTION
Обновлено 2026-06-10

Что это такое

Terraform — инструмент инфраструктуры как кода. Вместо ручных кликов в облачных панелях команда описывает ресурсы в конфигурации, получает план изменений и применяет его через провайдеры. Такой подход делает инфраструктуру более проверяемой: файлы можно ревьюить, хранить в Git и повторять в разных окружениях.

Репозиторий был создан HashiCorp в 2014 году. Terraform стал популярным потому, что предложил общий язык для разных облаков и сервисов: AWS, Google Cloud, Azure, Kubernetes, DNS, базы данных, SaaS-платформы и внутренние API подключаются через provider-модель. При этом важно помнить современный факт о лицензии: новые версии Terraform распространяются как source-available, а не как классический OSI-проект; для полностью открытой ветки экосистема часто смотрит на OpenTofu.

Что внутри

Внутри — ядро CLI, язык конфигурации, механизм графа ресурсов, планирование, состояние, работа с провайдерами и документация для разработки. Ключевой рабочий цикл держится на трех шагах: описать желаемое состояние, посмотреть план, применить изменения.

Идея конфигурации Terraform

Синтаксис HCL не входит в список языков подсветки этой страницы, поэтому пример показан как обычный текст. Он демонстрирует декларативный стиль: описывается ресурс, а порядок действий вычисляет сам Terraform.

Язык: Plain text
resource "aws_s3_bucket" "logs" {
  bucket = "company-logs-prod"
}

output "bucket_name" {
  value = aws_s3_bucket.logs.bucket
}

Где полезен

Terraform используют платформенные команды, DevOps-инженеры и разработчики, которым нужно стабильно создавать окружения, держать инфраструктуру в коде и понимать последствия изменения до применения. Он особенно силен там, где инфраструктура состоит из многих внешних сервисов.

Сильные стороны и ограничения

Сильная сторона Terraform — зрелый подход к плану, состоянию и провайдерам. Ограничения тоже существенные: нужно аккуратно хранить state, понимать drift, версии провайдеров и права доступа. Кроме того, лицензионная история важна для компаний с жесткими требованиями к открытому коду. Terraform остается центральным инструментом, но выбор между Terraform, OpenTofu и облачными CDK стоит делать осознанно.