InfoQ 推荐 ( ) • 2024-04-17 14:19

Linux 基金会宣布推出Redis开源替代新版本

 

刚刚,Linux 基金会宣布推出Valkey 7.2.5-rc1"候选版本,人们对Valkey作为 Redis 内存中 NoSQL 数据存储的开源替代品的支持不断增加。

 

Valkey 7.2.5-rc1"项目地址:https://github.com/valkey-io/valkey"

 

自3月21日,Redis公司宣布更改开源许可之后,社区里出现了多个Redis分支,如Redict、Valkey等。之前,这些分支都没有明确说明发展方向。开发者如果想在新项目中使用Redis,在当前环境里,很难知道目前哪个选择更有长远意义。

 

而此次Valkey的亮相与其他分支均有所不同,因为其背后是由Redis项目众多核心开发者支持的,且被Linux基金会纳入后已经成功推出了首个兼容候选版本,它将允许现有 Redis 用户轻松迁移到 Valkey,而无需进行向后不兼容的 API 更改。

 

目前,该项目已经组建了一个由几位前 Redis 贡献者组成的技术领导委员会,还有数百名社区成员表达了支持 Valkey 的意愿。此外,该项目也得到了许多云厂商和头部科技公司的支持,支持者包括 Aiven、阿里云、Chainguard、Heroku、华为、Percona 和 Verizon,以及现有合作伙伴 AWS、谷歌云、甲骨文、爱立信和 Snap Inc,并且维护者和贡献者的核心群体也在不断扩大。

 

Linux基金会表示,自 2009 年 Redis 项目成立以来,数千名开源开发人员为其发展和成功做出了重大贡献。为了继续改进这项重要技术并允许不受限制的项目分发,社区创建了 Valkey——一个开源高性能键值存储。社区现已推出 Valkey 7.2.5-rc1,且团队还在开发即将发布的主要版本 Valkey 8.0,其中将包括更可靠的插槽迁移和内存效率改进等新功能。 Valkey 8.0 版本预计将于 2024 年底推出。

 

Valkey 将遵循开放治理模式,保持社区驱动并欢迎所有用户和贡献者。

 

“Valkey 是由长期的 Redis 贡献者和维护者构建的,将该项目掌握在一个基金会而不是一家公司的手中,意味着 Valkey 将由社区驱动,不会出现意外的许可证变更,从而破坏信任和违反开源竞争原则的情况,” Linux 基金会首席技术官 Chris Aniszczyk 于 3 月 27 日表示。

Valkey是什么,又缘何而来?

 

那么,Valkey到底是什么?又缘何而来,为何会脱离Redis转而投向Linux? 这件事要从上个月Redis商业化公司陡然间变更开源许可证说起。

 

2024年3月21日,Redis背后企业Redis的CEO Rowan Trollope宣布,该项目的许可证类型将从原本的BSD开源许可证变更为RSAL v2与SSPL v1双许可证。

 

Redis公司称此番许可证变更主要是为了保护Redis公司的商业利益,防止云厂商利用开源版本支持商业Redis SaaS服务。此类行为在市场上并不少见,Confluence、MongoDB及Elastic等厂商此前已经对其开源项目做了类似的许可证变更,旨在保护自身利益。但Redis公司的这一举动却引发了众多开发者的愤怒,其中一个重要原因就是Redis社区中有着大量外部贡献者。这种单方面修改许可证的行为被视为对社区的背叛,更是对贡献者们的背叛。

 

于是,Redis 的长期维护者 Madelyn Olson决定自立门户,并开始在她自己的 GitHub 帐户中启动了这个名为Valkey的项目。

 

Olson表示,消息传出后,许多当前的 Redis 维护者很快就决定离开Redis转而投向Valkey了。“当消息传出时,每个人都说,‘好吧,我们不会为这个新许可证做出贡献’,所以当我和每个人交谈时,‘嘿,我有一个项目,能让我们这些老朋友继续聚在一起’,”她说,“几乎每个人都说,“是的,我立即加入。”

 

Redis私有频道也就是Valkey有5名核心维护者,其中三名来自Redis公司,另外两名是来自AWS的Olson和阿里云的Zhao Zhao。

