写点什么

开源 Redis 的生命将就此终结?Redis 之父回应分叉浪潮:未来谁能领先,各凭本事!

  • 2024-03-26
    北京
  • 本文字数:4445 字

    阅读完需:约 15 分钟

大小:2.06M时长:12:00
开源Redis的生命将就此终结?Redis 之父回应分叉浪潮:未来谁能领先,各凭本事!

Redis 已经决定放弃开源 BSD 许可证,转而采用 MongoDB 建立的限制性更强的 SSPL 许可证。此举无疑将对下游开发人员产生重大影响。

 

一天之内,多名核心贡献者宣布退出该项目,同时 Redis 项目也迎来了多个新分叉。

 

很多争议也许在于 Redis 违背了其始终保持 BSD 的承诺。

 


曾做出承诺的 Redis 作者 Antirez(Salvatore Sanfilippo)对此表示他并不知情,但也能理解许可证的更改。

 

“由于我已经离开四年了,对于当初的承诺没有兑现这一点我就不予置评了。但我认为,在商界,有时随着形势的变化,或者由于政府不太可能在短期内采取纠正垄断地位的措施,一些改变就或多或少地变得不可避免。这只是我的一点猜测,因为在我还在公司的时候,我就很少参与业务方面的工作,现在更是完全没有参与。但事实是,许多开源项目都需要一个接一个地走上这条道路。因此,我认为更重要的是理解他们为什么要承担更改许可的风险,是什么样的条件导致了这样一个奇怪的事实,即开发中的主要参与者只拿很少的一部分收益。”

 

对于目前出现的分叉项目,Antirez 也在 Reddit 上进行了评论:

 

“当我退出 Redis 项目后,我正式将其交给了由 Redis Inc. 组成的核心团队(其中包括 3 名来自 Redis Labs 的程序员、1 名来自 AWS 的程序员和 1 名来自阿里巴巴的程序员)。在我看来:根据 BSD 许可证,任何第三方都可以对 Redis 进行分叉、更改名称,并以不同的发展方向和目标继续该项目。”

 

“使用 BSD 许可证的代码是公共资源,任何人都可以在此基础上进行创新和开拓新的方向。”

 

“一个 BSD 项目可能会出现许多衍生版本(甚至使用不同的许可证),并在用户群的‘市场’中同时竞争。谁能做出更好的开发,谁就将引领这场竞赛。”

 

“品牌很重要,但这并不是可口可乐,我们也不是单纯的消费者。我认为最终的赢家是能够提供卓越技术和适合的许可证的项目。”

 

早在 2018 年,开源 Redis 在 Docker Hub 上的下载量就超过了 10 亿次,并被深深嵌入到全球项目和基础设施当中,是一款被数百万开发者用于缓存和文档数据库的内存内数据存储方案。无论用户对此有何看法,这次许可证变更都将给 Redis 的前途命运带来深远影响。

 

Redis 新许可:在社区中掀起巨大波澜

 

根据 3 月 20 号的最新公告,Redis 未来的所有版本(「从即日起」)将“采取 Redis 源代码可用许可证与 MongoDB 的服务器端公共许可证的双重约束”。业界普遍认为 SSPL 不属于开源许可证,其中的条款限制更为严格,可能对相关软件产生“病毒式”影响。

 


“Redis 不再开源了吗?他们放弃了自己的核心价值观。”“也很不幸;Redis 没有续集了。”

 

此次调整,宣告着 2022 年 11 月 15 日起付费 Redis Stack 的默认二进制发行版以及此前免费开源提供的 BSD 版 Redis 核心将正式迎来一波许可结构变更。(Redis 公司 CEO 很快在问题解答与博文当中澄清了此次变更,强调「对于 Redis 商业客户来说,许可证变更不会造成任何影响。这部分客户将根据单独的协商许可条款继续使用我们的技术。」)

 

亚马逊云科技工程师 Madelyn Olson 迅速反应,表示自己将不再参与社区贡献:“这是一段有趣的旅程,但我很遗憾自己将告别这一切。”她在 X 上发帖表示,“亚马逊云科技在过去六年间一直为我的开源 Redis 的贡献提供一定支持,我们还得到了其他云服务商的实质赞助……”

 


