hostprofi.ru
Подобрать хостинг
Термин·буква T

Terraform

краткое определение

Terraform — инструмент Infrastructure as Code (IaC) от HashiCorp. Описывает инфраструктуру в декларативных конфигурационных файлах HCL и создаёт/изменяет/удаляет ресурсы в облаках и хостингах через провайдеры.

Terraform — open-source инструмент Infrastructure as Code (IaC) от HashiCorp, выпущенный в 2014 году. Позволяет описать нужную инфраструктуру (серверы, сети, DNS-записи, базы данных, балансировщики) в текстовых файлах на языке HCL (HashiCorp Configuration Language) и привести реальное состояние облака в соответствие с описанием. Конфигурация хранится в Git — история изменений инфраструктуры такая же, как история изменений кода.

Как работает

Terraform работает через провайдеры — плагины, транслирующие HCL-конфигурацию в API-вызовы конкретного облака или сервиса. Доступно более 1500 провайдеров: AWS, Azure, Google Cloud, Yandex Cloud, Hetzner, DigitalOcean, VMware, Kubernetes, GitHub, Cloudflare и многие другие. Один Terraform-проект может одновременно управлять ресурсами в разных облаках.

Основной цикл работы: terraform init (загружает провайдеры и модули) → terraform plan (строит граф изменений, показывает что будет создано/изменено/удалено) → terraform apply (применяет план). Terraform хранит state-файл (terraform.tfstate) — снимок текущего состояния управляемой инфраструктуры. State используется для вычисления дельты между желаемым и реальным состоянием.

Декларативный подход: пользователь описывает что должно быть, а не как это сделать. Terraform сам определяет порядок создания ресурсов, учитывая зависимости: сначала VPC, потом подсеть, потом сервер в подсети. Граф зависимостей строится автоматически на основе ссылок между ресурсами.

Модули — повторно используемые блоки конфигурации. Например, модуль «production VPS» описывает сервер, файрвол, мониторинг и резервное копирование — и применяется для каждого нового проекта одной командой с параметрами.

История

HashiCorp основана в 2012 году. Terraform выпущен в июле 2014 года как open-source под лицензией MPL 2.0. До версии 1.0 (июнь 2021 года) считался нестабильным для production. В августе 2023 года HashiCorp сменила лицензию с MPL на BSL 1.1 (Business Source License), ограничив коммерческое использование. В ответ сообщество создало форк OpenTofu (Linux Foundation, январь 2024), совместимый с Terraform синтаксически. В сентябре 2024 года IBM приобрела HashiCorp за $6,4 млрд.

Применение в хостинге

  • Автоматическое создание VPS при деплое нового проекта.
  • Управление DNS-записями (провайдер Cloudflare, Route53).
  • Конфигурация балансировщика нагрузки и SSL-сертификатов.
  • Создание политик резервного копирования и снапшотов.
  • Воспроизводимые тестовые окружения: один файл конфигурации — одинаковое окружение на staging и production.

На что обращать внимание

State-файл содержит конфиденциальные данные (пароли, токены) и должен храниться в защищённом месте — S3-bucket с шифрованием или Terraform Cloud. Никогда не коммитьте terraform.tfstate в публичный Git-репозиторий. Для командной работы используйте Remote State и State Locking (предотвращает одновременное применение двух планов). Изменения через консоль облака «в обход» Terraform создают «drift» (расхождение между state и реальностью) — обнаруживается через terraform plan.

Другие термины