开源世界已经从学者和自称为极客的领域的小众兴趣转变为主流。开源从属于自由软件利益团体的职权范围,现在已经无处不在。据 OpenUK 称,78% 的私营企业使用开源,大约 97% 的所有应用程序(无论是专有应用程序还是其他应用程序)中都存在开源组件和代码。
这个软件非常有价值。根据哈佛商学院的一份报告,开发与广泛使用的开源软件包相当的软件的成本将为 41.5 亿美元。然而,与开源软件为公司带来的 8.8 万亿美元价值相比,这显得微不足道。报告发现,如果不存在开源软件,企业在软件上的支出将是目前的 3.5 倍。
由于风险如此之大,那些想通过开源赚钱的人纷纷参与其中也就不足为奇了。风险投资公司投资商业开源公司,以便他们能够发展项目并创造市场。这可能会导致开源的理想被忽视。
Redis 周围的变化
由于涉及大量资金,公司决定通过更改软件项目的许可证来获得更多潜在收入。最新的例子是 Redis,当时该公司从开源许可证更改为两个“源可用”许可证选项,限制了公司使用 Redis 软件的方式。
Redis 项目是使用最广泛的键值数据库,也是最大的数据库之一,在 DB-Engines 上排名第六。它可以在应用程序中扮演多种角色,从数据库到充当数据缓存或消息代理。这种受欢迎程度应该会转化为市场对服务、支持和交付专业知识的需求。 Redis Inc. 希望利用这种兴趣并排除某些形式的竞争。
这是过去几年中一系列公司更换许可证以支撑其商业模式并阻止竞争的最新一家。这些组织利用开源的价值创建了一个由用户、开发人员和参与其项目的公司组成的社区,然后交换许可证以赚取更多的钱。
这种改变通常被认为是合理的,因为这将阻止其他公司与通过在云中托管服务来开发项目的组织竞争业务。这违背了开源软件可供所有人使用的原则。它不会使贡献或管理项目的开发人员受益,而是使他们工作的公司受益。 Redis 的情况尤其令人震惊,因为 Redis 公司甚至没有贡献项目中的大部分代码,也不是最初从事该项目的公司。因此,可以理解的是,Redis 周围的社区在平等权利的 BSD 许可下做出了贡献,他们认为此举欺骗了他们。
此次许可证变更会产生什么影响?对于某些用户来说,没什么——他们将在源可用许可证下继续使用该项目来满足自己的技术需求。对于云提供商来说,如果不与 Redis Inc. 达成财务协议,他们将无法使用 Redis。
然而,其他公司也受到影响。如果您将 Redis 嵌入到您的解决方案中,那么您现在有一个选择:是放弃 Redis 并用另一个开源数据库替换它,还是继续使用 Redis 并且不能再称自己为“开源”?
这些变化也存在灰色地带,因为这些规则的应用范围可以更广泛,而不仅仅是针对少数作为云提供商的大型企业。当开发类似的功能或发生间接竞争时,谁来决定什么是违反许可的以及潜在的成本是多少?当 Redis 公司已经违背了永远使用 BSD 的承诺时,你怎么能相信它不会使用其许可证来对抗你作为竞争对手呢?
业界反应
作为回应,开源社区可以创建项目的分支。继 Elastic 和 OpenSearch 以及 Hashicorp 的 Terraform 和 OpenToFu 的类似方法之后,Redis 代码的最后一个开源版本被用来创建新项目,其中一个项目——Valkey——得到了 Linux 基金会的支持。多家公司已加紧为 Redis 的完全开源替代方案提供支持。
新鲜的是 Valkey 分叉出现的速度有多快,并得到了基金会的支持,并得到了如此多的支持。这将使公司在未来更改许可证时三思而后行,因为与成本相比,商业利益正在下降。现在的反应更加迅速、更加有力。
但这些变化对于 Redis 作为一个软件项目意味着什么?现在还很早,但开源协会和多个大型供应商都将时间、精力和资金投入到一个完全开源的项目中,这一事实将影响 Redis 周围的社区。随着时间的推移,那些想要开源项目的人将远离 Redis,从而影响整个用户群和对该特定项目的贡献,并将创新集中到诸如 Valkey 之类的分叉项目上。在我进行的调查中,超过一半的人希望在他们的项目中使用 Valkey。
尽管开源在 IT 领域已变得无处不在并获得广泛接受,但开源背后的原则并未得到广泛接受。免费访问软件是一个巨大的好处,也是开源成功的原因之一,但开源软件的目标是让每个人都可以按照自己认为合适的方式使用、开发和采用。这包括社区可能不同意的个人或组织,或者可能与原始创作者竞争的公司。
开源软件旨在帮助所有用户更快地前进和创新。在数据库市场中,像 Redis 这样的项目在可以运行多年的基础设施中发挥着至关重要的作用。这些元素必须在技术上可靠且高性能,但这不应以锁定和失去控制为代价。
开源和数据库的成功
必须说,围绕开源赚钱的公司并没有错。事实上,这是必要的。围绕开源工作的开发人员和贡献者需要为其在项目上工作的时间获得报酬。这笔钱一定来自某个地方。
当您拥有社区主导和控制的开源项目时,当该项目不属于任何一家公司或由任何一家公司运营时,以及当您拥有由单一供应商运营的商业开源项目时,就会出现问题。社区主导的项目旨在为社区谋福利;供应商控制的项目出于更自私的原因更改许可证。
同样重要的是,这些项目没有面临风险。就 Redis 而言,公共云提供商在代码方面做出了多项贡献,甚至超过了 Redis 本身,因此你不能说这些提供商没有为该项目提供支持。
相反,参与其中的公司(其中大多数由寻求回报的风险投资公司资助)希望赚更多的钱并占领更多的市场。
这违背了开发开源软件原则的原因:保护用户免受锁定。这些公司使用开源作为营销策略,但也从社区中获取资源来构建项目。
对于数据库行业来说,用户和客户的增长是由开源支撑的。 MySQL、PostgreSQL、Redis 等可以轻松采用,因为它们可以在开源许可下使用。 Redis Inc.的改变将影响Redis项目的受欢迎程度。可悲的是,相关人员知道这一点,了解其影响,但还是这么做了。 Valkey 等项目填补了使用源可用许可证时产生的空白。它们提供相同的特性和功能,并且不断发展以满足社区的需求,而不仅仅是保持功能对等。
公司自然希望拥有一些可以控制和货币化的知识产权,他们可以决定谁可以使用以及在什么条件下使用。
它有一个名字:专有软件。以这种方式保持对软件的控制并没有什么问题,但它不是开源的。就 Redis 而言,问题在于它对用户和贡献者都采用了“诱饵和转换”方法,这些贡献者为 Redis 做出了贡献,并使其成为成功的数据库,因为它是开源的。他们认为它将永远保持开源状态。
我相信开源方法更适合开发人员和用户的需求,并且它使公司能够走得更远。开源数据库不必从头开始创建所有内容,而是提供构建块来组合满足用户需求的应用程序。以开源方式发布某些东西是您送给世界的礼物,它可以用于为每个人(包括您的竞争对手)进行无需许可的创新。围绕这一点建立可持续发展的业务是很困难的,你必须根据你所提供的价值而不是你所构建的产品来提供价值。重点应该放在领先于整个市场,而不是试图将其他人拒之门外。




