Итак, вы, возможно, слышали об этой терраформе, но вы не совсем уверены, что это, верно? Не бояться, мы вас покрыли …
Сегодня мы собираемся погрузиться в то, что такое Terraform, почему это полезно, как он сравнивается с другими инструментами, и некоторые из трудностей его использования.
К концу этой статьи вы поймете, что такое Terraform, почему это полезно и для чего вы бы ее использовали.
Что такое терраформ?
Terraform-это инфраструктура на основе CLI в качестве инструмента кода, созданный Hashicorp. Terraform является облачным агностиком и работает по всему Основные облачные провайдеры : AWS , GCP и Лазур. Не путать с Terraform Cloud , который является оплачиваемым решением Hashicorp для Terraform.
Terraform использует «поставщиков» для интеграции с различными услугами. Много поставщики Уже существуют для центральных вариантов использования Terraform (обычно облачные приложения). Terraform также имеет несколько менее известных поставщиков, которые позволяют другим популярным поставщикам, таким как Полоса и Auth0 быть управляемым в Terraform.
Почему терраформ полезен
Логотип терраформ
Чтобы понять, почему Terraform полезен, мы должны понимать принципы инфраструктуры в качестве кода. Инфраструктура как код слишком велика в теме, чтобы освещать только в этой статье. Итак, давайте сделаем очень быстрый тур по вихре …
Давайте начнем с анти-тезиса инфраструктуре в качестве кода: вручную создавать и обновить вашу инфраструктуру. Когда инфраструктура создается вручную, знания заканчиваются в ловушке главы отдельных лиц, а будущие обновления страшны, неповторимы, трудные и незарегистрированные.
Но именно здесь может помочь инфраструктура как код. Хранив конфигурации инфраструктуры в коде и не внося изменения вручную, инженеры могут применять процессы, такие как проверка кода, в их изменениях инфраструктуры. Кодекс действует как документация и становится историей изменений.
Terraform — это инструмент, помогающий реализовать инфраструктуру в качестве кода, и, следовательно, преимущества Terraform являются несколько синонимичными. С помощью Terraform вы можете хранить конфигурации в управлении версиями, вы можете безопасно и повторяете изменения.
Для получения дополнительной информации об инфраструктуре в качестве кода, посмотрите: Инфраструктура как код: Ultimate Guide
Как работает Terraform
Итак, мы обсудили преимущества Terraform, но как это на самом деле работает? Как выглядит работа с Terraform? Давайте посмотрим на это сейчас …
Terraform работает, написав конфигурации ресурсов в Hcl (Язык терраформ). Эти ресурсные блоки определяются поставщиком, но все они соответствуют тем же закономерникам и структуре.
Когда конфигурация записана, инженер будет Exeucte A План терраформ командование План Terraform — это, по сути, сухой пробег, который показывает изменения, которые будут внесены, если изменения действительно будут применены.
Как только инженер довольна изменениями, они запускают Терраформ применить командовать, чтобы совершить изменения. Terraform применяется, затем запускает базового поставщика и начинает создавать, обновлять или удалять ресурсы инфраструктуры.
Пример использования случаев терраформ
Хорошо, пока наши описания были абстрактными. Чтобы сделать вещи более конкретными, давайте посмотрим на некоторые реальные примеры вещей, которые вы можете построить с помощью Terraform, и как это выглядит в действительности.
Развертывание веб -сайта на AWS
Логотип AWS
Развертывание веб -сайта на AWS — Terraform можно использовать для создания облачных ресурсов, таких как основные (или сложные) веб -сайты на AWS. Вы можете сделать это, создав ведро S3 с Terraform, как …
Создание сетевой инфраструктуры на GCP
Логотип GCP
Создание сетевой инфраструктуры на GCP — Terraform можно использовать для создания основной инфраструктуры на GCP. Terraform можно использовать для создания дополнительных приложений или услуг на этой основной платформе. Вы можете сделать это, используя поставщика GCP для создания необходимых сетевых компонентов, таких как …
Создание среды Heroku
Героку логотип
Создание среда Heroku -Terraform можно использовать для создания среды по требованию в Heroku. Вы можете сделать это через провайдера Heroku, как …
Terraform против других инструментов
Существует много различных инфраструктуры в качестве инструментов кода, которые существуют. Так что, естественно, вам может быть интересно, как сравнивается терраформ и когда вам следует использовать каждый? Давайте кратко рассмотрим, как Terraform сравнивается как с облачными альтернативами, так и с инструментами управления конфигурацией.
Облачные инструменты (например, CloudFormation)
Большинство крупных облачных провайдеров имеют свою собственную инфраструктуру в качестве инструмента кода. В AWS это Cloudformation Анкет На первый взгляд Cloudformation может показаться очень похожим на Terraform. Так что же отличает их?
Во -первых, Terraform отличается тем, что он является открытым исходным кодом и облачным агностиком. Из -за того, что терраформ не связан с каким -либо данным поставщиком, означает, что технология и навыки терраформы могут использоваться на многих различных платформах, а несколько инструментов не требуются, а навыки не должны быть изучены.
Вторая большая разница заключается в особенностях Terraforms (в частности, языковой терраформ написан в HCL), которые можно считать довольно запатентованным и поддерживаемым крупным и восторженным сообществом с открытым исходным кодом.
Шеф -повар, марионетка, Ansible, SaltStack
Ansible логотип
Такие инструменты, как Chef, Puppet и Ansible, используются в основном для управления конфигурацией (обычно применяются к уже существующей инфраструктуре). Принимая во внимание, что Terraform предназначен для создания, редактирования и уничтожения ресурсов.
Тем не менее, Terraform можно использовать вместе с инструментами управления конфигурацией. Например, Terraform может установить инструменты управления конфигурацией на ресурсы, чтобы инструменты могли использоваться в тандеме.
Трудности с Terraform
Надеемся, что к настоящему времени вы лучше понимаете, что такое Terraform. Тем не менее, я осознаю, что не дал вам полную картину, если мы также не обсудим трудности в использовании Terraform. Давайте рассмотрим это сейчас …
Сложность 1: управление неудачными командами
Terraform основан на CLI, что означает, что для запуска Terraform вы должны выполнять команды либо на своей собственной машине, либо на сервере. Но управление командами может быть затруднено, в частности, если команда не выполняет неполный результат в результате исполнения, это может поместить терраформ в неизвестное состояние, что может быть болью для отладка и отмены.
Для сравнения, управляемые услуги, такие как Cloudformation Не страдайте от той же проблемы с исполнением. Но почему? Потому что команды CloudFormation выполняются на хостированных службах (не на вашей машине). Это означает, что, работая на хост-услугах, управляемые услуги обеспечивают доступность и неисправность, которую не может гарантировать Terraform (CLI).
Сложность 2: Настройка файлов штата Terraform
Terraform работает, поддерживая файл штата . Файл состояния обновляется, когда выполняется любая команда, которые изменяют предоставленные ресурсы. Государственный файл помогает Terraform понимать зависимости и соединить реальную инфраструктуру.
Но настройка файла состояния может быть скромной. Если вы храните файл штата в контроле версий, вы рискуете разоблачить секреты и создавать уязвимость безопасности.
Однако существует решение о том, как и где вы должны хранить файлы состояния Terraform, и это использует функцию Terraform Бэкэнды, Проблема в том, что настройка бэкэнда не является совершенно прямым начинанием.
На самом деле, настройка бэкэндов не так уж и плоха (когда вы привыкли к этому), но это представляет препятствие для тех, кто новичок в Terraform. Отсутствие понимания обычно приводит к ошибкам, что в этом случае может быть некоторыми болезненными проблемами безопасности.
Для получения более подробной информации о файлах состояния Terraform и их управлении, посмотрите: Должны ли вы совершить файл Terraform .tfstate в GIT?
В двух словах
И это завершает наш взгляд на терраформ. Надеюсь, теперь у вас есть лучшее представление о том, что такое Terraform и почему вы можете подумать о том, чтобы использовать его.
Лучший способ оценить инструмент — это получить в свои руки. Поэтому я предлагаю экспериментировать с Terraform в качестве следующего шага вашего расследования.
Говорите вскоре друзья -коренные друзья!
Пост Что такое терраформ? Простое определение. появился первым на Dev Coach Анкет
Лу является редактором Облачная новостная рассылка по разработке программного обеспечения Информационный бюллетень, посвященный обеспечению более доступной и простой для понимания облачного программного обеспечения. Каждый месяц вы получаете переваривание наилучшего контента для облачных инженеров -программистов, находящихся в своем ящике.
Оригинал: «https://dev.to/loujaybee/what-is-terraform-a-simple-definition-203h»