最近,Redis 从开放源代码的 BSD 许可证过渡到了更加限制性的 Server Side Public License (SSPLv1)。一石激起千层浪,Redis 的这一举动,不仅分化了前 Redis 维护者,也再次引发业界对于“开源项目可持续性以及许可证决策对其社区的影响”的讨论。
这一变化将从 Redis 7.4 版本开始生效,我们预计多个 Linux 发行版将把 Redis 从它们的代码库中剔除。然而,这种干扰很可能是暂时的,因为已经有替代方案可供选择 - 比如由 Linux 基金会支持的开源替代品 Valkey。微软的 Garnet 也是一个选择,它是一个用 C# 编写的开源、速度更快的缓存存储,完全兼容 Redis 客户端。此外,像亚马逊这样的云服务提供商也可能会创建自己的 Redis 分支,就像他们在 Elastic Search 转向 SSPL 时的操作一样。
在此背景下,我想和大家聊聊对于这件事情的一些思考。
01.云端吞噬开源
开源软件虽然有着悠久的历史,但近年来开源业务模式发生了重大变革。
从传统来看,这种模式依赖于公司为使用开源软件时提供商业支持和企业级功能而付费。然而,云计算的兴起颠覆了这一模式。一方面,公共云的增长使得像 MongoDB 和 Elastic 这样的公司可以专注于基于云的服务产品而取得巨大成功;另一方面,云服务提供商可以轻松地二次开发和转售开源产品,受益于开源公司在代码和开发者社区方面的大量投资,利用云的成本优势和分销渠道快速变现……即使是非常成功的开源公司也难以与之竞争。
因此,不仅是 Redis,此前的 MongoDB 和 Elasticsearch 也采用了更加限制性的 SSPL 许可证。类似地,HashiCorp 也放弃了 Mozilla 公共许可证(MPL),转而采用了商业源代码许可证(BSL) 1.1。这一举动引来了许多开源倡导者的批评,他们认为任何限制公共云提供商的许可证,都违背了由 OSI 定义的开源精神。此前,这些开源许可证的转变已经引发了一波关于"保持开放"的讨论,例如 OpenSearch 和 OpenTofu。未来,关于开源许可证的争论仍在持续……
02.个人观点:是时候让 OSI 改变了
作为之前在云厂商工作(托管开源产品的内核负责人)、现在在一家开源公司工作(其主要收入模式为全托管服务)的人,我不得不戴着两顶帽子。如果能找到一种让云服务提供商和开源公司协作并共享利润的方式,我会乐意投入更多精力来改进开源产品,造福广大用户、开源公司和云服务提供商。
云保护许可证似乎是一个可行的解决方案。它们不会限制 99.99% 的用户使用和修改软件的权限,但却能有效保护开源公司的未来利润。这样开源公司可以将更多的"绝密武器"释放到开源社区,大大减轻开源开发者的维护负担,增强开源用户的体验。
从 GPL 等 copyleft 许可证到更加宽松的 BSD、MIT 和 Apache 许可证的演变,大大加速了开源软件的发展进程。这种变化得益于大型企业参与到开源社区,为其贡献代码及维护社区发展。
当下,许多开源项目往往都是由风险投资支持的创业公司发起的。虽然这些公司也回馈社区,但云服务提供商的兴起却扰乱了他们的商业模式,迫使他们采取更加限制性的许可证。
是时候让开源社区重新思考"开源"的定义了。在我看来,任何遵循合作和分享的开源精神的许可证都应该被视为开源,即使它包含了商业保护条款。开源的核心价值在于赋予用户权力,避免供应商锁定。如果"源代码可用"的许可证仍然能够实现这一点,并提供可持续的商业模式,那么我们需要更新对开源的理解。
开源大型语言模型(LLMs)就是一个很好的例子。虽然很多模型不会开源它们的数据集和训练细节,甚至在许可证中存在某些商业使用限制,但我们仍然可以认为它们是开源的,并且足够"开放"。归根究底,能够访问、修改和在此基础上构建应用才是最重要的。
03.公司视角:如何在宽松许可证下构建有竞争力的商业服务?
开源公司并不一定要修改许可证作为唯一的出路,不过其挑战在于找到开源与商业化之间的平衡。
以 Zilliz 为例,我们选择将开源向量数据库 Milvus 捐赠给 Linux 基金会。在过去四年的时间里,Milvus 已经在 GitHub 上获得了超过 26,000 颗 Star 以及数千名全球开源用户。在这一过程中,Linux 基金会帮助我们更好地进行社区治理,也吸引了更多潜在用户。
而 Zilliz 的商业化产品——Zilliz Cloud,是建立在公共云上的完全托管的 Milvus 服务。与公共云托管的 Milvus 和其他云提供商的向量搜索服务相比,Zilliz Cloud 具备了许多独特的功能:
- 多种部署选择:BYOC、SaaS、Serverless(即将推出)
- Cardinal——一款闭源的商业向量搜索引擎,性能比开源替代品提高 10 倍
- 自有数据服务:弹性索引构建池、元数据存储和日志存储
- 多云灵活性:部署在 AWS、GCP、Azure、阿里云等
- 企业级数据管理:全面的数据备份和迁移功能,通过 Zilliz Cloud Pipeline 进行非结构化数据 ETL
- 数据合规性和安全性
所有这些功能都完全兼容开源 Milvus API,但这仅仅是 Zilliz Cloud 的部分功能。我们将此称之为"开放接口"模式。这种模式满足了绝大多数用户的需求,同时也使那些需要更强大的性能、可扩展性和企业级功能的用户更容易采用我们的商业产品。我们希望这种模式可以帮助开源公司找到新的方式来与公共云提供商竞争。
- 好消息,Milvus 社区正全网寻找「北辰使者」!!!
- 如果在使用 Milvus 或 Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群。
- 欢迎关注微信公众号“Zilliz”,了解最新资讯。
本文由mdnice多平台发布