已经将 OSS Redis 内置在产品中的开发人员,现在需要:1)维持当前 Redis 版本不变,停止更新即将发布的后续版本;2)让自己的产品采用 SSPL 许可证;或者 3)将 Redis 替换为 Dragonfly 或微软最近发布的 Garnet。

 

这次变动也必然会对更多其他项目造成影响。Linux 发行版 Fedora 的贡献者 Neil Gompa 写道,这一变化意味着“如果没有其他 Redis 分叉出现,我们恐怕只能从 Fedora 中移除 Redis。”

 

红帽公司法律顾问 Richard Fontana 则回应称,“很遗憾听到这样的消息。据我所知,我们之前在 Fedora 中没有接触过 RSAL(v2),但我们刚刚进行了审查并很快得出结论,它应该属于「不适用」的许可证。”(开源倡议协会认为 SSPL 和 RSAL v2 均不属于开源许可证。)

 

以 MongoDB 为例,该项目并不是从大规模开源开发者社区当中发展而成(正如该公司 CEO Dev Ittycheria 在 2019 年在采访中所说,「MongoDB 完全由我公司构建,未使用任何现成技术……我们是出于自由政策的考量才将其开源的。」);相比之下,Redis 则在公司之外拥有庞大的贡献者群体。

 

而面对许可证变更,以亚马逊云科技为代表的不少贡献方都决定退出。

 

Redis 则表示此举主要针对各云服务商。

 

Redis 公司 CEO Rowan Trollope 写道,“……Redis 的大部分商业销售都是通过各大云服务商实现的,这些服务商负责对 Redis 的投资及其开源社区进行商品化。”

 

“尽管我们努力支持社区主导的治理模式,并且希望能够继续沿用 BSD 许可证,但同时提供多个软件发行版(跨开源项目、可用源代码以及针对不同本地/云平台优化的商业软件)仍是个不小的挑战,这显然与我们推动 Redis 保持长久成功的目标相违背。根据新的许可证,托管 Redis 产品的云服务商将不再被允许免费使用 Redis 源代码,例如他们只能在接受 Redis 和代码维护者提出的许可条款之后,才有权交付 Redis 7.4。”

 

“这些协议将巩固对现有集成解决方案的支持,并开放对即将推出的 Redis 创新功能的全面访问。”

 

Redis 公司在 3 月 20 日发布的一份问题解答列表中,将“竞争性产品”定义为“通过付费支持等方式出售给第三方的产品,这些产品以 Redis 代码库为基础并且与 Redis 商业产品存在显著的功能重合。”

 

微软很快表示欢迎这一转变,并将继续“为我们的客户提供 Azure Cache for Redis 等集成解决方案,确保使用者能够享受到最新的特性与功能。”

 

微软开发部门总裁 Julia Luison 写道,“我们双方的持续合作将确保 Azure 客户无缝运用 Azure Cache for Redis 上的各层次功能……我们微软与 Azure 服务客户无需就此次许可证变更做出任何调整……”

 

“Azure Cache for Redis、Azure Cache for Redis Enterprise 和 Enterprise Flash 服务均不受影响,客户将继续收到及时更新与 bug 修复以保持最佳性能。”

 

但值得注意的是,微软刚刚在更宽松的 MIT 许可证之下开源了其Redis竞争方案Garnet,这个新项目能够在 StackExchange.Redis 等 Redis 客户端、以及微软自己的 C# GarnetClient 上实现即插即用。

 

对于社区的反馈,Redis 之父 Antirez 表现得有点愤愤不平,“如果一家小公司采用类似 GPL 的许可证,会被指责违背开源原则,而像亚马逊这样的大公司对开源软件的未来构成重大威胁,却没有任何问题。”

 


“SSPL 可以保护项目免受亚马逊等大型公司的侵害,也可以保护其他公司和开发者,防止他们的工作被利用而无法获得收益。这是一种工具,我个人认为它是合理的,但具体是否使用还需要根据具体情况来决定。”

 

“只从其他较小但获得风投支持的公司角度来看亚马逊的危害,其实过于简单化了。现实情况要复杂得多。例如,OpenRedis 是最早提供 Redis SaaS 服务的公司之一,他们也是最初为 Redis 项目做出贡献的人。而现在,OpenRedis 也受到了亚马逊垄断的影响。”

 

Redis 迎来多个新分叉

 

大家可能还记得 2023 年 8 月 10 号 Hashicorp 也曾决定采用更为严格的许可证,当时 Terraform 社区就紧密团结在 OpenTofu 周围以示抗争。只是不清楚这次 Redis 能不能找到属于自己的开源坚守之路。

 