云厂商真的在白嫖开源社区吗?

 

那么,到底有谁深入参与了Redis社区的项目贡献?我们引用X-lab开源平台的分析来详说一二。

 

下图为2020年以来Redis每年OpenRank前十大开发成员的贡献分布。可以看到,Redis社区呈现出清晰的多元化趋势。Redis内部开发者的贡献份额从2020年的近80%开始逐年下降,到2024年第一季度,其内部前十大开发成员的贡献比例已经降低至40%以下。与此同时,亚马逊云科技、阿里云、腾讯云、爱立信等众多企业多年来一直深入参与Redis社区贡献,其贡献占比也在逐年递增。

 

图片来源:https://open-digger.x-lab.info/en/blog/redis-analysis"

 

2020年6月底,Redis创始人Salvatore Sanfilippo在博文中宣布,他将辞去Redis社区的维护工作,并将这份职责移交给当时供职于Redis Labs公司的Yossi Gottlieb和Oran Agra。同一时间,这二人也发表博文,表示将启动新的社区治理模式,并与Itamar Haber共同组建了Redis社区的核心开发团队。接下来一个月,来自亚马逊云科技的Madelyn Olson和来自阿里云的Zhao Zhao也加入核心开发团队,且整个阵容直到最近Redis许可证变化之前始终保持稳定。

 

除了前面提到的六位核心开发人员之外,长期参与Redis社区的Zhu Binbin被招揽进腾讯云数据库产品部。而且除Zhao Zhao之外,阿里云还有另外三位开发者出现在历年贡献者前十名榜单当中。总体来看,目前亚马逊云科技、阿里云、谷歌、腾讯云等云厂商共有损害20名开发者长期为Redis社区做出积极贡献。由此看来,云厂商并不是像Redis商业化公司所控诉的那样对于Redis社区只是“白嫖”而无支持和投入,这也与IT行业中“云厂商长期白嫖开源社区”的普遍观点形成了鲜明对比。

 

由于众多云厂商贡献者都参与其中,因此在Redis宣布变更许可证之后,来自亚马逊云科技的Madelyn Olson立即发起了名为Valkey的Redis分叉,并计划将新项目交由Linux基金会托管。谷歌和爱立信也已明确表示支持Valkey社区的发展。

 

来自其他云厂商的开发人员也几乎毫不犹豫,纷纷决定转移至Valkey社区,这是因为Redis的新许可条款直接将云厂商排除在外,阻止他们继续为Redis社区做出贡献。看来Redis明显不想让云势力继续深度参与社区的后续发展。根据多位国内贡献者的反馈,短短一周之内,GitHub redis-committers团队的权限就被撤销,外部committers的repo写入权限及Issue/PR管理权限也被移除。如今,他们在Redis项目中的权限已经与普通用户基本相同。

 

来自阿里云的Zhao Zhao表示,“除了参与Redis社区的具体贡献之外,我们还将云产品中积累下的功能、性能、稳定性、可观察性等修复与改进成果回馈给了社区。凭借云产品丰富的用户基础,我们一直向上游社区传递着大量真实用户需求。我们认为这是我们应尽的责任,也坚信Redis这个蓬勃发展的开源社区值得我们长期维护、为之奋斗。”

 

从数据来看,在2024年Redis的前十大贡献者当中,除了有两位来自Redis公司,其余七名现在都已经投身到Valkey项目的开发当中。这标志着Valkey项目实际上已经建立起新的社区并开始正常运行,而Redis项目将由Redis公司的开发者们继续独立开发和维护。

图片来源:https://open-digger.x-lab.info/en/blog/redis-analysis"

 

再从宏观数据入手,Redis社区最近六个月的OpenRank协作影响力一直保持在80左右;而就在Valkey于3月开源的短短十天之后,其OpenRank就飙升至40左右,达到Redis项目的近一半。而从参与社区的开发者数量来看,Redis长期保持着每月100人左右的规模。在3月份许可证变更事件之后,大量开发者开始参与Redis社区讨论,使得参与人数迅速倍增来到220人。同样是在Valkey开源的十天之后,其参与人数达到146人,甚至盖过了Redis的常规参与水平。

 

