ADG Оставить заявку
Блог DevOps 4 мин чтения

HashiCorp переводит Terraform на BSL: что это значит для наших IaC-проектов

HashiCorp меняет лицензию Terraform с MPL на BUSL-1.1. Разбираем лицензионный риск и пересматриваем IaC-стратегию для клиентских проектов.

Контекст момента

HashiCorp объявила о переводе Terraform и других продуктов с MPL-2.0 на Business Source License 1.1 - лицензию, ограничивающую коммерческое использование конкурентами

Новость пришла тихо, но ударила громко: HashiCorp объявила, что переводит Terraform (и заодно Vault, Consul, Nomad, Packer) с Mozilla Public License 2.0 на Business Source License 1.1. Официальная формулировка - «защита от конкурентов, которые зарабатывают на нашем продукте, не вкладываясь в его развитие». Читается понятно: HashiCorp целится в провайдеров managed-услуг, которые продают Terraform-стек клиентам без договора с HashiCorp.

Нас это задело напрямую.

Что такое BUSL-1.1 и почему это не open-source

BUSL-1.1 - не open-source лицензия в понимании OSI. Ключевое ограничение: нельзя использовать продукт для конкурентной коммерческой деятельности. HashiCorp сами пишут, что «production use by competing products or services» требует отдельной коммерческой лицензии.

Где проходит граница «конкурентного использования» - вопрос. HashiCorp дают расплывчатое определение, и это само по себе проблема: правовая неопределённость в инструменте, который у нас стоит в фундаменте десятков инфраструктур. Через четыре года лицензия переходит в MPL - но через четыре года, и до этого момента надо как-то жить.

Для нашей работы по managed-сопровождению картина такая: если мы как интегратор используем Terraform для управления инфраструктурой клиентов на коммерческой основе - HashiCorp считает, что это попадает под ограничения BSL. Не факт, что суд согласится, но мы не в том положении, чтобы проверять это в суде.

Как мы это обнаружили и что сделали в первые дни

Официального анонса ещё не было - пока только слухи и утечки в рассылках. Мы мониторим terraform-рассылки и GitHub, поэтому новость не стала неожиданностью - было время подумать.

Первое что сделали - собрали список всех проектов, где стоит Terraform. Получилось несколько групп:

  • Проекты с Terraform Cloud / Terraform Enterprise. Там уже есть коммерческий договор с HashiCorp - формально чище всего.
  • Проекты с open-source Terraform CLI + собственный backend (S3, PostgreSQL, HTTP). Это основная масса. Именно тут риск наиболее неопределён.
  • Проекты, где Terraform вообще не в продакшне - только в CI для разворачивания стендов. Здесь риск минимальный, но всё равно надо понять позицию HashiCorp.

По каждой группе отдельная оценка. Паники нет, но головная боль есть.

OpenTofu: форк или надежда?

В сообществе почти сразу зашёл разговор о форке. Несколько компаний из экосистемы обсуждают намерение создать open-source альтернативу на базе Terraform до смены лицензии. Называют предварительно OpenTofu.

На текущий момент это больше дискуссия, чем продукт: конкретного репозитория и манифеста пока нет. Мы смотрим на это с осторожным интересом: идея правильная, за ней стоят реальные компании с реальными деньгами, но форки инфраструктурных инструментов - штука нетривиальная. Тут важна не только кодовая база, но и экосистема провайдеров, registry модулей, документация.

Пока что OpenTofu - кандидат для наблюдения, не для немедленного перехода.

Что реально меняем прямо сейчас

Стратегия «подождём и посмотрим» - не наш стиль, когда речь о фундаменте инфраструктуры. Поэтому параллельно с наблюдением за OpenTofu начали несколько конкретных шагов.

Первое - ревизия провайдеров. Большинство Terraform-провайдеров (AWS, GCP, Yandex.Cloud, VK Cloud) пишутся вендорами независимо, и их лицензии не менялись. Переход Terraform на BSL не тянет за собой провайдеры автоматически - это отдельные репозитории.

Второе - оцениваем Pulumi для новых проектов. Pulumi работает с теми же облачными провайдерами, но пишется на Python/Go/TypeScript, а не на HCL. Лицензия - Apache 2.0. Нескольким клиентам, у которых инфраструктура ещё не задеплоена, предложим начать на Pulumi - хотя бы чтобы иметь живой опыт с альтернативой.

Третье - никаких расширений использования Terraform до прояснения ситуации. Новые проекты на Terraform не запускаем, пока нет чёткой позиции либо от HashiCorp (что managed-интеграторы не под удар), либо от юристов.

Системная проблема

Этот кейс вскрыл кое-что важное помимо самого Terraform. У нас нет формального процесса оценки лицензионного риска для ключевых инструментов. Terraform - не первый и явно не последний open-source проект, который перейдёт на ограничительную лицензию при росте коммерческого давления. Redis, Elastic, MongoDB - все уже проходили через это.

Надо формализовать: при выборе инструмента в стек - проверять лицензию, историю смен лицензий, модель монетизации вендора. Не параноидально, но системно. Это часть инфраструктурной гигиены, которой у нас пока нет в явном виде.

Пока итог промежуточный: действующие проекты продолжают работать, новые - пауза. Смотрим на OpenTofu, пробуем Pulumi, ждём официальных разъяснений от HashiCorp. Скорее всего, через месяц-два картина прояснится - в ту или иную сторону.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.