自从Redis更改了许可证以应对云厂商插管吸血以来(云厂商插管吸血,Redis更改许可证),另外一个开源软件MongoDB也决定更改其许可证,以应对云厂商的插管吸血。
和Redis以及其他著名开源项目主要使用Apache的开源协议不同,MongoDB的开源协议是AGPL。这是一种非常不友好的开源协议,比一般的GPL更要求使用者开源。按照道理来说云厂商也是没有办法不开放源代码就使用MongoDB提供服务的。
这次MongoDB新创了一个开原协议SSPL。主要是冲着云厂商去的。SSPL里面特别提到了如下条款:
如果您将某程序的功能或者修改后的版本作为一项服务提供给第三方,必须按照本许可证的条款,通过网络下载向所有人免费提供服务源代码。
这个条款的针对性可谓非常的明确。大家都能看明白主要是针对谁的。
MongoDB是由显示广告创业公司DoubleClick的几个创始人再次创业的10Gen公司开发的文档数据库。10Gen公司成立于2007年,最初的目标是为了做云计算。但是他们没有找到一款合适的产品来做云计算服务,于是他们就先开发这个文档数据库。
MongoDB里面的Mongo按照10Gen公司的说法,是取名于英humongous的中间部分,在英文里是“巨大无比”的意思。所以MongoDB可以翻译成“巨大无比的数据库”,更优雅的叫法是“海量数据库”。
MongoDB以好用的API著名,产品早期性能和功能上都有这样那样的问题,但是架不住好用,所以尽管起起落落,甚至遇到过安全门事件,但是一直都在蓬勃的发展。10Gen公司看到MongoDB势头很猛,也就在2013把自己的公司改名成了MongoDB。之后更是顺利上市了。上市后股票表现的可圈可点。
鉴于MongoDB之前是基于AGPL的。这个协议在开源里并不友好。美国三大云厂商都没有提供基于MongoDB源代码的云服务。亚马逊提供了DynamoDB,但是没有类似MongoDB的文档数据库。微软提供了CosmosDB,这是一个和MongoDB毫无关系的产品。只是在接口上和它做到了兼容。谷歌提供了BigTable,也没有提供类似MongoDB的文档数据库。
连最喜欢搬过来就用的亚马逊也受限于AGPL这个不好的协议,这使得MongoDB成为少数不那么容易被云厂商插管吸血的例子。那么到底是什么导致了MongoDB非要跳出来改协议呢? MongoDB的CEO Dev Ittycheria对中国的阿里巴巴,腾讯以及俄罗斯的Yandex等云服务提供商直接点名。
是的,这次改协议主要是冲着中国的和俄罗斯的云服务商来的。阿里巴巴和腾讯更是因为把AGPL玩出花,就是既提供服务又不开放源代码,所以干脆MongoDB就搞出SSPL来,把云厂商的做法写明了。你要用我的源代码提供云服务,那你改的代码统统都要开源。
MongoDB这样做有意义么?如果在美国,那真的是意义巨大了。打官司估计每个云厂商都赔死。但是即使是老早的AGPL,美国三大云厂商也不想陪MongoDB玩,更何况新的SSPL呢?至于在中国,这个神奇的土地上,AGPL既然没有起作用,我想SSPL估计也不会好到哪里去。MongoDB这种西方公司,对中国文化的了解还是太低了。孔乙己早说过了,窃书不算偷。
MongoDB为什么在这个时间点突然搞这个飞机呢?一方面有人推测MongoDB自己的云托管产品Atlas卖的并不如人意。所以就有危机感了,怕别人白白用了它的源代码盈利。
另外一个层面的解读是MongoDB可能要进军国际市场了。中国和俄罗斯显然是国际市场的排头兵。在进军之前,先把法律层面的东西规范好,也不失为一种好的策略。起码西方人会这么看。
只是我想,在中国,拿着源代码堂而皇之提供服务而不开源的,都是大公司们。对付大公司们,靠改个协议,就能让对方乖乖的停了服务或者贡献出源代码,也太小看中国公司了。
现在这个情况,对MongoDB来说,不上不下,既无法自己以正版的身份服务中国客户,也不能阻止中国的云厂商们插管吸血。为了保护MongoDB的利益,MongoDB公司肯定会进一步采取行动。到时候应该就是一场精彩绝伦的大戏了。但是话说回来,不是我看不起MongoDB ,在祖国马爸爸和小马哥的体量是非常强大的,MongoDB恐怕讨不了太多好处。
【本文为51CTO专栏作者“徐飞”的原创稿件,转载请通过作者微信公众号“飞总聊IT”获取联系和授权】