全面解读Redis新协议声明

Redis公司最近在一篇博文中声明他们将修改Redis项目的许可方式,将其从BSD三条款协议修改为RSAL或SSPL的双重协议许可。

这篇文章将对该声明进行翻译,详细解读其中每段文字,并说明它们可能产生的影响。其中的

引用文字

为声明的原文,而其余内容则是我的解读。

许可的变更与选择

从今天开始,Redis未来的所有版本都将通过源码可用许可证发布。

从Redis7.4开始,Redis将采用Redis Source Available License(RSALv2)和Server Side Public License(SSPLv1)双重许可,而不再根据BSD三条款进行分发。

这段话说明Redis从7.4版本开始,将以RSALSSPL双重协议的方式进行许可,开发者可以在这两者中选择其一。

这两个协议的具体条款并不长,大家可以分别去看一下。它们最重要的条款就是限制第三方对Redis的使用,其中RSAL的“限制”一节中说到:

你不得将软件或修改版本的功能作为服务提供给第三方,又或者通过分发软件或修改版本的方式,向第三方提供本软件的功能。

话句话说,采用此协议的开发者不可以将Redis或者Redis的修改版以服务的形式提供给第三方,又或者向第三方分发Redis或者Redis的修改版。前者针对的是云服务供应商,而后者针对的则是Redis的托管服务。

根据这一规则,采用此协议的云服务供应商如果要合法地使用Redis向第三方(也即是它自己的用户)提供服务,又或者向第三方提供Redis托管服务,那么就必须与Redis合作。

另一方面,SSPL协议更晦涩一些,但它最重要的条款不外乎是其中的第13条:

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

换句话说,RSAL不允许你将Redis作为服务提供给第三方,除非你进行付费;而SSPL则允许你使用Redis向第三方提供服务,但要求你将提供此服务的源代码开源。你可以根据自己的情况选择这两个协议的其中一个进行许可。

现在与未来

Redis自诞生之日起,就凭借其出众的性能和简洁性,驱动应用程序和数据基础架构为现代互联网提供动力。

时至今日,在15年后的今天,Redis为全球数以百万计的开发者提供服务,支持全世界都在使用的实时应用程序,我们对此深感自豪。

在此之前,我们已经对Redis Stack发行版中的高级Redis模块实施了双重许可,并且受到了社区的一致好评。

事实上,从Redis 6开始,Redis.io超过50%的下载量都来自Redis Stack。

我们相信,将这种许可扩展至Redis本身,能够为我们的用户提供更全面的数据模型、处理引擎和开发功能。

前面肯定了Redis迄今为止的成功,接着以数据表明Redis Stack占据了Redis.io过半的下载量,说明Redis Stack受到了用户的喜爱,为接下来新版本的合并奠定了基础。最后一句则说明将Redis Stack合并至Redis之后将要带来的变化——更全面的数据模型、处理引擎和更丰富的功能。

新的源码许可证允许我们以可持续的方式提供源码的许可使用。

我们正在带领Redis进入下一个开发阶段,使之成为一个拥有统一客户端、工具和核心Redis产品的实时数据平台。

Redis源代码将以Redis社区版(community edition)的形式继续免费提供给开发者、客户和合作伙伴。

未来的Redis源码将把核心Redis和RedisStack(包含搜索、JSON、矢量、概率和时间序列数据模型)合并为一个免费且易用的可下载软件包。

通过这个软件包,任何人都可以在各种环境中使用Redis,包括作为高性能键值和文档存储、强大的查询引擎以及支撑生成式AI应用的低延迟向量数据库。

这段介绍了新版本Redis源码的开发和分发方式。新的源码将合并现在的Redis和Redis Stack,将其统一为一个可下载的软件包,以便为用户提供更好的服务。

考虑到Redis Stack具有多种高级的数据结构,可以预见,合并Redis Stack之后的新版Redis 8.0将变得更加强大,并且具有更多玩法,这是值得期待的。

矛盾与解决方案

Redis(项目)的成功带来了一系列独特的挑战。