但发令枪已然打响,Madelyn Olson 是反应最快的人之一,上周五,她与阿里云的 Zhou Zhou 以及其他几位原 Redis 核心维护者共同发起了新分叉,并表示“我们都对许可证变更感到不满,并希望建立一个真正开放的新社区来填补 Redis 留下的空白……”

 

Olson 还在 X 上发帖指出,“在 Redis 变更许可证之前,我们设计并遵循着一套振奋人心的社区发展路线图,包括集群改进、性能提升、触发器等等。现在我们将继续推动这些议程。”

 

那么,Redis 的这个新分叉是否得到了亚马逊云科技的“官方”支持?(Olson 已经在 Redis 项目上工作了六年,期间一直由亚马逊云科技承担开支。)Olson 的回应是,“我是亚马逊云科技的员工,但新分叉是我个人为了保持社区连续性所做出的努力。公司知道我在做什么,而且正在准备官方回应。”

 


亚马逊首席技术官兼副总裁 Werner Vogels:“一些 Redis 核心维护者正在采取行动,我为他们感到高兴。但这不是 AWS 的官方声明。”

 

随着 Elasticsearch 于 2021 年更改其开源许可证,亚马逊云科技也为 Apache 2.0 许可证发布了新的分支,即 Opensearch。一部分评论者认为,此举帮助这项 OSS 对象存储服务从「用爱发电」转向了健康的社区发展之路。

 


软件开发者 Drew DeVault(曾开发 SourceHut、wlroots 等多个项目,也是一位高产的 FOSS 博主)也迅速参与了 Redis 分叉,相关成果名为“Redict”。他将其描述为“Redis OSS 7.2.4 的一个独立非商业分叉……基于 Redis OSS 的 BSD 3-Clause 源代码……从现在起的所有后续变更均将采用 Lesser GNU 通用公共许可证,即纯 LGPL-3.0 许可。”他还补充称,“以下讨论仍在进行当中……”

  • “借此机会删除部分长期弃用的功能,例如 redis-trib。”

  • 消除供应商依赖并转向上游 Lua 和 jemalloc。

  • 进一步强化下游中立性,移除 systemd 和 upstart 服务等。

  • 我们还将对 Hiredis 进行分叉,即 Redict 的内部依赖项。

 

DeVault 表示,该项目将“用于建立一个独立于 GitHub 和 Slack 等专有基础设施之外的社区。”

“源代码将托管在 Codeberg 上,这是一个由德国非营利组织负责运营的 Forgejo 实例,相信任何熟悉 GitHub 社区的开发者都能在这里找到舒适且熟悉的使用体验……”

 

社区对 Drew DeVault 主导的项目表示看好:“作为一个软件项目,Redis 唯一的优点就是品牌名称。Antirez 早已不在了。Redis 也正在转向人工智能,引用《Redis 的未来》中的话来说就是:‘让 Redis 成为生成人工智能的首选’、‘我们处于 GenAI 浪潮的最前沿’。而 Redict 背后是一场真正的自由开源软件运动,由 Drew DeVault 领导,他在开源项目管理方面拥有良好的记录。”

 

DeVault 预测在接下来的几周里,我们可能会看到更多其他使用 Redis 开源代码创建的分支版本 (fork) ,“对于那些采用许可宽松的许可证或使用与 LGPL 兼容的 copyleft 许可证的分支版本,我们可能会从中提取代码更改 (pull changes)”。

 

亚马逊云科技的 Olson 在 X 上发帖指出,Redict 的愿景“与我的最终目标并不完全一致。我希望继续大力投资开发新功能,保持此次许可证变更之前的发展思路。Drew DeVault 似乎更倾向于建立一个能够快速发布的基础自由开源项目”。但她随后又在 X 上发帖解释,称“我完全认可 Redict 的观点,也将致力于帮助他们解决问题。我正在与项目创作者联系,希望大家能够继续合作……”

 

目前社区的相应变化显然还处于早期阶段,但接下来这波 Redis 分叉浪潮应该是已成定局。如果亚马逊云科技和阿里云愿意大力支持那些为这个高人气项目做出重要贡献的员工(也包括其他更多潜在赞助方),那么新的生态将有望顺利形成规模。前景如何,我们将拭目以待。

 

