Terraform это инструмент инфраструктуры как кода, позволяющий безопасно и эффективно создавать, изменять и версионировать облачные и локальные ресурсы. Terraform позволяет определять облачные и локальные ресурсы в человекочитаемых конфигурационных файлах, которые можно версионировать, повторно и совместно использовать. Затем вы можете использовать последовательный рабочий процесс для обеспечения и управления всей вашей инфраструктурой на протяжении всего ее жизненного цикла. Terraform может управлять низкоуровневыми компонентами, такими как вычислительные ресурсы, ресурсы хранения и сетевые ресурсы, а также высокоуровневыми компонентами, такими как записи DNS и функции SaaS.
Terraform создает и управляет ресурсами на облачных платформах и других сервисах через их интерфейсы прикладного программирования (API). Провайдеры позволяют Terraform работать практически с любой платформой или сервисом с доступным API. Сообщество Terraform уже написали тысячи провайдеров для управления множеством различных типов ресурсов и сервисов. Вы можете найти все публично доступные провайдеры в реестре Terraform, включая Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog и многие другие.
Основной рабочий процесс Terraform состоит из трех этапов:
Найдите в реестре Terraform провайдеров для многих платформ и сервисов, которые вы уже используете. Вы также можете написать свои собственные. Terraform использует неизменяемый подход к инфраструктуре, что снижает сложность обновления или модификации ваших сервисов и инфраструктуры.
Terraform генерирует план и запрашивает ваше одобрение перед модификацией инфраструктуры. Он также отслеживает реальную инфраструктуру в файле состояния, который служит источником подлинности для вашей среды. Terraform использует файл состояния для определения изменений, которые необходимо внести в инфраструктуру, чтобы она соответствовала вашей конфигурации.
Файлы конфигурации Terraform являются декларативными, то есть они описывают конечное состояние вашей инфраструктуры. Вам не нужно писать пошаговые инструкции для создания ресурсов, поскольку Terraform сам обрабатывает заложенную логику. Terraform строит граф ресурсов для определения зависимостей ресурсов и параллельно создает или изменяет независящие ресурсы. Это позволяет Terraform эффективно предоставлять ресурсы.
Terraform поддерживает многократно используемые компоненты конфигурации, называемые модулями, которые определяют настраиваемые наборы инфраструктуры, экономя время и поощряя передовой опыт. Вы можете использовать общедоступные модули из реестра Terraform или написать свои собственные.
Поскольку ваша конфигурация записана в файле, вы можете зафиксировать ее в системе контроля версий (VCS) и использовать Terraform Cloud для эффективного управления рабочими процессами Terraform в командах. Terraform Cloud запускает Terraform в согласованной, надежной среде и обеспечивает безопасный доступ к общему состоянию и секретным данным, контроль доступа на основе ролей, частный реестр для обмена модулями и провайдерами и многое другое.
7 лучших практик использования в системе сборки Jenkins
8323
416