Redis(公司)一直赞助大部分的开发工作,并且(Redis项目本身)也具有一个充满活力并且乐于奉献的开发社区。

然而Redis(项目)的大部分商业销售都是通过大型云服务供应商进行,这些供应商将Redis(公司)以及Redis开源社区的投资商品化。

尽管我们努力支持社区主导的治理模式,并且希望维持BSD许可,但为多个本地和云平台同时交付包括开源版、源码可用版和商业版在内的多种发行版,与我们希望推动Redis在未来取得成功的能力是相悖的。

这里的前面两句点明了Redis公司认为目前的开源模式带来的主要矛盾:Redis公司跟Redis社区一起开发了Redis项目,但是将Redis项目商品化并且赚钱的却是大型云服务供应商。

这就相当于Redis公司和Redis社区给云服务供应商白打工,甚至这些供应商提供的服务还跟Redis公司自身提供的Redis服务形成了竞争关系,而想要摆脱这种困境的其中一种方法就是修改许可协议。

最后一句还解释了Redis公司不愿意继续维持BSD协议的另一个理由——同时开发和维护多个Redis版本太消耗精力了,这种做法无法保证在未来取得成功,必须将多个版本合而为一才能集中精力进行开发。

根据新许可证的规则,托管Redis产品的云服务供应商将不再被允许免费使用Redis的源代码。

比如说,云服务供应商只有在与Redis源码的维护者Redis公司达成许可条款之后,才能(向客户)交付Redis 7.4。

这些协议将支持现有的集成解决方案,并提供即将到来的Redis创新产品的完全访问权限。

这里更是开门见山直接点名云服务供应商,要求他们如果想要使用新版本Redis提供服务的话,那么就必须与Redis公司签订协议并支付费用。

微软开发部门总裁Julia Liuson表示:“我们期待继续合作,为开发者提供最新的数据存储和管理创新支持。”“我们的合作将继续支持诸如Azure Cache for Redis这样的集成解决方案,并将为微软客户提供独家访问Redis产品中扩展功能的机会。”

这里Redis公司列举了微软Azure云作为合作伙伴的例子。不过微软老狐狸还是狡猾,这头说着要和Redis公司继续加深合作,那头就推出了兼容Redis协议(RESP)并且据说性能更为优异的缓存存储项目Garnet,很好奇Redis公司的人看见这个项目会是怎样的表情(笑)!

以往虽然兼容Redis协议的竞品也有很多,但Redis凭借其先发优势还是牢牢占据着领先地位,但现在既然Redis主动放弃开源这一优势,那么像Garnet这类兼容Redis协议的项目将有机会进一步吸引开源青睐者,形成百家争鸣的景象,甚至最终某个项目脱颖而出并且撼动Redis的霸主地位也并非不可能。

与开发者和社区的关系

从实际来说,Redis开发者社区将继续在双重协议下获得许可,此次变动不会给他们造成任何影响。

与此同时,由Redis负责的所有Redis客户端将继续保持开源许可。

Redis将继续支持其庞大的合作伙伴生态体系(包括托管服务提供商和系统集成商),并通过合作伙伴计划,获得对Redis未来开发和交付的所有新版本、新更新和新功能的独家访问权。

这里声明此次许可变化不会对个人用户产生影响,并且再一次明确了,云服务提供商只要参加合作伙伴计划,即可获得对新版本的访问权。

我们的新授权方法在广泛提供Redis源代码、尽可能减少对开发者的限制和保护我们持续地投资以创建功能丰富的免费软件以及商业产品之间取得了绝佳的平衡。

我们的团队、社区、顾客和合作伙伴将一如既往地继续引领创建、发展和部署Redis这一领先的实时数据平台。

如果你还想了解更多信息,那么请阅读下面关于许可证变化的常见问题和解答。

这段结语承诺继续保持源码开放,并与Redis开发者和社区继续共同建设Redis这一平台。


感慨我们又一次站在了理想与现实的分叉口的黄健宏
2024.3.23