这离不开Valkey核心贡献者和头部机构的极大支持。

 

前 Redis 维护者、Valkey 的共同创建者、AWS 首席工程师 Madelyn Olson 称,“我在开源 Redis 上工作了六年,其中四年是推动 Redis 开源直至 7.2 版本的核心团队成员之一。我非常关心开源软件,并希望继续作出贡献。通过组建 Valkey,贡献者可以重拾我们的工作,继续为充满活力的开源社区做出贡献。”

 

前 Redis 核心团队成员、Valkey维护者、阿里云软件工程师Zhao Zhao称:“在过去的七年里,我在 Redis 社区结识了很多朋友,我们都对 Redis 怀有深厚的热情。作为核心团队成员,我不断向社区贡献代码,包括我们平台上的许多关键功能,这就是开源的意义所在。现在,我们启动了 Valkey 来继续这项工作,我们致力于保持开源精神,让社区变得更好,并为用户和开发人员提供良好的体验。”

 

阿里云数据库产品事业部负责人李飞飞博士表示:“很高兴见证新的Valkey社区的成立,也很高兴看到众多Redis社区贡献者齐聚Valkey。阿里云自2017年以来一直持续为Redis项目做出贡献,致力于推动Redis社区更好的发展。展望未来,在 Linux 基金会这样的开放、可持续的环境中,我们期待为 Valkey 项目提供进一步的支持和贡献,也期待 Valkey 成为一个充满活力的项目并蓬勃发展。”

 

可以肯定的是,Redis社区的分裂似乎已经不可逆转。随着Valkey项目被捐赠给Linux基金会,相信未来将会有更多开源开发者参与到Valkey的贡献与开发工作当中。

Redis开源项目并非出自Redis商业化公司

开源项目在接受广大开发者和机构供养的同时,也以开放、共享的原则反哺着更广泛的人群,这本是一种共荣共生的关系,却因为很多复杂的目的变了模样。

 

Valkey成立的起因也是因为Redis商业公司单方面修改许可证惹了众怒,而这家商业公司的迷惑行为不只这一个。

 

这就要从Redis开源项目的历史说起。

 

Redis项目是由意大利开发人员Salvatore “Antirez” Sanfilippo于2009年发布的心血之作。而戏剧性的转折出现在2013年,当时一家名为Garantia Data的小型托管Redis服务商试图将企业更名为“RedisDB”。在遭到Antirez的抵制之后,他们放弃了这一尝试。Garantia Data公司时任CEO Ofer Bengal曾经这样回应:

 

“我们打算将公司名称变更为RedisDB,甚至专为此收购了redisdb.com域名;但考虑到Redis项目创始人Salvatore Sanfillipo的要求,我们决定继续使用Garantia Data。”

‍而到几个月后的2014年,Graantia Data更名为Redis Labs。

 

“这是过去三个月内,该公司第二次表示要变更名称。去年秋季,Garantia曾打算更名为RedisDB,但在开源Redis社区提出反对之后,该公司放弃尝试并继续保留GHarantia名称。而这一次,该公司还是迈出了这步,正式更名为Redis Labs。”

2015年,Redis Labs暨Garantia将Antirez招至麾下,并成为Redis开源项目的官方赞助商。在2020年退出该项目之前,Antirez决定将Redis的知识产权与商标权转让给Garantia。也正因为如此,如今的Garantia才拥有重新许可该项目的合法权利。

 

‍Garantia的名称篡夺计划于2021年终于完成,并立即更名为“Redis”。从那时起,他们开始刻意忽略甚至掩盖这家公司(原名Garantia Data)的这段历史。

 

‍简单来讲,Garantia并不是Redis开源项目的主要创新发展驱动力(不要被贡献代码行数所蒙蔽)。与其他开源项目一样,Redis是社区成员在核心团队的严格指导之下辛勤开发的产物,并不是出自Garantia这家公司。

 

‍Garantia甚至不是Redis市场普及的主要推手,这顶桂冠属于Amazon ElastiCache。通过简化Redis的部署、扩展、复制与监控,ElastiCache服务让更多开发人员接触并喜欢上了Redis项目,开始主动进行大规模采用。当然,ElastiCache借此赚到了丰厚回报,但货币化收益也是他们推动技术主流化并提高其全球品牌知名度所应有的奖励。

 

