近期,Elastic开发者向Elasticsearch-py提交了一个PR,增加了一个验证逻辑,限制用户使用Elasticsearch客户端连接到由AWS创建维护的Elasticsearch分支OpenSearch,以及跟AWS相关的Elasticsearch产品和服务。
Elasticsearch是现在的Elastic于2010年首次发布的分布式免费开源搜索和分析引擎,具有快速实时搜索和可靠稳定的特点。因此Elasticsearch凭借自身的优势获得众多企业的青睐,比如Adobe,Cisco,Netflix和Uber等大型企业,亚马逊的AWS云计算服务也使用Elasticsearch用来存储、搜索和分析大数据。
AWS如何解决这次“危机”
面对Elastic的“主动出击”,AWS在官方博客中表示:“因为 Elastic 维护的开源库提供了方便的API接口,所以许多使用 Elasticsearch 和 OpenSearch 的开发人员都依赖于Elastic 维护的开源客户端。但是现在Elastic在其中几个客户端中修改了验证新逻辑,修改后的客户端将无法连接到由 AWS 维护的 Elasticsearch 分支 OpenSearch,以及一些版本较低的 Elasticsearch 开源发行版,或是托管到 AWS Elasticsearch Service 的 Elasticsearch。Elastic公司现在只允许应用程序连接到 Elastic 的商业产品。”
AWS计划将在OpenSearch 项目中添加一组新的开源客户端,使应用程序可以轻松连接到任何 OpenSearch 或 Elasticsearch 集群。这些客户端将允许开发人员继续运行其当前版本的 OpenSearch 或 Elasticsearch。并且只需对用户先前的应用程序代码进行最少的更改,同时新客户端将提供他们与之前版本相同的API 接口和功能。AWS 计划修改的客户端包括:
elasticsearch-py;elasticsearch-java;elasticsearch-net等客户端。
AWS补充到,不建议把 Elastic 维护的客户端更新到最新版本,因为这可能会导致应用程序中断。任何已更新其客户端并遇到问题的人都可以使用 OpenSearch文档说明,解决这些问题。他们预计在OpenSearch GitHub 组织中为每个新客户端库开放存储库。然后,迅速将客户端发布到所有相应的包管理器和存储库。确保开发人员可以轻松访问开源的Elasticsearch、Open Distro for Elasticsearch 和 OpenSearch 客户端库。
如何看待双方纠纷
早在2019年1月21日,AWS曾发布Open Distro for Elasticsearch。Open Distro for Elasticsearch项目是Elasticsearch的增强版本,基于Apache 2.0 100%开源,Open Distro for Elasticsearch包含了Elasticsearch里面的商务付费功能以及Kibana的开源代码。
2021年1月15日,Elastic的创始人Shay Banon官网发文,宣布将更改开源协议,从Elastic 7.11版本开始,Elasticsearch与Kibana代码由原先遵循的 Apache 2.0许可协议调整为SSPL与Elastic License双许可。面对Elastic公司更改开源协议的行为,AWS回应称,Elastic这种做法只是为了自己的利益垄断,而且更改开源协议后的SSPL协议丧失了“开源精神”。AWS这样的说法,也让Elastic的创始人Shay Banon在2021年1月20日官网发文怒怼AWS,他们更改开源协议完全是因为AWS的逼迫不得以而为之,同时指责AWS本身的种种恶行。AWS也回应Elastic公司的声明,否认自己威逼Elastic公司,表示自己一系列做法完全是为了创造一个更好的开源社区,也强调自己的做法得到了很多公司的支持。
对于这次AWS与Elastic的纠纷,有开发者吐槽亚马逊本身就有“不回报开源”这个标签,而且Redis Labs、Confluent 和 MongoDB 这些公司曾经先后修改了开源协议,并明确表示修改的原因,主要为了避免像 AWS 这样的大型云服务提供商将他们的开源软件进行改版与销售。虽然AWS这次努力为OpenSearch打造成一个”完美的”开源社区,也不易改变人们对AWS的传统印象。
依旧有人认为AWS的行为是在“抢劫”开源项目,也有开发者表示,Elasticsearch 属于社区的开源贡献者,Elastic没有权利保留版权,也不应该修改许可协议,他们这样做违背了开源社区的精神。您有什么看法?欢迎留言评论。
小伙伴们,你们怎么看?我发起了一个投票,你们支持谁?
参考链接:
https://aws.amazon.com/cn/blogs/opensource/keeping-clients-of-opensearch-and-elasticsearch-compatible-with-open-source/