Что такое Terraform?
7682

Что такое Terraform?


Terraform это инструмент инфраструктуры как кода, позволяющий безопасно и эффективно создавать, изменять и версионировать облачные и локальные ресурсы. Terraform позволяет определять облачные и локальные ресурсы в человекочитаемых конфигурационных файлах, которые можно версионировать, повторно и совместно использовать. Затем вы можете использовать последовательный рабочий процесс для обеспечения и управления всей вашей инфраструктурой на протяжении всего ее жизненного цикла. Terraform может управлять низкоуровневыми компонентами, такими как вычислительные ресурсы, ресурсы хранения и сетевые ресурсы, а также высокоуровневыми компонентами, такими как записи DNS и функции SaaS.

Как работает Terraform?


Terraform создает и управляет ресурсами на облачных платформах и других сервисах через их интерфейсы прикладного программирования (API). Провайдеры позволяют Terraform работать практически с любой платформой или сервисом с доступным API. Сообщество Terraform уже написали тысячи провайдеров для управления множеством различных типов ресурсов и сервисов. Вы можете найти все публично доступные провайдеры в реестре Terraform, включая Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog и многие другие.

Основной рабочий процесс Terraform состоит из трех этапов:

  • Запись: вы определяете ресурсы, которые могут находиться у нескольких облачных провайдеров и служб. Например, можно создать конфигурацию для развертывания приложения на виртуальных машинах в сети Virtual Private Cloud (VPC) с группами безопасности и балансировщиком нагрузки.
  • Планирование: Terraform создает план выполнения, описывающий инфраструктуру, которую он будет создавать, обновлять или удалять на основе существующей инфраструктуры и вашей конфигурации.
  • Примение: после утверждения Terraform выполняет предложенные операции в правильном порядке, соблюдая все ресурсные зависимости. Например, если вы обновляете свойства VPC и изменяете количество виртуальных машин в этом VPC, Terraform заново создаст VPC перед масштабированием виртуальных машин.

Преимущества использования Terraform


Управление любой инфраструктурой

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

Возможность отслеживать свою инфраструктуру

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

Автоматизация изменений

Файлы конфигурации Terraform являются декларативными, то есть они описывают конечное состояние вашей инфраструктуры. Вам не нужно писать пошаговые инструкции для создания ресурсов, поскольку Terraform сам обрабатывает заложенную логику. Terraform строит граф ресурсов для определения зависимостей ресурсов и параллельно создает или изменяет независящие ресурсы. Это позволяет Terraform эффективно предоставлять ресурсы.

Стандартизация конфигураций

Terraform поддерживает многократно используемые компоненты конфигурации, называемые модулями, которые определяют настраиваемые наборы инфраструктуры, экономя время и поощряя передовой опыт. Вы можете использовать общедоступные модули из реестра Terraform или написать свои собственные.

Возможность командной работы

Поскольку ваша конфигурация записана в файле, вы можете зафиксировать ее в системе контроля версий (VCS) и использовать Terraform Cloud для эффективного управления рабочими процессами Terraform в командах. Terraform Cloud запускает Terraform в согласованной, надежной среде и обеспечивает безопасный доступ к общему состоянию и секретным данным, контроль доступа на основе ролей, частный реестр для обмена модулями и провайдерами и многое другое.

Получать оповещения о новых статьях:


Не нашли нужную статью? Предложите свою тему