替代 Redis 的一场赛跑,刚刚 Linux 基金会宣布了“赢家”

替代 Redis 的一场赛跑,刚刚 Linux 基金会宣布了“赢家”
2024年04月17日 13:02 InfoQ

整理|冬梅、核子可乐

在云厂商眼里,Redis 犹如抢劫犯一样夺走了他们为开放社区做贡献的权利,而在 Redis 商业公司看来,这些云厂商们正不断从他们这里白嫖更多代码和资源。

1

Linux 基金会正式宣布推出 Redis 分支 Valkey 新版本  

刚刚,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 日表示。

2

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。

3

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

那么,到底有谁深入参与了 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 的贡献与开发工作当中。

4

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 商业化公司并未参与。

5

写在最后

正如 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

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

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部