高维解码|Redis 收紧许可证!开源软件公司如何在云时代生存?

alt

最近,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 许可证的演变,大大加速了开源软件的发展进程。这种变化得益于大型企业参与到开源社区,为其贡献代码及维护社区发展。

alt

当下,许多开源项目往往都是由风险投资支持的创业公司发起的。虽然这些公司也回馈社区,但云服务提供商的兴起却扰乱了他们的商业模式,迫使他们采取更加限制性的许可证。

是时候让开源社区重新思考"开源"的定义了。在我看来,任何遵循合作和分享的开源精神的许可证都应该被视为开源,即使它包含了商业保护条款。开源的核心价值在于赋予用户权力,避免供应商锁定。如果"源代码可用"的许可证仍然能够实现这一点,并提供可持续的商业模式,那么我们需要更新对开源的理解。

开源大型语言模型(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 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python MNIST 转图片

Python MNIST 转图片 1 获取数据2 显示图片3 转换图片4 全部代码 1 获取数据 import numpy as np import tensorflow as tf from tensorflow.keras import datasets # type: ignoredef save(mnist_path):# 输出TensorFlow版本print("TensorFlow: {0}".format(tf.__v…

iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑

引言 在 iOS 开发中,将 IPA 文件上传到苹果开发者中心是一个重要的步骤。通常情况下,我们需要使用 Mac 电脑上的 Xcode 或 Application Loader 工具来完成这个任务。然而,如果你没有 Mac 电脑,也没有关系,本文将介绍一…

如何搭建企业级MQ消息集成平台

企业级MQ消息集成平台的重要性在于实现不同系统之间的高效、可靠、实时的消息传递和数据交换。它可以帮助企业实现系统解耦,提高系统的可扩展性和灵活性,降低系统间的依赖性。通过消息队列中间件,企业可以实现异步通信、削峰填谷、流量控制等…

服务网关-微服务小白入门(3)

基本概念 Spring Cloud Gateway Spring Cloud Gateway是基于Spring生态系统之上构建的API网关,包括:Spring 5.x,Spring Boot 2.x和Project Reactor。Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供…

云手机提供私域流量变现方案

当今数字营销领域,私域流量是一座巨大的金矿,然而并非人人能够轻易挖掘。一家营销公司面临着利用社交、社区、自媒体等应用积累私域流量,并通过销售产品、推送广告等方式实现流量变现的挑战与困境。本文将详细介绍这家公司是如何通过云手机&a…

一文了解重塑代币发行方式的创新平台 — ZAP

代币的发行方式对加密市场有着重要的影响,它直接影响着项目的社区建设、流动性、价格稳定性以及投资者的参与度,未来预期等!合适的发行方式可以吸引更多的投资者和用户参与,提升项目的社区建设和价值实现。不当的发行方式和分配&a…

经典算法-分治法由散点得出凸包-python实现

import copy import random import matplotlib import mathdef distance_p2l(point, line_point1, line_point2):if (line_point2[0] - line_point1[0]) 0:return abs(point[0] - line_point2[0])# 计算直线的斜率m (line_point2[1] - line_point1[1]) / (line_point2[0] - l…

MySQL的内连接和外连接

内连接 在之前的MySQL的复合查询时,我们能够通过给两个表做笛卡尔积查询和where子句限定条件来查询想查询的数据,不过MySQL还提供了内连接用来给两个表做笛卡尔积,对比之前的复合查询笛卡尔积来说语法更加简洁。 语法:select 字段…

实验:基于Red Hat Enterprise Linux系统建立逻辑卷并进行划分

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 1. 为虚拟机添加三块大小为5GB的磁盘nvme0n2 nvme0n3 nvme0n4 2. 将三块硬盘转换为物理卷,并将nvme0n2 nvme0n3两pv建立成名为"自己名字_vg“的卷组,并将nvme0n4扩展进该卷组。 LVM管…

MySQL数据库的增删改查(进阶)

1.新增 将一个表中的内容插入到另一个表中. 这里需要确保查询集合的列数,类型,顺序要和插入表的列数,类型,顺序一致,这里列的名称可以不一样. values 替换成了select 查询的临时表. 2. 查询 2.1 聚合查询 2.1.1 聚合查询 函数 说明COUNT([DISTINCT] expr)返回…

k8snode节点kubeadm join主节点失败,请问你们有什么好的办法吗?

K8S版本:1.20.9,docker也是1.20的 在网上找了,说是关闭交换区swap,这个也关了,防火墙也关了,现在kubelet无法启动,网上查了只有kubeadm init后kubelet才能启动,而init后10250端口会…

Master节点快照回退遇到的容器不存在的问题

这次遇到的问题说起来有点扯,k8s集群出了点问题,kuboard无法访问,查看容器状态后,初始问题简单的以为是kuboard出问题了,理论上来说重新安装kuboard即可, 由此问题引发的系统bug,导致master节点…

掼蛋八大定律

1、首引定律 沟通是掼蛋的灵魂,原则上前三手牌都需要沟通。第一手牌,沟通牌力强弱;第二手牌沟通上游概率;第三手牌沟通双下可能。首引定律有几个公式:(1)首引小单牌示弱;&#xff0…

vue前端项目到后端执行逻辑——自己改的话要怎么改

文章目录 vue前端项目到后端流程——自己改的话要怎么改 vue前端项目到后端流程——自己改的话要怎么改

yarn集群部署

yarn集群部署案例 我们来基于一个案例讲解yarn集群部署 我们要部署yarn集群,需要分别部署HDFS文件系统及YARN集群 Hadoop HDFS分布式文件系统,我们会启动: NameNode进程作为管理节点DataNode进程作为工作节点SecondaryNamenode作为辅助 同…

数据库基础认识

目录 数据库基本认识 见一见数据库 主流数据库 Windows下启动MySQL 服务器,数据库,表关系 MySQL架构 SQL分类 存储引擎 数据库基本认识 哪一个是客户端哪一个是服务端? 为什么需要数据库? 文件保存数据有以下几个缺点&a…

✌2024/4/4—力扣—盛最多水的容器

代码实现: 方法一:暴力解法——遍历左右边,找出所有面积,取最大值——超时 #define min(a, b) ((a) > (b) ? (b) : (a)) #define max(a, b) ((a) > (b) ? (a) : (b))int maxArea(int *height, int heightSize) {int ans …

基于liorf_localization的重定位

文章目录 概述保存和加载地图利用现有地图进行重定位代码实现Q&&AQ1: point cloud is not in dense format概述 在LIO-SAM的基础上进行重定位,主要是指在已经建立的地图上进行位置的快速定位,这对于机器人在已知环境中的快速启动或者在丢失定位后的恢复尤为重要。L…

蓝桥杯DFS自练三题-串变换,玩具蛇,分糖果

题目一:串变换 代码解析: #include <iostream> using namespace std; struct Option{int select;int x;int y; }; string S,T; int N,K;//N是串的长度&#xff0c;K是操作指令的大小 Option opt[10];//存储所有的指令 bool vis[10];//标记数组&#xff0c;重要&#xff…

node相关

文章目录 nodeJS是什么&#xff1f;优缺点使用场景全局对象适合用于构建 I/O 密集型不适用于计算密集型任务 nodeJS是什么&#xff1f; Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境&#xff0c;它是跨平台和开源的。 Node.js 使用高效、轻量级的事件驱动、非阻…