查看原文
其他

MongoDB 更换开源许可证:剑指阿里云、腾讯云

云头条 2021-05-01

今天,另一个开源数据库的开发商MongoDB计划推出自己的许可证,以处理Redis所提到的这个问题:MongoDB有点恼火,一些云提供商(特别是在亚洲)正在采用其开源代码并向其用户提供其数据库的托管商业版本,而无需使用开源规则。



MongoDB首席执行官戴夫·伊蒂切里亚(Dev Ittycheria)特别提到了阿里巴巴、腾讯和Yandex等云服务提供商。他声称,这些公司简直就是在考验AGPL的边界:一方面受益于别人的工作成果,另一方面却没有共享其代码。


云服务提供商销售托管版本的开源程序(比如Redis和MongoDB数据库服务器软件),“一旦某个开源项目变得备受关注或大受欢迎,云供应商就很容易攫取所有价值,却不给予开源社区任何回报。”


MongoDB现改用一种新的服务器端公共许可证(SSPL),力求堵住基于云的服务带来的缺口。为什么MongoDB需要新的许可证?它是否会避免前阵子Redis Labs改用Commons Clause时引起的骚动?


标准的好处在于有好多厂商可供选择,这句老话很可能适用于开源许可界。几年前WhiteSource Software公司针对十大开源许可证的最近一次调查发现,GPL、MIT和Apache等许可证之间竞争激烈。虽然对商业友好的Apache许可证在大数据平台和AI框架领域占主导地位,但是MIT和GPL(其“反版权”规定要求开发人员向社区回馈所有修改和改进的代码)两大许可证广受欢迎。GPL和AGPL之类的衍生许可证在力求控制自家开源项目(比如MongoDB)的供应商当中很受欢迎。


许可证数量激增带来的难题是,这会增加法律开销,面对下列这种情况时更是如此:新的许可证出现,社区成员必须接受带来的变化(这些变化将影响它们开发和赚钱的方式),同时恪守开源精神。谁想要请更多的律师呢?


当下流行的开源许可证对初创阶段的供应商带来了异常大的影响。正如我们之前指出的那样,“在新兴的技术市场, 开源越来越成为常规,而不是例外。”


那么,如何来解释MongoDB今天宣布将创建一种新的许可证,不是基于它一直使用的AGPL许可证,而是基于GNU-GPL 3.0许可证?下面是受影响的许可证AGPL条款的摘录:


尽管本许可证有其他任何规定,您仍有权将任何适用的代码作品与采用GNU Affero通用公共许可证第3版许可的任何代码作品连接或合并成一个组合的代码作品,并转让因而获得的作品。


SSPL特别提到了基于云的服务提供商,从而改变了这点,修改后条款的摘录如下所示:


如果您将某程序的功能或修改后的版本作为一项服务提供给第三方,必须按照本许可证的条款,通过网络下载向所有人免费提供服务源代码。


很显然,这一变化针对的是将自己的MongoDB托管产品打包成服务的云平台提供商。这意味着是指IBM Cloud、Scalegrid和ObjectRocket,但不是指mLab,因为MongoDB已公开宣布有意收购这家公司。


那么MongoDB如何避免看起来像是坏人?


让时间倒退到几个月前Redis Labs宣布更改许可证。不可否认,这不是针对核心Redis数据库(它继续采用BSD许可证),而是周边的开源模块采用新的Commons Clause。这些模块让你可以处理诸如全文搜索、支持JSON数据类型或构成类似SQL的查询之类的任务。


Redis Labs当时搬出的理由是“今天的云提供商利用了成功的开源项目,将其重新打包成竞争性的专有服务产品,因而一再违反了这个理念。”相比SSPL,Commons Clause更为苛严,摘录如下:


“......根据许可证授予的权利不包括销售软件的权利,许可证也不将这个权利授予您。”


总之,SSPL要求第三方贡献变更的代码,而Commons Clause禁止第三方销售变更的代码。


分析一下背景,Redis Labs面临着事关生存的重大得多的威胁。虽然MongoDB也有云竞争对手将其数据库作为服务来提供,但没有一个是三巨头。没错,亚马逊、微软Azure和谷歌云都提供自己的托管Redis数据库云服务。由于Commons Clause不影响Redis数据库,因此这些云服务不会歇业。在IT外媒TechRepublic上,撰稿人马特•阿赛(Matt Asay)认为此举是个巨大的错误。仅仅一周前,另一家IT外媒ZDnet的撰稿人斯蒂文•J•佛夫-尼科拉斯(Steven J. Vaugh-Nichols)撰文称,开发人员现正在另找变通方法,拿来准Commons Clause 的Redis模块代码,开发出单独的分支(fork)。


正如股价所体现的那样(过去一年几乎翻番),MongoDB并没有受到任何的致命威胁。那么MongoDB如何避免负面新闻呢?首先,它期望将这个许可证提交给开源项目组(OSI),目的是获得社区的批准,成为一项标准许可证。一种愤世嫉俗的观点是,MongoDB进一步夯实其Atlas托管云服务,为此收购了市面上最大的第三方之一mLabs,想要施加压力。


我们对这个新变化有几个异议。首先,为了简单起见,我们倒是希望MongoDB改变其现有的AGPL许可证,而不是采用GPL v3让用户一头雾水。但MongoDB给出了一个充分的理由:现有的AGPL许可证最终证明有点过于复杂。只需仔细阅读以下条款:


尽管本许可证有任何其他规定,如果您修改程序,修改后的版本必须明确让通过计算机网络与之远程交互的所有用户(如果您的版本支持这种交互)有机会获取您版本的相应源代码,通过某种标准或习惯的便于拷贝软件的方式。


我们的第二个异议更事关重大。按照SSPL,将MongoDB作为服务来提供的第三方无法遵循开放核心模式,无法围绕它进行创新或增添价值。按照条款,它们必须免费提供任何相关的非数据库软件。这包括“但不限于管理软件、用户界面、应用程序界面、自动化软件、监控软件、备份软件、存储软件和托管软件”。


这个变化表明了MongoDB的担忧:它面临不公平的竞争环境,因为一些公共云提供商不会将这类相关产品(比如身份和访问管理)的API提供给MongoDB。所以MongoDB在这方面给人的感觉特别苛严。我们倒是希望MongoDB而是要求采取商业安排,比如收取特权使用费,在给开放核心竞争对手生路的同时又给MongoDB一些回报。


因此好消息是,不像Redis Labs的Commons Clause,MongoDB的竞争对手仍可以继续开张营业,但它们无法在不全捐出去或不开源的情况下增添任何价值。我们没预料开源社区张开双臂欢迎SSPL,但确实预料律师们将来会忙碌许多。


云行业交流群欢迎加入,群主微信:aclood(备注任职单位+职位,否则不予通过)


相关阅读:

Redis杀死许可证,闭源的有:RediSearch、Redis Graph、ReJSON、ReBloom、Redis-ML


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存