Elastic 和 AWS 就开源协议的争议,再次升级了。
早在 1 月 15 日,Elastic 在官网发文称将对 Elasticsearch 和 Kibana 在许可证方面进行了重大的更改,由开源 Apache 2.0 许可证改为采用 SSPL(服务器端公共许可证)。
对此,Elastic 公司 CEO Shay Banon 给出的理由是:“之所以做出这一决定,主要原因是为了阻止云厂商的「白嫖」。”
Elastic 在官方声明中表示,变更确保了他们的社区和客户可以自由开放地使用、修改、重新发布和协作代码。它还通过限制云服务提供商在没有回馈的情况下将 Elasticsearch 和 Kibana 作为一项服务提供给用户,来保护他们在开发免费和开放的产品方面的持续投资。
对于 Elastic 的这一决策,AWS 作为云厂商的代表率先给出了自身的态度 —— Elastic 正在破坏开放源代码本身的定义,而 AWS 将加紧创建和维护由开源 Elasticsearch 和 Kibana 获得 Apache许可2.0版(ALv2)许可的分支。
一、Elastic 为什么要修改开源协议?
计算机技术进入云时代后,与云平台的争端成为了开源软件业务无法逃避的一个难题。
这背后的原因,是云厂商通过打包这些产品进行基于云的 SaaS 服务,对这些公司形成了直接的竞争,「挪用」了本来可以重新投入到产品中的资金,损害了用户和社区的利益。类似于 MongoDB 、 Redis Labs 和 Confluent 等公司为了防止竞争不得不选择更改了软件许可证,从原来的开源许可证转向更严格的条款,限制了软件的功能。
虽然每家开源公司都采取了不同的方法来解决这个问题,但他们一般都修改了开源许可证,以保护他们在自由软件上的投资,同时努力维护开放、透明和协作的原则。同样,Elastic 也是对他们的源代码以授权的方式进行针对性的修改。
二、来自云厂商的质疑
虽然 Elastic 表示这一改变不会影响绝大多数用户,但这种做法在某种层面上「背离了开源之路」。
AWS 于今天发布的公开信中表示,“Elastic 认为 SSPL 是‘自由开放’的说法具有误导性和错误性。他们试图宣称开放源代码的好处,同时破坏开放源代码本身的定义。”
SSPL 是一种非开放源代码许可证,但其的一些设定却让它看起来更像一种开放源代码许可证,这模糊了两者之间的界限。
而 AWS 之所以提出自身的质疑,还有一个很重要的原因是“2018 年 4 月当 Elastic 将其专有许可软件与 ALv2 代码混合在一起时,给出了开源的承诺,但现在‘情况已经改变’。”
同时 AWS 也指出,Elastic 试图通过限制许可将使其他人无法提供托管的 Elasticsearch 服务,从而建立更大的业务。虽然 Elastic 有权更改其许可证,但他们也不应推翻此前的承诺。
三、Elastic 用户,走向何方?
AWS 对 Elastic 的质疑,可以追溯到 2019 年 3 月份。当时 AWS 就宣布了 Elasticsearch 公开发行版。然而,该版本并没有得到所有社区成员的支持。虽然 AWS 表示,他们发布公开发行版是为了确保 Elasticsearch 保持完全开源,但技术社区的其他成员对此大部分持保留意见。
AppsFlyer 开发人员关系负责人 Sharone Zitzman 在当时对 AWS 宣示决定的方式提出了批评。她表示:
向一家充满活力并深深扎根于 OSS 价值观之中的开源公司鼓吹开源 —— 该公司对其盈利和维护一流产品的需求是完全透明的,而对其可靠性提出可疑的断言是非常虚伪的。这是亚马逊看到别人闪亮的玩具,想要得到它。这就是分叉。
Chef 的首席技术官 Adam Jacob 则认为 AWS 的这一举措总体上是对开源软件的积极举措。他解释说,主要赢家是自由软件的价值观:
我百分之百确定:这不是开源的失败。这是关于开源和自由软件的最深刻、最基本的事实。你,作为一个用户,有权利。这些权利延伸到所有人,包括 AWS —— 要不,它们就根本不会存在。
而这次 Elastic 做出这一决定后,不知道社区成员以及开源社区用户,将持何种观点、做出何种选择。