参考链接:

https://twitter.com/Werner/status/1771324218506108995

https://redict.io/posts/2024-03-22-redict-is-an-independent-fork/

https://www.thestack.technology/battle-of-the-redis-forks-begins/

https://news.ycombinator.com/item?id=39798029

2024-03-26 18:047321

评论 3 条评论

发布
用户头像
分享个和本文关联的拓展阅读:《从 Redis 开源协议变更看开源软件与云计算巨头之间的竞争博弈》https://www.infoq.cn/article/cyh0hqiNW99Eh61mEaY3
2024-03-29 10:12 · 浙江
回复
用户头像
多少年了?想当年刚开始用 redis 替换 memcached 还是 redis 2.4 的版本
2024-03-27 15:27 · 广东
回复
用户头像
但事实是,许多开源项目都需要一个接一个地走上这条道路。
2024-03-27 13:20 · 上海
回复
没有更多了

HAProxy 可观测性最佳实践

观测云

HAProxy

探索最佳工作内容管理工具:2024年7大精选

爱吃小舅的鱼

任务管理 任务管理软件 任务管理工具 工作内容管理工具

AWS 弹性伸缩特性介绍

AutoMQ

云计算 kafka 云原生 AWS

InPlant SCADA笔记 工程管理的工程属性与全局设置

万里无云万里天

工厂运维 InPlant SCADA

从焦虑症到AI「网红」:这名程序员是如何让AI「助他一臂之力」

新程序员编辑部

ChatGPT Prompt

待办事项软件选择指南:挑选你的效率助手

爱吃小舅的鱼

待办事项

InPlant SCADA笔记 报警管理功能

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 调度任务功能

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 二次确认

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 工程管理界面的五种风格

万里无云万里天

工厂运维 InPlant SCADA

如何借助逻辑数据编织平台实现“数据优先堆栈( DFS )”

Aloudata

数据仓库 数据虚拟化 数据编织

汽车辐射大?技术来救它:整车辐射抗扰发射天线仿真建模及性能预测

Altair RapidMiner

人工智能 汽车 仿真 altair 辐射

用Python来DIY一个AI面部情绪识别API的简单方案

幂简集成

API

InPlant SCADA笔记 查看工程的网络架构

万里无云万里天

工厂运维 InPlant SCADA

如何在 SpringBoot 中优雅的做参数校验?

快乐非自愿限量之名

Java Spring Boot 后端

管理能力达到国际认可水平 智谱获得国内首批ISO/IEC 42001:2023人工智能管理体系认证证书

技术研究院

2024年团队任务分配软件推荐:7大热门工具

爱吃小舅的鱼

团队管理 任务管理 任务管理工具 任务分配工具 团队任务管理

精选顶级工时管理平台:你的最佳选择

爱吃小舅的鱼

工时管理 工时管理系统

攻坚克难岁月长,自主腾飞世界强——回顾近代中国数据库的发展与飞跃

Geek_b7ce72

InPlant SCADA笔记 io 查看数据库管理与IO驱动

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 背景模版

万里无云万里天

工厂运维 InPlant SCADA

你知道程序员再过几年会没落?

高端章鱼哥

澳鹏Appen入选大模型产业链基础层图谱及案例研究

澳鹏Appen

大模型训练 大模型 百模大战

一文剖析高可用向量数据库的本质

Zilliz

人工智能 大数据 AI Zilliz 向量数据库

天工一刻 | 一文看懂3D大模型

新消费日报

InPlant SCADA笔记 查看工程的数据库与历史趋势的信息

万里无云万里天

工厂运维 InPlant SCADA

如数据血缘探究数据管理的“自治理”

Aloudata

Data 数据管理 数据血缘 Data Fabric

一站式解决方案:如何挑选合适的项目工单系统

爱吃小舅的鱼

项目工单管理 项目工单

性能提升20%,字节跳动HTTPDNS从中心下沉到边缘

火山引擎边缘云

边缘计算 HTTP DNS #DNS 边缘计算平台

如何找到最适合你的项目工时跟踪工具

爱吃小舅的鱼

工时管理 工时管理系统

从0到100:旅拍小程序开发笔记(上)

CC同学

开源Redis的生命将就此终结?Redis 之父回应分叉浪潮:未来谁能领先,各凭本事!_服务革新_核子可乐_InfoQ精选文章