大约是2021年1月中的样子,开源搜索引擎公司Elastic宣布将其牵头维护的开源软件ElasticSearch和Kibana的许可协议从Apache License V2.0(ALv2)调整为SSPL,这个SSPL和GPL不一样,SSPL主要就是针对云计算服务商的,主要限制是:如果云计算服务商将SSPL许可协议的软件当成线上云服务产品给客户使用,那么云计算服务商不仅要开源期修改的开源代码,还要开源相关的代码,这个对于云计算服务商来说,显然是无法接受的。AWS是ElasticSearch的重度使用者,AWS在2015年10月1日AWS上线了ElasticSearch 服务,此前在2014年就在各项服务,例如CloudWatch、Kinesis等服务中集成了ElasticSearch。那个时代,ElasticSearch大约2.0的样子,2016年开始支持2.3,2017年支持6.0,2018年AWS针对性开发了ES的不停服升级、0-宕机等高级能力。这些能力是否回馈了社区呢,有兴趣的同志可以查找一下。我个人判断,没有都回馈社区 — 未必是不愿意,而是这些代码可能涉及到AWS云管平台的特性,别人也没法用,而且还涉及到一些实现内幕。但是内核部分,AWS回馈了上游ElasticSearch社区[1]。2019年AWS启动了Open Distro for ElasticSearch,在这个新社区中,AWS会发布高级特性,同时会将这些修订优先回馈上游ElasticSearch社区,原因也很清楚,AWS自己也要用!整合到上游,利己利人。
Elastic修改ElasticSearch许可以后,直接导致AWS将其ElasticSearch产品内核锁定在7.10.2版本上(当时AWS已经提供了18个版本的ES服务)。对于AWS来说,被曾经的开源软件限制了自由,这简直就是奇耻大辱!!
一周后(2021年1月21日),AWS发布博客,宣布要发布一个真正开源的ElasticSearch[1]。在这篇文章中,AWS批评了Elastic的SSPL,认为SSPL不是开源(Open Source)许可协议,而是一种貌似开源许可协议的私有协议!这个提法和OSI的提法是一样的,OSI认为SSPL不是开源许可协议,并且已经将其排除在开源许可协议之外,OSI认为SSPL是私有许可协议但是提供了源代码(Source Available)。AWS也嘲笑了Elastic在2018年曾经说会永远保持ElasticSearch采用ALv2协议,结果现在却改主意了!AWS还痛斥了Elastic将修改许可协议归咎到”被AWS逼的“,认为这是Elastic为了自己的利益而采取的商业行动!在同一篇博文中,AWS宣布要发布永远使用ALv2协议的ElasticSearch!
2021年4月12日,AWS正式宣布发布采用ALv2开源许可协议的ElasticSearch和Kibana,但是名字修改为OpenSearch和OpenSearch Dashboard,上述代码都在Github[6/7],我上去看了一下,大约是3月份的时候,AWS就开始陆陆续续上传代码,最新代码是4天前更新,目前fork24,star812。估计目前大家还没有回过神来,未必有人上去贡献代码。网站门户在https://opensearch.org/,可以上去跟踪进展!而且AWS对于OpenSearch这个商标的使用也是很开放的,例如,移动云也可以用OpenSearch这个商标,但是必须要加前缀,例如“移动云OpenSearch产品”等等,也有一些限制[10]。AWS自己也遵守同样的规定。AWS后续计划把AWS ElasticSearch Service产品名称修改为AWS OpenSearch来支持其社区,而且会保持接口后向兼容,线上客户的应用系统不受影响。一些开源和商用社区,Red Hat, SAP, Capital One, 和 Logz.io都宣布支持OpenSearch[2]。
目前看,AWS开源ElasticSearch的行动对社区是一个很大的好消息,毕竟很多希望在线上使用ES的服务商都不喜欢SSPL协议,在大量社区的压力下,同样使用SSPL的MongoDB在2019年宣布撤出向OSI提交的开源许可申请[5]。可见SSPL有多么不得人心!虽然使用SSPL协议的厂商都宣称他们的开源服务被云计算服务商大量使用影响了业务,但是这些厂商忽视了云计算服务商在这些社区也做了大量贡献,如果宣布采用SSPL,那么云计算服务商的产品也难以发展,显然会引发反击!AWS这次的反击就很漂亮,下一个会不会是MongoDB呢?AWS是不会干这事了,等别人吧!
相关信息:
-
Stepping up for a truly open source Elasticsearch:https://aws.amazon.com/cn/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/
-
Introducing OpenSearch:https://aws.amazon.com/cn/blogs/opensource/introducing-opensearch/
-
The SSPL is Not an Open Source License :https://opensource.org/node/1099
- Server Side Public License FAQ:https://www.mongodb.com/licensing/server-side-public-license/faq
- Withdrawing the SSPL from OSI consideration:http://lists.opensource.org/pipermail/license-review_lists.opensource.org/2019-March/003989.html
-
OpenSearch:https://github.com/opensearch-project/OpenSearch
-
OpenSearch Dashboards:https://github.com/opensearch-project/OpenSearch-Dashboards
- https://aws.amazon.com/about-aws/whats-new/2017/12/elasticsearch-6-0-now-available-on-amazon-elasticsearch-service/?nc1=h_ls
- https://opendistro.github.io/for-elasticsearch/
- https://opensearch.org/trademark-usage.html