Amazon выпустила Open Distro for Elasticsearch
Эта статья — обзор новостей о том, как
— Amazon выпустила Open Distro for Elasticsearch
— почему они это сделали?
— что это значит для компании Elastic и для Open Source вообще?
Elastic
Жила была компания Elastic.
Было у них несколько Open Source продуктов:
— Сам Elasticsearch: сервер, который получает, хранит логи и позволяет по ним делать поиск
— Kibana: frontend движок, который берёт данные из Elasticsearch и из них рисует красивые репорты
— ещё несколько утилит, которые собирают логи. Например LogStash
Elasticsearch бывают называют ELK (лось), как акроним основных элементов:
— Elasticsearch
— LogStash
— Kibana
Хотя компоненты «L» и «K» в общем-то можно заменять на другие: Beats, Grafana, …
Ещё у Elastic есть X-Pack.
Это коммерческий продукт. Часть из возможностей X-Pack — платная (довольно дорогая) и часть — бесплатная (но лицензия всё равно коммерческая).
X-Pack расширяет возможности ELK:
— security
— alerting
— monitoring
— reporting
— graph
— …
Причём если не ставить X-Pack, то отсутствуют некоторые довольно существенные возможности. Например, по умолчанию ELK отсутствует аутентификация, то все данные «торчат» наружу. Можно прикрутить обратный прокси и сделать basic authentication (так себе вариант), а можно купить X-Pack.
Ход 1: Elastic хитро меняет лицензию
В июне 2018 Elastic написал статью в духе, что вот мы мол настолько открытые, что теперь даже наш коммерческий X-Pack делаем открытым:
https://www.elastic.co/blog/doubling-down-on-open
Но, народ быстро сообразил, что это подстава:
https://news.ycombinator.com/item? id=16487440
Потому что начиная с версии 6.3 репозиторий для ELK и X-Pack один, а лизенции две:
— для ELK — Apache 2.0
— для X-Pack — коммерческая лицензия. То есть код теперь открытый, но платить надо как и раньше.
И поставив теперь себе ELK вы никогда точно не знаете — у вас Open Source версия или коммерческая?
Когда вы исправляете что-то в ELK и отсылаете PR — это уходит в открытую часть кода или в коммерческую?
То есть Elastic сделала так, что поставить Open Source версию ELK’a стало очень непросто.
И народ стал переживать, что если у вас стоит коммерческая версия Elasticsearch, или Elasticsearch является частью вашего продукта, то может случиться так, что вы будете должны денег.
Хотя некоторые представители Elastic объясняли, что это не так: вот был раньше закрытый коммерческий X-Pack, а теперь есть открытый коммерческий X-Pack — как это может быть хуже?
Для обычных пользователей дело осложнялось ещё тем, что в образы Docker, Elastic включил X-Pack, который работал в Trial-mode (что было не очень очевидно), и через какое-то время отваливался и требовал платить. Да, X-Pack в этих контейнерах можно было не использовать, но те, кто не теме, могли попасться.
А Амазону похоже не понравилось то, что с момента этих изменений, все новые возможности (Index Lifecycle Management, APM UI, Infrastructure and Logs UI, Kibana multi-tenancy, Kibana Canvas) Elastic стал добавлять только под коммерческой лицензией (хотя зачастую бесплатно для пользователей) в которой был прописан запрет использовать эти новые возможности для SaaS предложений, то есть как раз для того, что делал Амазон.
Ход 2: Амазон выпускает Open Distro for Elasticsearch
11 Марта 2019 на блоге AWS вышел анонс Open Distro for Elasticsearch:
https://aws.amazon.com/blogs/aws/new-open-distro-for-elasticsearch/
А также статья в которой они объясняют почему они выпустили Open Distro for Elasticsearch:
https://aws.amazon.com/blogs/opensource/keeping-open-source-open-open-distro-for-elasticsearch/
Суть которой:
— Мы в Амазон любим Open Source и зависим от многих классных Open Source продуктов
— Мы поддерживаем и вкладываемся в Open Source
— Нам не нравится то, что сделали Elastic. Мы попросили их, чтобы они сделали чисто открытую версию Elasticsearch и мы были готовы вложиться, но они отказались
— Поэтому мы выпускаем свою открытую (Apache 2.0) версию которую мы называем Open Distro for Elasticsearch
— И туда мы включаем многие возможности, которые были в платном X-Pack. Такие как security, notifications, SQL, Performance Analyzer и т.д. Всё полностью открыто и бесплатно.
В связи с этим возникает ряд вопросов, на которые они уже приготовили FAQ. Вот эти пара моментов мне показалась важными:
— Open Distro for Elasticsearch — это не форк. Amazon будет контрибутить в Elasticsearch
— Amazon будет стараться не отставать от Elasticsearch: когда Elastic будет выпускать новые версии, то будут выпускаться соответствующие версии Open Distro for Elasticsearch.
Реакция, последствия
С одной стороны, ход Амазона рассматривается, как агрессивный по отношению к Elastic:
— Elastic вкладывается в разработку Elasticsearch, а зарабатывает на этом Amazon: на своём AWS у Амазона есть ряд предложений Elasticsearch.
С другой стороны, Амазон пишет, что Elasticsearch в значительной степени построен на успехе других Open Source продуктов:
— Apache Lucene, который начал развиваться ещё 11 лет до того, как появился Elasticsearch
— Jackson для парсинга JSON
— Netty, как контейнер для веба
— и другие
Если Elastic может зарабатывать на других Open Source продуктах, то почему Amazon не может зарабатывать на Elasticsearch?
Вот тут интересное обсуждение этой новости:
https://news.ycombinator.com/item? id=19359602
Народ пишет, что теперь многие Open Source разработчики дважды подумают:, а стоит ли открывать свой код под открытыми лицензиями, когда есть вот такие примеры того, что другие берут этот код и зарабатывают на этом?
Причём даже модель «open core» не является панацеей, потому что заинтересованная сторона может дописать свой код сверху так, как это сделал Амазон для Elasticsearch.