‍就像如今很多人把现在汽车工业的大规模生产和采用归功于亨利·福特。但实际上,1956年由德怀特·艾森豪威尔 (Dwight Eisenhower) 签署成为法律的美国州际公路系统,真正为这些机动车辆提供了运行所需的广阔道路体系。有了公共设施作为基础,底特律的汽车大厂们才能轻松售出汽车、创造属于汽车的黄金时代,并最终建立起覆盖全球的庞大产业集群。

 

‍Redis就如同一场内燃机革命,而功能齐全的汽车(ElstiCache)与高速公路设施(亚马逊云科技)的普及使其在全球范围内取得了成功。在这个类比案例中,Garantia Data既没有发明汽车、也没有发明发动机,甚至不是第一家汽车制造商。

 

‍Redis的生产化一直是个棘手难题。如果没有先进的编排方案,大型部署体系根本无法稳定维持。而当ElastiCache推出首个主要控制平面时,他们第一次向全世界证明超大规模的部署的实践可行性,并最终启发了Upstash、Dragonfly、KeyDB、Aiven、谷歌MemoryStore甚至是Garanita/Redis Labs自己的各种托管Redis产品。

 

‍随着ElastiCache成功突破大规模Redis部署的极限,该项目团队自然需要处理由此带来的复制、扩展、快照等现实挑战。迄今为止,ElastiCache团队已经投入了超过1000人年的工程师工作时长来开发Redis规模应用。Redis Core当中不少最复杂、最具价值的改进也出自他们之手。

 

最终,这项工作衍生出了ElastiCache Serverless,乃至整个IT行业向无服务器缓存范式的转变。

 

而这一切的一切,如今的Redis商业化公司并未参与。

写在最后

正如OpenRank算法所遵循的基本价值主张,整个世界始终是相互关联且彼此影响的;任何事件不仅会影响其自身,还会波及与之相关的其他部分。正如《2023年中国开源年度报告》所提到,从调查数据来看,2023年9月Unity定价策略的调整直接导致开源游戏引擎godotengine迎来了诞生后的最大规模井喷。该项目已经开源十余年,之前仅有8万stars,但仅2023年9月的新增star数就超过10000,原因当然是游戏开发者抵制Unity的决定并转而支持开源成果。

 

除了催生出新的分叉社区Valkey之外,Redis变更许可证的决定也让很多长期依赖键-值数据库的开发者开始关注与Redis相关的其他开源项目。Apache软件基金会的kvrocks就是其中之一。与Redis的内存内键-值数据库定位不同,kvrocks是一套基于磁盘的键-值数据库。如下图所示,kvrocks在今年3月份的各项指标均出现显著增长,具体原因很可能与其基金会托管项目的身份有关。在这样一个开源项目背后企业可以随时绕过既定社区规则、单方面变更许可证的时代,由基金会托管的项目可能会给开发者群体带来更强的安全感。

 

图片来源:https://open-digger.x-lab.info/en/blog/redis-analysis"

 

过去几年来,云厂商“白嫖”开源项目的作法一直受到广大开源开发者的唾弃,但批评之下变化正在悄然发生。越来越多的云厂商意识到社区的重要性,也愿意将员工甚至是各种物资投入到自身所依赖的开源社区当中,以确保自己的云服务能够与上游资源更好地保持协同、顺畅发展。开源领域中行之有效的贡献与影响力评估机制,已经成为更健康、更高效协作机制的必要前提。未来,相信开源社区的上下游间将进一步加强协作,创造出各方共赢的积极局面。

 

参考链接:

 

https://open-digger.x-lab.info/en/blog/redis-analysis"

https://www.researchgate.net/publication/376686121_OpenRank_Leaderboard_Motivating_Open_Source_Collaborations_Through_Social_Network_Evaluation_in_Alibaba"

https://www.linuxfoundation.org/press/valkey-community-announces-release-candidate-amid-growing-support-for-open-source-data-store"

https://www.thestack.technology/redis-fork-valkey-linux-foundation/"