(Не)коммерческий проект: Redis меняют лицензии, но остаются в open source
Во второй половине августа на сайте Redis Labs, разработчиков одноименного сетевого журналируемого хранилища данных, появился пост, в котором говорилось об изменении лицензионной политики проекта. В сети сразу родилось мнение, что Redis планируют сделать проприетарным продуктом.
Тревога оказалась ложной. Redis останется открытым проектом и продолжит распространяться по лицензии BSD. Однако компания-разработчик все же изменила лицензию для ряда модулей с GNU AGPL на Commons Clause.
Разбираемся, что это значит для Redis и говорим о проблемах коммерциализации открытых проектов в целом.
Что произошло
После появления объявления на сайте Redis о смене лицензии, сообщество начало активно обсуждать ситуацию. И в какой-то момент возникло недопонимание — часть людей решила, что лицензию меняет Redis. Чтобы прояснить ряд моментов, CTO и сооснователь Redis Labs Ифтах Шульман (Yiftach Shoolman) написал от лица компании официальный пост о случившемся.
Там сказано, что Redis остается под оригинальной лицензией — BSD. Порядок лицензирования меняется только для ряда модулей Redis Labs, например, RediSearch, Redis Graph, ReJSON, ReBloom и Redis-ML (всего их около дюжины). Они предлагают расширенные возможности для корпоративных пользователей. Их лицензию изменили с GNU AGPL на Apache 2.0 Commons Clause.
Согласно новым условиям лицензирования, кто угодно может использовать эти модули, соблюдая базовые условия лицензии на свободное ПО Apache License 2.0. Однако продавать модули теперь запрещено — это регулирует Commons Clause.
Иными словами, если приложение использует функциональность модуля или построено поверх него, то ограничений на продажу такого сервиса нет. А вот продавать оригинальный модуль теперь нельзя.
Зачем менять лицензию
Это решение — компромисс в борьбе с перепродажей открытых модулей Redis. По словам Шульмана, ряд сторонних компаний бесплатно пользуются их решениями и перепродают их своим клиентам, но никаким образом не участвуют в развитии сообщества и продукта.
Подобная история происходит со многими открытыми проектами, например, Hadoop и Spark — на их основе множество компаний строит свой бизнес, делая в них лишь незначительные модификации.
Как заявляют в Redis, изменение лицензии позволит авторам гарантировать, что деньги с продажи проектов получат сами разработчики или их спонсоры.
Проблема коммерциализации открытых продуктов
Очевидно, что деньги на разработку open source проектов не берутся из воздуха. Кто-то из разработчиков получает государственные субсидии, например, NASA финансирует проект code.nasa.gov. Кого-то поддерживают коммерческие компании. К примеру, Walmart тратят значительные суммы на финансирование фреймворка Hapi.js. Ритейлер поддерживает разработчика Hapi.js, так как использует его решение для создания своих приложений.
Есть и те, кто решил получать деньги на разработку открытого ПО за счет частичной коммерциализации продуктов, как Redis Labs. И они не единственные, кто пошел по этому пути — по такой модели работают Berkeley DB, Asterisk, Qt и многие другие. Однако мнения сообщества, касательно перевода open source проектов на платную основу, серьезно разнятся.
Мнения против
Решение Redis сменить лицензию для части модулей сообщество встретило в основном негативно. Если взглянуть на треды Hacker News и высказывания разработчиков в тематических блогах, можно выделить ряд общих причин для недовольства.
Первая причина — любая форма коммерциализации ротиворечит принципам опенсорса. Участники обсуждений отмечают, что продукты, использующие лицензии вроде Commons Clause, не имеют права называться открытыми.
Некоторые участники сообщества решили, что Redis Labs променяли ценности open source на деньги. Саймон Фиппс (Simon Phipps), президент организации Open Source Initiative (OSI), даже назвал действия Redis Labs «отказом от свобод программного обеспечения».
Вторая причина — перевод открытых проектов на платную основу грозит разрушить сообщество пользователей, которое формировалось годами. Подобная история произошла с FoundationDB, когда в 2015-м её выкупили Apple. Организация ограничила загрузки мультимодельной СУБД и закрыла все репозитории на GitHub. В результате сообщество, которое собралось вокруг проекта за пять лет, начало распадаться.
Численность сообщества — один из ключевых аспектов выбора продукта для многих компаний. Например, недавно мы в 1cloud выбирали для себя новую систему логирования. Выбор пал на Redis и Logstash, поскольку они обладают обширным комьюнити — это означает подробную документацию, FAQ и «живые» треды на StackOverflow.
Мнения за
Партнер компании Andreessen Horowitz Питер Левин (Peter Levine) заявляет, что любому открытому проекту нужна бизнес-модель. Понятно, что без финансирования он «загнется». У разработчиков может просто не хватить денег на поддержку и масштабирование. Ведь участие в проекте по разработке открытого программного обеспечения — по сути, вторая работа.
Например, один из резидентов Хабра написал для себя библиотеку для организации вебсокет-сервера и «залил» её на GitHub. Вскоре после этого другие пользователи заинтересовались проектом и попросили автора реализовать дополнительную функциональность. Однако самому разработчику хватало того, что уже написано, и развивать проект дальше у него не было желания.
Возможно, коммерциализация продукта помогла бы с его развитием. Например, такая история произошла с nginx. Созданием этого веб-сервера автор занимался в свободное время. Но теперь он на базе своего решения предоставляет коммерческий сервис для клиентов. При этом сам код nginx остается открытым.
Люди, выступающие за частичную коммерциализацию открытых продуктов, также отмечают, что без должного финансирования проект не сможет привлечь хороших разработчиков.
Именно по этой причине в 2009 году закрыли проект Chandler, в рамках которого разрабатывали софт для управления расписанием. Отсутствие финансирования и малое количество контрибьюторов привело к тому, что интерес к программе угас буквально за год.
В качестве положительного кейса в этом случае можно привести ядро Linux. Работа многих разработчиков на проекте полностью или частично финансируется силами компаний вроде RedHat.
Таким образом, разработчики вкладывают свои силы и время в проект, делают его лучше для остальных и этим продлевают ему жизнь. В свою очередь это положительно сказывается на развитии всей open source экосистемы.