InfoQ 推荐 ( ) • 2024-03-28 15:48

01 背景

在云计算的风潮下,开源软件的生态环境正在经历一场剧变。2024 年 3 月 20 日,这种变化在 Redis 身上得到了集中体现。Redis 商业公司 CEO Rowan Trollope 宣布,Redis 将从 BSD 3-Clause 许可证过渡到双重许可证模式,包括 RSALv2 和 SSPLv1。这一变化的影响将从 Redis v7.4 版本开始,贯穿到未来所有的 Redis 发布版本。

02 关于开源精神

对于这一变化,有些人可能会误解为 Redis 已经放弃了开源。然而,这并非事实。正如法律随着时代发展需要更新调整,开源协议也是一样的。法律追求的是公平公正;开源精神并不等同于许可证,它更多的是一种理念,一种追求自由、公平、共享的精神。随着云计算时代的到来,开源协议需要进行适应时代变化的调整,以保护开源的核心价值。Redis 的许可证变更,实际上是在保护开源精神,防止其被云厂商的垄断性优势所侵蚀。

03 公平竞争的呼唤

云厂商一方面不断在攫取开源的成果,一方面自己又制定了很多不公平的竞争条款来阻碍开源软件在云上提供服务。这导致了很多开源软件沦为云厂商的免费劳动力,大大打击了开源软件开发者的积极性。这些云上不公平规则包括 跨 AZ 的流量费,跨 VPC 通信的流量费等。例如 Confluent 的博客[1]中指出,AWS 云上 Kafka 的成本支出中近 60% 都是网络流量费,而 AWS 自己提供的 Kafka 托管服务 MSK 则无需支付这些额外费用。云厂商可以用规则武装自己获取竞争优势,开源软件自然也可以优化开源协议和云厂商提供的服务在一个更加公平的环境中展开竞争。

当前云厂商与开源软件之间的开源托管云服务的不公平竞争关系,在一定程度上可以类比为过去微软 Windows 操作系统上的 IE 浏览器与其他浏览器的关系。即使没有直接使用其他浏览器的代码,Windows 浏览器依然凭借其自定义的不公平规则和与操作系统的强绑定,垄断了 Windows 浏览器市场多年,打压了许多浏览器创新者,最后导致了劣币驱逐良币的局面。在这种不公平的竞争环境下,创新无法进步,最终受伤的是终端用户。

Redis 的许可证变更,更多是开源软件面对云厂商日益增强地攫取而不得已为之。没有人可以在这种情况下一直仍然坚持为爱发电。我想 Redis 首席执行官 Ofer Bengal 的话中我们已经可以感受到这种心态变化。

“社区已经意识到过去的开源概念必须做出改变。现代云计算公司凭借他们的垄断力量利用成功的开源项目赚得盆满钵满,但却不为这些项目做出任何贡献。旧的开源概念已经不合时宜了。”

如果开源软件的协议不再更新迭代,整个开源生态也将是不可持续的。在一个公平的市场环境下自由竞争才能催生出充满活力的生态和优秀的产品。

04 保持开源初心,拒绝带节奏

面对 Redis 的许可证变更,我们应当理解其背后的原因,而不是被一些利益相关者所带节奏直接抨击 Redis 不再“开源”。这些人可能因为无法继续利用开源软件来获取利益,而对此进行抨击。但我们需要明白,开源精神并不是崇尚剽窃、抄袭,而是鼓励共享、学习和创新。当现有的开源协议不能满足当前的云时代,面对云厂商开源托管服务的冲击,我们应该支持开源软件进行必要的反抗,以保护其自身的发展和整个开源生态的健康。

05 AutoMQ 与 BSL 开源协议

AutoMQ 是一款源代码开放的云原生 Kafka,采用 BSL 协议,可以从 Github(https://github.com/AutoMQ/automq) 上下载源码和贡献代码。BSL 协议[2] 是由 MariaDB 提出的一种新的开源许可证,它很好的平衡了开源软件发展与恶意商业竞争之间的关系。在 MariaDB 之后,HashiCorp(Terraform),CockroachDB 等知名项目也纷纷采用该协议。作为 Infra 创业领域的后起之秀,AutoMQ 吸取了很多基础软件创业先行者的经验,最终选择了 BSL 协议,主要是出于以下几点考虑:

可持续发展:我们坚信 AutoMQ 的云原生技术架构即使在全球来说也具备领先性。但是正所谓“武功再高,也怕菜刀”。当前创新者与云厂商之间的竞争本身就处于一个非公平竞争的状态。BSL 协议本质是留给创新者足够的发展空间,避免小玩家在大玩家面前在不平等的游戏规则下,彻底失去竞争优势。坚持开源初心:作为一个工程师文化浓厚的创业团队,我们骨子里是乐于分享的。BSL 协议只是用于约束直接使用 AutoMQ 源代码商业化并且和 AutoMQ 展开竞争的大玩家。本质上我们还是希望通过使用一个更加顺应当前时代的开源协议来保证我们可以自由分享知识与技术。作为技术爱好者或者企业内部使用的用户来说,AutoMQ 的 BSL 协议同 Apache License 2.0 几乎等同。BSL 协议约束的代码将在 4 年后自动转变为 Apache License 2.0 。未来,AutoMQ 会持续坚持开源初心,将我们认为优秀的观点、技术分享出来,努力贯彻我们的使命——引领消息和流存储走向云原生时代。

参考资料

[1] A Guide to Mastering Kafka's Infrastructure Costs https://www.confluent.io/blog/understanding-and-optimizing-your-kafka-costs-part-1-infrastructure/

[2] Wiki:Business Source Licensehttps://en.wikipedia.org/wiki/Business_Source_License