![](https://habrastorage.org/getpro/habr/upload_files/659/ff1/f9a/659ff1f9ae5633cf3ce5ed58a9eb22de.jpg)
В начале 2010-х годов системные администраторы часто сталкивались с проблемой управления распределенной инфраструктурой. Возникла потребность в унифицированном инструменте для управления инфраструктурой как кодом.
В 2014 году компания HashiCorp создала оpen source проект Terraform. С момента запуска Terraform получил огромную популярность и сегодня остается одним из самых востребованных инструментов для реализации подхода Infrastructure as Code.
В прошлом году HashiCorp перешла с open source лицензии MPL на более закрытые условия распространения программного обеспечения, в частности — лицензию BSL.
Разбираемся, что к чему, как реагирует сообщество, и на что обратить внимание компаниям с точки зрения стратегического развития своих ИТ-продуктов.
Infrastructure as Code: почему это важно
IaC позволяет использовать код для автоматизации создания и управления инфраструктурой, такой как виртуальные машины, сети, контейнеры и т. д.
Изменения в инфраструктуре за счет IaC реализуются быстрее и надежнее — в основном без ручного вмешательства.
Эта методология приобретает все большую популярность в индустрии. Так, о подходе IaC эксперты CloudMTS уже рассказывают студентам.
Есть множество инструментов для реализации подхода Infrastructure as Code: Terraform, Ansible, Chef, Puppet, Crossplane. Все они решают разные задачи и могут использоваться как вместе, так и по отдельности.
В этой статье мы говорим в основном о Terraform, но вообще в практике не меньшую роль играет Ansible. Хотя Ansible можно использовать для развертывания определенной инфраструктуры, в основном этот инструмент предназначен для настройки серверов с нужным ПО и обновления уже настроенных ресурсов. Ansible хорошо работает в связке с Terraform, но он предназначен для решения другого типа задач. Более подробно об этом инструменте можно прочитать в следующих статьях:
IaC имеет множество преимуществ, однако существует несколько рисков безопасности, которые нужно учитывать в работе. Подробнее об этом мы рассказывали в статье «Почему сканирование шаблонов IaC так важно».
Ситуация с лицензиями: от MPL к BSL
IaC популярен не в последнюю очередь из-за open source ПО. Так, HashiCorp открыто распространяла свои решения для управления ИТ-инфраструктурой более десятилетия и главным образом зарабатывала на подписных сервисах и технической поддержке.
Однако ситуация изменилась. Итак, Terraform чаще всего используют для развертывания инфраструктуры. В августе прошлого года его лицензию сменили — с Mozilla Public License 2.0 (MPL 2.0) на Business Source License (BSL). Теперь требования лицензии приходится учитывать при дальнейшей разработке — либо же заменять ПО в своем стеке на альтернативные open source решения.
По условиям новой лицензии пользователи ключевых продуктов HashiCorp (Terraform, Vault и др.), а также независимые разработчики не смогут интегрировать инструменты компании в производные сервисы, «конкурирующие» с решениями предприятия. Кроме того, не допускаются модификации BSL-кода для распространения в измененном формате лицензирования (например, Apache или MPL).
Поиск альтернативы: первый форк
Практически через пару недель после изменения лицензии вышел форк Terraform — OpenTF. Дело в том, что BSL не запрещает использовать инструменты HashiCorp для разработки альтернативных средств. Первый выпуск базируется на ветке Terraform 1.6, поддерживает все имеющиеся возможности и содержит некоторые дополнительные исправления и улучшения, нацеленные на усиление безопасности.
Уже в сентябре проект OpenTF публично поддержали в Linux Foundation. Сама организация взяла на себя дальнейшее развитие инструмента. Параллельно форк Terraform переименовали в OpenTofu. У инициативы уже есть отдельная страница, на которой её авторы собрали информацию обо всех специалистах и организациях, решивших поддержать разработку. В список уже вошли 158 компаний, 11 проектов и 781 разработчик.
В декабре авторы OpenTofu также запустили аналог Terraform Registry на GitHub — он представляет собой реестр совместимых с инструментом провайдеров и модулей. Уже в январе вышла первая общедоступная версия OpenTofu. Разработчики также выпустили отдельное руководство по переходу на форк с Terraform. Пока OpenTofu не особо отличается от Terraform, но проект планируют развивать. Первое в списке грядущих улучшений — шифрование на стороне клиента.
Заметим, что энтузиасты из проекта OpenTofu совместно со специалистами IBM объявили о запуске ещё одного форка продукта HashiCorp. На этот раз им оказалось хранилище секретов Vault (его используют для управления и распространения сертификатов, API-токенов, паролей и не только). Форк получил название OpenBao, и его первую сборку уже можно найти на GitHub. Идея OpenBao, как и в случае с OpenTofu, заключается в распространении и дальнейшем развитии инструмента по условиям MPL 2.0.
Pulumi
Pulumi — известный (более 18 000 звезд на GitHub) открытый проект. Эксперты считают его одной из возможных альтернатив для Terraform (хотя Pulumi не подходит для работы на bare-metal серверах).
Одним из ключевых преимуществ Pulumi является возможность использования знакомых языков программирования, таких как JavaScript, TypeScript, Python или Go, что делает разработку и управление инфраструктурой более интуитивной и удобной для разработчиков.
Crossplane
Crossplane — открытая мультиоблачная платформа для управления нагрузками. Она позволяет переносить приложения между несколькими облачными средами и не зависит от типов используемых кластеров и библиотек. Платформа помогает разграничить обязанности разработчиков и администраторов, при этом следит за устойчивостью сервисов.
Архитектура платформы основана на модели распределения ресурсов, которую использует Kubernetes. Crossplane преобразует ресурсы облака в объекты кластера Kubernetes. В целом можно сказать, что Crossplane — гибрид Kubernetes и Terraform. Отличие Crossplane в том, что в этой платформе все конфигурационные файлы собраны в одном месте.
Чтобы познакомиться с платформой на практике, авторы предлагают запустить Wordpress-приложение с помощью руководства в блоге сообщества.
Заключение
Облако разными способами помогает сократить time-to-market продукта и обеспечить безопасность данных, но главное, что получают разработчики — набор виртуальных ресурсов, где можно разместить среды разработки, тестовые среды, необходимое ПО и так далее.
Покупать и поддерживать собственные серверы — дорого и трудозатратно. Аренда виртуальной инфраструктуры обойдется дешевле, чем закупка серверов и лицензий. К тому же, использование облачных ресурсов полностью освобождает от необходимости администрирования и модернизации аппаратной части — об этом позаботятся сотрудники провайдера, у которого вы арендуете виртуальную инфраструктуру.
Готовая виртуальная инфраструктура подходит для решения различных задач, связанных с разработкой digital-продуктов и приложений:
разработка и тестирование в облаке;
размещение приложений (включая высоконагруженные и критически важные бизнес-приложения);
повышение отказоустойчивости и многое другое.
Для быстрого старта CloudMTS поддерживает новых клиентов грантами до 500 тыс. руб.