惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog
博客园 - 聂微东
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
MyScale Blog
MyScale Blog
Cloudbric
Cloudbric
T
Threatpost
Scott Helme
Scott Helme
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Engineering at Meta
Engineering at Meta
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
V2EX - 技术
V2EX - 技术
罗磊的独立博客
Attack and Defense Labs
Attack and Defense Labs
IT之家
IT之家
S
Secure Thoughts
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Docker
V
V2EX
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
MongoDB | Blog
MongoDB | Blog
O
OpenAI News
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG

土法炼钢兴趣小组的算法知识备份

国密算法与国密 TLS 系列索引 【系统架构设计】架构质量属性:不只是"高可用高性能" 【系统架构设计百科】告警策略:如何避免"狼来了" 【系统架构设计】CQRS:读写分离的架构哲学 【系统架构设计】空间架构:极端扩展场景的解法 【系统架构设计】微服务架构深度审视:优势、代价与适用边界 【系统架构设计】扩展性原理:水平、垂直与对角扩展 【系统架构设计】无状态设计:扩展的第一步也是最难的一步 【系统架构设计】缓存架构:从本地到分布式的多级缓存体系 【系统架构设计】管道与过滤器:Unix 哲学的架构表达 【系统架构设计】复杂性管理:架构的核心战场 【系统架构设计】消息队列架构:异步解耦的设计与陷阱 【系统架构设计】CDN 架构:全球加速的设计原理 【系统架构设计】连接池设计:被忽视的性能杀手 【系统架构设计】弹性设计模式:熔断器、舱壁与超时 【系统架构设计】高可用设计模式:冗余、故障转移与仲裁 【系统架构设计】容量规划:从拍脑袋到数据驱动 【系统架构设计】数据库扩展:分库分表的工程实践与替代方案 【系统架构设计】SLO 工程:可靠性的量化管理 【系统架构设计】性能建模:用数学思维分析系统瓶颈 【系统架构设计】混沌工程:主动验证系统的韧性 【系统架构设计】零拷贝与内存映射:数据搬运的极致优化 【系统架构设计】线程模型:从 thread-per-request 到协程 【系统架构设计】容灾架构:多活与灾备设计 【系统架构设计】数据库性能模式:索引、查询与连接管理 【系统架构设计】数据建模:从关系范式到文档模型的真实权衡 【系统架构设计】吞吐量优化:批处理、流水线与并发模型 【系统架构设计】流处理架构:从批处理到实时的范式迁移 【系统架构设计】搜索引擎架构:倒排索引之上的系统设计 【系统架构设计】时序数据架构:监控与 IoT 的存储设计 【系统架构设计】数据迁移与版本化:在线不停机的数据演进 【系统架构设计】数据湖与数据仓库:分析架构的演进路线 【系统架构设计】API 网关设计:入口层的职责边界 【系统架构设计】应用层数据一致性模式:在正确性与性能之间走钢丝 【系统架构设计】多模数据库选型:Polyglot Persistence 的工程实践 【系统架构设计】服务发现与注册:动态拓扑的基础设施 【系统架构设计】配置管理架构:从配置文件到配置中心 【系统架构设计】全链路压测:大规模系统的性能验证 【系统架构设计】幂等性设计:分布式环境下的安全重试 【系统架构设计】契约测试与 Schema 演进:服务间的信任协议 【系统架构设计】长连接与推送架构:WebSocket、SSE 与 MQTT 【系统架构设计】延迟分析:从 P50 到 P999 的全链路追踪 【系统架构设计百科】DDD 战术模式:聚合、实体与值对象 【系统架构设计百科】防腐层与开放主机服务:系统集成的 DDD 方案 【系统架构设计百科】领域事件与事件风暴:从业务到架构的桥梁 【系统架构设计百科】CQRS + Event Sourcing 完整实战:从领域建模到部署 【系统架构设计百科】DDD 与微服务:用领域模型划分服务边界 【系统架构设计】DDD 战略设计:限界上下文与上下文映射 【系统架构设计百科】认证架构:从 Session 到 JWT 到 OIDC 【系统架构设计】API 设计哲学:REST vs GraphQL vs gRPC 的真实权衡 排序算法专题:从 TimSort 到并行排序 【密码学百科】国密算法体系:SM2/SM3/SM4/SM9 全景解读 【密码学百科】承诺方案:Pedersen 承诺、向量承诺与多项式承诺 【密码学百科】不经意传输与隐私信息检索:OT、OT 扩展与 PIR 【密码学百科】门限密码学:门限签名、门限解密与分布式密钥生成 完美哈希:从理论到 gperf 实践 【密码学百科】安全多方计算:从 Yao 的混淆电路到实用 MPC 【密码学百科】同态加密:从 Paillier 到全同态加密(FHE) 【密码学百科】零知识证明系统:zk-SNARKs、zk-STARKs 与 Bulletproofs 【密码学百科】概率论与密码分析:生日攻击、差分分析与线性分析 【密码学百科】计算复杂性与归约:密码安全性证明的基石 【密码学百科】秘密共享:Shamir 方案、VSS 与安全多方计算入口 【密码学百科】椭圆曲线代数:Weierstrass 方程、点群运算与曲线选择 【密码学百科】离散对数与配对密码学:从 DLP 到 BLS 签名 【密码学百科】格密码数学基础:SVP、LWE 与格基约化 【密码学百科】抽象代数:群、环、域的密码学视角 【密码学百科】有限域算术:GF(2^n) 运算与在 AES/ECC 中的应用 【密码学百科】数论进阶:二次剩余、椭圆曲线上的 Weil 配对 【密码学百科】密码学简史:从凯撒密码到量子时代 【密码学百科】威胁模型与安全目标:CIA 三要素之外 【密码学百科】Kerckhoffs 原则与现代密码设计哲学 【密码学百科】随机性:密码学的基石 【密码学百科】信息论入门:熵、完美保密与 Shannon 定理 【密码学百科】分组密码原理:Feistel 网络与 SPN 结构 【密码学百科】AES 逐步拆解:SubBytes 到 MixColumns 的数学 【密码学百科】分组密码工作模式全览:ECB/CBC/CTR/OFB/CFB 【密码学百科】流密码:RC4 的兴衰与 ChaCha20 的崛起 【密码学百科】密码学哈希函数:MD5→SHA-2→SHA-3 的进化之路 【密码学百科】MAC 与 HMAC:消息认证的正确姿势 【密码学百科】认证加密(AEAD):GCM、ChaCha20-Poly1305 与 OCB 【密码学百科】密钥派生函数:HKDF、PBKDF2、Argon2 与密码存储 【密码学百科】公钥密码的数论基础:模运算、群、原根 【密码学百科】RSA 从原理到攻击:教科书 RSA 为什么不安全 【密码学百科】Diffie-Hellman 密钥交换与离散对数问题 【密码学百科】椭圆曲线密码学(ECC):从几何直觉到点群运算 【密码学百科】数字签名:ECDSA、EdDSA 与 Schnorr 签名 【密码学百科】现代密钥交换:X25519、ECDHE 与前向保密 【密码学百科】混合加密与 KEM/DEM 范式:ECIES 与 HPKE 【密码学百科】填充方案:PKCS#1 v1.5、OAEP 与 PSS 【密码学百科】TLS 协议全解析:从握手到 0-RTT 【密码学百科】PKI 与数字证书:信任链的构建与崩塌 【密码学百科】密码认证协议:从 SRP 到 OPAQUE 【密码学百科】零知识证明入门:如何证明你知道而不泄露 【密码学百科】安全信道构造:Noise 协议框架与 Signal 协议 【密码学百科】密钥管理工程:HSM、KMS 与密钥生命周期 【密码学百科】侧信道攻击:从时序攻击到功耗分析 【密码学百科】密码学实现陷阱:三层漏洞分类、审计工具链与系统性预防 密码敏捷性:如何设计可升级的密码系统 【密码学百科】OpenSSL/BoringSSL 架构剖析:ENGINE、Provider 与 FIPS 模块 排序基准测试:用数据说话
【开源许可与版权工程】开源战略:什么时候开源、选哪个协议、如何构建商业壁垒
2026-04-22 · via 土法炼钢兴趣小组的算法知识备份

本文是《开源许可与版权工程》系列的收官篇,也是系列第 20 篇。前面 19 篇文章分别从法律基础、许可证分类、典型协议、Copyleft 工程、专利商标、具体案例、合规工具、治理流程、出海管控等维度,拆解了一个严肃的工程化开源体系。本文把视角拉到最高处:从企业战略的角度,回答三个问题——要不要开源?选哪个协议?如何构建商业壁垒?

开源不是一种”做好事”的选择,而是一种商业武器。正确的开源战略能让一个中型公司定义行业标准、降低获客成本、构建人才磁场;错误的开源战略则会拱手让出核心资产、养肥竞争对手、让企业陷入”开源白嫖”的困境。本文以公开资料为依据,系统梳理开源作为商业工具的底层逻辑。

开源商业模式全景

一、为什么开源:动机与代价

开源从来不是一个纯粹技术问题,而是一个产品、市场与法律的综合决策。一个常见的误解是:“开源 = 免费 = 不挣钱”,这在逻辑上混淆了”许可证授予形式”和”商业模式”两件事。授予的是”使用权与修改权”,挣钱靠的是”使用权之外的价值”。下面逐一拆解企业把代码开源的五类典型动机,以及对应的代价。

1.1 标准制定:用开源定义行业接口

开源最锋利的用途,是用代码定义标准。一旦一个开源实现成为事实上的参考实现(Reference Implementation),它的接口就变成了行业接口,它的数据格式就变成了行业数据格式,它的协议就变成了行业协议。竞争对手要么接入它,要么在兼容性上永远处于被动。

典型的例子包括:

  • Kubernetes:Google 将 Borg 的经验以 Kubernetes 的形式开源,并捐给 CNCF(Cloud Native Computing Foundation,云原生计算基金会)。今天所有主流公有云(AWS EKS、Azure AKS、阿里云 ACK、华为云 CCE、腾讯云 TKE)都提供 Kubernetes 托管服务——Google 本身并不从 Kubernetes 直接收费,但 GCP(Google Cloud Platform,谷歌云平台)在云原生领域获得了品牌溢价,以及对容器与编排生态的定义权。
  • TensorFlow / PyTorch:深度学习框架成为事实标准后,其后的芯片(GPU、TPU、NPU)必须适配它的算子、它的 IR(Intermediate Representation,中间表示)、它的编程模型。
  • VS Code + Language Server Protocol:微软以 MIT 协议开源 VS Code 并推动 LSP 成为编辑器通信标准,今天所有语言工具厂商都以实现 LSP 为第一优先级。

在国内,PolarDB、OceanBase、TiDB 等数据库开源的背后,除了技术层面的考量,更重要的是标准制定权。一旦国内金融、政务、电信的关键系统采用其接口与 SQL 方言,它就成了”下一代国产数据库”的事实标准。

代价:放弃了对接口的独占权。一旦开源协议足够宽松(如 Apache 2.0),任何人都可以基于你的代码做自己的发行版,你不能通过”关接口”阻止竞争。

“参考实现”与”标准文档”的辩证关系:传统上标准是”先写文档(RFC / ISO / IEEE 标准)再有实现”,但过去十五年的开源实践逐步扭转了这个顺序——代码即标准。Kubernetes 没有 RFC 文档,有的只是 API 参考与源码;gRPC、OpenTelemetry、WebAssembly Component Model 也都是”实现先行、标准后写”的代表。这对行业的深层影响是:拥有参考实现的企业,就拥有了对标准演进方向的主导权。这也是为什么国内厂商近年来在开源标准的投入越来越大——没有开源参考实现,就没有行业话语权。

1.2 生态构建:让别人帮你写集成

一个封闭产品,所有生态(驱动、SDK、插件、集成)都要自己写;一个开源产品,社区会帮你写。这是研发成本的指数级分摊

以数据库为例,一个商业数据库如果要支持 Java、Go、Python、Rust、Node.js、C#、PHP 等全套语言,支持 Spark、Flink、Kafka、Airflow、dbt、Debezium 等数据生态,支持 Grafana、Prometheus、OpenTelemetry 等监控生态——一个中型公司至少要投入几十人年的工程资源。开源之后,这些集成大多数会由社区贡献者、合作伙伴、用户自己写成。

MySQL、PostgreSQL、Redis、Kafka 能成为事实标准,与其说是技术上的胜利,不如说是生态上的胜利——生态厚度一旦形成,后来者难以超越。

代价:社区贡献的代码质量参差不齐,需要投入大量的 Maintainer(维护者)工时做评审与合并。一旦贡献者在 CLA(Contributor License Agreement,贡献者许可协议)、Copyright Assignment(版权转让)等环节发生纠纷,还会带来法律风险。参见本系列 CLA/DCO:贡献者许可协议工程

从投入产出比的角度量化:一个活跃的 Apache 基金会项目,通常每月收到的 PR 数量在 100-500 个,其中 30%-50% 可以合并。按 Maintainer 平均每个 PR 评审 0.5-2 小时估算,光是 PR 评审就需要 1-3 人全职。这还没算 Issue 分流、邮件列表回复、TSC(Technical Steering Committee,技术指导委员会)会议、RFC(Request for Comments)评审、发版流程等。所以”开源让别人帮我写代码”是一个过度简化的叙事——本质上是”把 1 份代码维护成本,换成 0.3 份核心维护 + 0.5 份社区运营”,总成本并不必然降低,但换来了更广的生态覆盖与更深的用户嵌入

1.3 人才吸引:品牌即招聘

开源项目是最好的招聘名片。对一家企业而言,一个拥有 5 万 Star 的 GitHub 仓库,比任何招聘广告都更能吸引顶级工程师——这是一种近乎免费的雇主品牌建设。

很多顶尖工程师在选择雇主时会优先考虑:

  • 能否在公开可见的代码上工作(简历可以直接贴 PR 链接);
  • 能否与世界上最好的工程师(社区 Maintainer)一起工作;
  • 能否参与有长期影响力的项目而不是内部业务代码。

这三条决定了:一个有活跃开源项目的公司,能以低于市场价的工资招到顶级工程师;而一个纯闭源公司,即使付更高工资,也未必能招到同等水平的人。

代价:公开工作意味着员工离职后带走的”知识”更多(虽然代码还在,但 Maintainer 关系是个人带走的),核心贡献者被挖角的风险也更大。

一个真实的工程观察:顶级开源 Maintainer 的市场价,在特定领域(分布式数据库、编译器、内核、大模型推理)上甚至高于同等级闭源工程师 30%-50%。原因有二:其一,Maintainer 的能力有公开可验证的”作品”,雇主不用再做能力评估;其二,Maintainer 自带生态话语权,招到一个就等于接入了一个圈子。所以”以开源养人”是一种”人才杠杆”——短期看工资支出增加,长期看企业吸引力与生态网络远远超过投入。

1.4 营销与信任建立

对 B 端客户而言,源码可见性 = 信任。尤其在涉及安全、金融、政务等高敏感领域,客户往往要求:

  • 可审计:源码必须能被客户方安全团队审查;
  • 无后门:开源能极大降低客户对后门、数据回传的担忧;
  • 可接管(Exit Plan):万一供应商倒闭或被制裁,客户可以自行维护。

这三点在国产化与信创(信息技术应用创新)场景下尤其突出:金融与政务客户往往明确要求供应商提供源码,开源恰好天然满足这一需求。从这个角度看,开源替代了传统的”源码托管(Source Code Escrow)“服务。

代价:竞争对手也能看到你的源码。低水平抄袭、针对性挖矿(寻找特定 bug 用于 PoC)、水印式对比分析都会变得容易。

与 Source Code Escrow 的区别:传统的源码托管是”软件供应商把源码托管给第三方,只在特定触发条件(破产、停止维护)发生时交给客户”,本质是闭源;而开源是”源码从第一天就公开”。对 B 端客户而言,开源相对 Escrow 的优势在于:随时可审计(不用等触发条件)、可分叉(有其他发行版保底)、有公开的 CVE 跟踪。这也是为什么越来越多的大企业招标书中直接写”要求源代码开源或至少 Source Available”——开源正在逐步取代 Escrow 成为”供应商锁定风险”的标准解。

1.5 成本分摊:研发成本社会化

Linux 内核今天的代码量约 3 500 万行,如果由单一公司独立开发,按业内工程师均价估算是一个天文数字。但 Linux 基金会通过多企业(Intel、Red Hat、Google、IBM、华为、三星等)共同贡献的方式,把研发成本分摊到了整个行业。每家公司贡献自己关心的子系统,获得整个内核的共享成果。

这种”研发成本社会化”是开源在基础设施软件领域不可替代的核心优势——没有哪家公司能独立维护一个完整的操作系统内核、一个完整的浏览器引擎、一个完整的数据库引擎。

在中国,openEuler(欧拉)、OpenHarmony(鸿蒙)、OpenCloudOS(腾讯主导的服务器操作系统)都在尝试复制这一模式:让头部企业共同维护基础软件栈,避免每家自己从头造轮子。

代价:贡献者诉求不同,方向治理困难。基金会内部的政治博弈有时比技术讨论更占时间。

“搭便车”问题的工程解法:大型基金会项目里,永远有”只用不贡献”的企业。Linux 基金会有一个隐性机制对抗这一点:重要补丁 / 新子系统 / 关键安全修复的 review 权重,倾向于长期贡献者。换言之,一家企业如果长期不贡献,自己需要的特性会排在贡献大户之后——这就形成了”不贡献 = 落后”的隐性激励。国内基金会(开放原子)在这一点上还处于早期,激励机制尚未完全成型,这是”国产基金会成熟度”的一个关键观察指标。

1.6 开源的真实代价

前五节是”开源的好处”,但作为战略决策,必须正视开源的代价。总结成四类:

代价维度 具体内容 典型反例
核心 IP 流失 竞争对手可直接使用你的核心实现 AWS 基于 Elasticsearch 提供 ES 服务,倒逼 Elastic 改协议
云厂商白嫖 托管服务的大头利润被云厂商拿走 MongoDB、Redis、HashiCorp 都遭遇过
维护成本 Issue/PR/Discussion 的长期运维 很多项目开源几年后变”死亡维护”
品牌绑架 社区一旦壮大,再想改协议代价巨大 Terraform 改 BSL 后被 OpenTofu 分叉

这四类代价的共同特点是:开源越成功,代价越重。成功到一定程度,开源就不再是一个单纯的研发手段,而是一个复杂的政治与法律工程。下一节的”六种商业模式”,本质上就是在回答:如何在享受开源好处的同时,把代价控制在可接受范围内

一个常被忽视的动机:估值与融资叙事。在一级市场,“开源公司”通常能获得相比纯闭源 SaaS 公司更高的 revenue multiple(营收倍数)——因为开源公司的 bottom-up(自下而上)获客、低 CAC(Customer Acquisition Cost,客户获取成本)、生态粘性等被视为结构性优势。GitLab、HashiCorp、Confluent、Elastic、MongoDB 等上市的开源公司在 IPO 时的估值倍数普遍高于同类闭源 SaaS。这一点在融资阶段同样明显——“开源 + 企业订阅”是过去 10 年 VC 最青睐的 B2B 模型之一。但”为估值而开源”是一把双刃剑:一旦公司上市后需要兑现毛利,往往就会走到 HashiCorp/Elastic 式的”切协议”拐点。这是开源商业化的结构性矛盾——早期开源利好估值,晚期开源不利好毛利


二、六种商业模式

开源项目的商业化模式可以分为六大类。理解它们的边界与取舍,是制定开源战略的第一步。本节逐一拆解,每种模式都给出:核心思路、代表案例、适用场景、主要风险。

2.1 Open Core(开放核心)

核心思路:把”核心功能”开源,把”企业级增值功能”闭源或双许可。前者用来获客,后者用来变现。

代表案例

  • GitLab:Community Edition(CE)开源(MIT),Enterprise Edition(EE)闭源,企业级特性(审计日志、LDAP 细粒度权限、Mattermost 集成、合规报告等)只在 EE 提供。
  • Grafana Labs:Grafana 本体开源(AGPLv3,自 2021 年起),企业版(Grafana Enterprise)包含 Enterprise Plugins、SSO、审计日志、数据源合并等闭源特性。
  • Elastic(2021 年前):Elasticsearch 本体开源(Apache 2.0),X-Pack(安全、机器学习、告警等高级特性)闭源。
  • Sentry:早期 BSD,2019 年切换到 BSL(Business Source License,商业源代码许可证),核心 SDK 仍保持宽松协议。

适用场景:产品形态上”核心 + 扩展”分离清晰;企业用户愿意为高级特性付费;社区版已足够吸引个人开发者与中小公司。

Open Core 的四个常见失败模式

  • “社区版阉割到无人可用”:把关键功能(比如 HA、Backup、Monitoring)全部划到企业版,导致个人/小公司无法上手,社区冷清,最终连付费入口都消失。
  • “企业版卖得太便宜”:定价远低于 Red Hat/MongoDB 等标杆,毛利撑不起研发投入,最终两头不讨好。
  • “划线频繁变动”:一年内多次调整”哪些功能社区版可用”,让用户与贡献者失去预期,认为公司不靠谱。
  • “企业版技术债”:企业版为了”多一个卖点”加了太多小特性,最终维护成本拖垮研发团队。

避开这四个坑的核心方法论是:从第一天就想清楚”三层架构 + 年度 Roadmap”——每个新功能发布时明确它属于 Core / Professional / Enterprise 哪一层,并以书面 Roadmap 公开承诺,避免”随机划线”。

主要风险

  1. 划线困难:哪些算”核心”、哪些算”企业版”,随着竞争演进需要反复调整。划得太松,企业版没人买;划得太紧,社区会骂”你只是把开源当诱饵”。
  2. 双版本同步维护成本:CE 和 EE 两条分支长期分叉时,Bug 修复、安全补丁都要同步两次。
  3. 社区与商业冲突:社区往往希望某个功能开源,商业团队希望保留。GitLab、Grafana 都经历过类似争论。

划线的工程抽象:健康的 Open Core 项目通常把”功能划分”抽象成三类:

  • Core(开源必含):核心引擎、标准协议实现、基础 CRUD、开发者接口——这些功能决定了”产品是否可用”,不开源就失去了开源的意义。
  • Professional(小型企业付费):LDAP/SSO 集成、细粒度权限、基础审计日志、邮件/IM 通知——企业 IT 必需但不涉及规模化运维。
  • Enterprise(大型企业付费):合规报告(SOC 2、ISO 27001、FedRAMP)、跨区域多活、智能运维、高级分析、BI 看板、专业支持 SLA——只有达到一定规模的企业才会真正用到。

这种三层划分的好处是:个人与中小企业用开源版完全够用,不会产生”被故意阉割”的恶感;中型企业付 Professional 订阅;大型企业付 Enterprise 订阅。划线不是一次性决定,而是一个持续演进的过程——每个新功能发布时,都要决定它属于哪一层。

2.2 双许可(Dual Licensing)

核心思路:同一份代码,同时以两种协议发布——一种是具有传染性的 Copyleft 协议(如 GPL、AGPL),一种是商业许可。不想遵守 Copyleft 义务的商业用户,必须购买商业许可证。

代表案例

  • MySQL(被 Oracle 收购前):GPLv2 + 商业许可。想把 MySQL 嵌入自己的闭源产品?买商业 license。
  • Qt:LGPL/GPL + 商业许可。想把 Qt 静态链接到闭源产品里?买商业 license。
  • MongoDB(2018 年前):AGPLv3 + 商业许可。不想开放自己服务端代码?买商业 license。
  • Berkeley DB(被 Oracle 收购):Sleepycat License(AGPL 类似)+ 商业许可。

适用场景

  • 产品主要以库/嵌入式形式被集成(而非以服务形式运行),Copyleft 对商业用户有强威慑;
  • 公司拥有完整版权或 CLA 保证,否则无权以不同协议发布(这一点很关键,参见 CLA/DCO)。

主要风险

  1. 必须拥有 100% 的版权归属。任何一个外部贡献如果没有签 CLA 或 Copyright Assignment,就不能以商业许可重新发布;这就是为什么几乎所有采用双许可的公司都强制 CLA。
  2. AGPL/SSPL 在很多企业的”红名单”里被直接禁用,这反而可能把企业用户推向竞品(如用 PostgreSQL 替代 MySQL)。
  3. 云厂商规避:云厂商可以通过”不分发、只托管”规避 AGPL,这是 SSPL 诞生的直接原因。

2.3 Support & Services(技术支持与服务)

核心思路:代码完全开源(通常是 Apache 2.0 等宽松协议),公司通过订阅、支持、培训、咨询、认证变现。这是 Red Hat 路线。

代表案例

  • Red Hat:RHEL(Red Hat Enterprise Linux)本身由 GPL 开源组件组成,Red Hat 通过订阅提供:长期稳定的二进制、安全补丁、SLA、合规认证(FIPS、Common Criteria)、知识库、培训等。
  • SUSE:同类模式。
  • 麒麟软件:国产化信创背景下的 Red Hat 模式,详见 3.6 节。
  • openEuler 的下游发行版:详见 3.4 节。
  • Canonical(Ubuntu):Ubuntu 本体免费,Ubuntu Pro 订阅(Livepatch、ESM、安全认证)变现。

适用场景

  • 产品已经或有望成为关键基础设施(Linux、Kubernetes、数据库);
  • 企业客户愿意为”责任承接方”付费,而不仅仅是软件本身;
  • 公司具备强运营、强合规、强客户关系管理能力。

“责任承接”是 Support 模式的真正内核。企业为什么要付年费给 Red Hat 买 RHEL 订阅,而不是用免费的 Rocky / Alma Linux?核心不是”软件本身不同”,而是买的是”一旦出问题有人兜底”——出了安全漏洞 Red Hat 会优先修、出了内核 panic 有 Red Hat 工程师 24 小时响应、出了合规审计 Red Hat 会派人配合。这种”把运维风险转嫁给供应商”的心理是大型企业愿意付订阅费的根本原因。换言之,Support 模式卖的不是软件,而是保险

主要风险

  1. 规模化门槛极高。Red Hat 做了二十多年才把这条路走通并被 IBM 以 340 亿美元收购;绝大多数中小公司没法靠”纯服务”养活几百人的工程团队。
  2. 易被复制发行版蚕食。CentOS、Rocky Linux、AlmaLinux、Oracle Linux、openEuler 都是 RHEL 的”复制发行版”——这正是 Red Hat 在 2023 年 6 月收紧 RHEL 源码访问政策的动因(详见 CentOS/Rocky 案例)。

2.4 托管服务(Hosted / Cloud)

核心思路:代码开源,但最有价值的是”你帮用户跑这个服务”的运维与自动化能力。用户为”我不用自己运维”付费。这是 SaaS 时代最主流的开源商业模式。

代表案例

  • Confluent Cloud:Kafka 的托管服务。Kafka 本身 Apache 2.0 开源,Confluent 卖的是 Kafka 托管 + Schema Registry + Connectors + Control Center。
  • Databricks:Spark + Delta Lake 的托管服务。
  • MongoDB Atlas:MongoDB 的官方托管服务。
  • 阿里云 PolarDB / RDS:PolarDB-PG、MySQL 的托管服务。
  • 腾讯云、华为云:多款开源数据库的托管服务。

适用场景

  • 软件运维复杂度高(分布式数据库、流处理、Kubernetes),用户自建成本远高于托管费用;
  • 公有云市场成熟,客户更愿意按”用量”付费。

主要风险

  1. 云厂商是最大威胁也是最大客户:AWS 自己搞 ElastiCache、Amazon Elasticsearch Service、MSK(Managed Streaming for Kafka)、DocumentDB 等服务,直接与原作者竞争。这是 Elastic、MongoDB、Redis 改协议的根本动因。
  2. 自营云的成本重。Confluent Cloud 在 AWS/GCP/Azure 上跑,既要付给云厂商基础设施费用,又要自己做上层服务——毛利率比 SaaS 厂商通常更低。

运维壁垒的构造要点:托管服务的真正价值不是”帮用户装软件”,而是帮用户承担 SLA 责任。这意味着托管服务必须具备:

  • 自动化扩缩容(Auto Scaling),根据负载自动加减节点;
  • 跨 AZ(Availability Zone,可用区)与跨区域的容灾与热备;
  • 在线版本升级(无停机的 Rolling Upgrade);
  • 备份恢复的 RPO/RTO(Recovery Point/Time Objective)保证;
  • 完整的监控体系(指标、日志、Trace、告警);
  • 7×24 小时的 on-call 响应;
  • 针对特定行业的合规认证(HIPAA、PCI DSS、GDPR、等保三级等)。

这些能力的建设周期通常以年计,是托管服务真正的护城河——开源的代码人人都能拿到,但”把代码变成 99.99% 可用的服务”这件事,需要大量工程投入与长期运营沉淀。

2.5 Source Available(源码可见)

核心思路:提供源码可见、可修改,但附加商业限制——通常禁止将该软件”作为竞争性服务提供给第三方”。这类协议严格意义上不是 OSI(Open Source Initiative)认证的开源协议,而是”源码可见协议”。

代表案例

  • Elastic 的 SSPL / Elastic License 2.0(2021 年):Elastic 在 2021 年 1 月把 Elasticsearch 和 Kibana 从 Apache 2.0 双许可改为 SSPL(Server Side Public License)与 Elastic License 2.0(ELv2),直接回应 AWS 的 Elasticsearch Service。AWS 随即分叉为 OpenSearch(Apache 2.0)。Elastic 在 2024 年 8 月再次加入 AGPLv3 作为第三可选项,部分回归 OSI 认证开源。
  • HashiCorp 的 BSL 1.1(2023 年 8 月):HashiCorp 把 Terraform、Vault、Consul、Nomad、Packer、Boundary、Waypoint 全部从 MPL 2.0 改为 BSL 1.1。限制条款是”不得提供与 HashiCorp 商业产品竞争的服务”。Terraform 社区随即发起 OpenTofu 分叉(Linux 基金会托管,MPL 2.0)。
  • Redis 的 RSALv2 / SSPL(2024 年 3 月):Redis Inc.(曾用名 Redis Labs)在 2024 年 3 月把 Redis 从 BSD-3-Clause 改为 RSALv2(Redis Source Available License v2)与 SSPL 双许可,同样出于应对云厂商托管服务的考虑。社区随即发起 Valkey 分叉(Linux 基金会托管,BSD-3-Clause)。2025 年 5 月 Redis 7.4 起,Redis 又新增 AGPLv3 作为第三可选项。
  • MongoDB 的 SSPL(2018 年):MongoDB 把服务端从 AGPLv3 改为 SSPL,并未被 OSI 认证;这是 SSPL 的诞生。
  • CockroachDB:早期 APL + BSL 混合,2024 年进一步调整为更保守的许可证。

适用场景

  • 产品以”托管即服务”为主要商业场景;
  • 公司已经有一定市场地位(改协议一定会引来骂名,需要有”被骂得起”的底气);
  • 有完整的版权归属(所有贡献者都签了 CLA)。

主要风险

  1. 失去”开源”光环。SSPL、BSL 等被 OSI 明确拒绝认证为”开源许可证”(SSPL 由 OSI 在 2019 年明确拒绝;BSL 从未被 OSI 认证),Fedora、Debian 等发行版会移除相关包。
  2. 招致分叉。Terraform→OpenTofu、Elasticsearch→OpenSearch、Redis→Valkey 都是社区与大型科技公司主导的反击。分叉后原作者的社区影响力会被稀释。
  3. Cloud Native 基金会等中立组织不接受,生态集成度会下降。

协议细节见本系列 AGPL/SSPL/BSL 深度解析

2.6 基金会主导的中立开源

核心思路:把核心项目捐给中立的开源基金会(ASF、Linux Foundation、CNCF、开放原子开源基金会),放弃对版权的独占,换取”多方共建、无厂商锁定”的公信力。

代表案例

  • Apache Kafka:LinkedIn 捐赠给 ASF,Confluent 基于 Kafka 做商业化。
  • Apache Spark:UC Berkeley AMPLab 捐赠给 ASF,Databricks 基于 Spark 做商业化。
  • Kubernetes:Google 捐赠给 CNCF。
  • OpenHarmony:华为捐赠给开放原子开源基金会,详见 3.5 节。
  • openEuler:华为捐赠给开放原子开源基金会,详见 3.4 节。
  • TiDB:PingCAP 主导,托管在自己的 GitHub 组织但遵循 Apache Way 治理,CNCF 毕业项目。

适用场景

  • 想建立行业标准、吸引竞争对手共建;
  • 愿意放弃对版权的独占权,换取公信力与生态广度;
  • 已经有成熟的商业化路径(Open Core 或 Hosted),不依赖于对代码的独占。

主要风险

  1. 失去直接控制权。基金会治理下,公司只能”贡献”而不能”命令”。项目方向需要与其他 PMC(Project Management Committee)成员协商。
  2. 无法再改协议。Apache 2.0 捐赠后,公司无法单方面收回。
  3. 商业化路径必须是”服务/托管”而非”许可证变现”,因为宽松协议下任何人都可以复制发行版。

六种模式对比表

模式 代码开源程度 协议选择 谁付费 主要敌人 典型公司
Open Core 核心开源,扩展闭源 Apache/AGPL 等 要企业特性的公司 社区要求开源更多功能 GitLab、Grafana
Dual License 全部开源 GPL/AGPL + 商业 不愿遵守 Copyleft 的集成商 云厂商规避、AGPL 被红名单 MySQL、Qt、MongoDB(早期)
Support 全部开源 Apache/GPL 要 SLA 的企业 复制发行版 Red Hat、SUSE、麒麟
Hosted 全部开源 Apache/BSD 不想运维的用户 公有云厂商白嫖 Confluent、Databricks、Atlas
Source Available 源码可见,用途受限 BSL/SSPL/ELv2 要自建或嵌入的用户 OSI 社区、分叉 HashiCorp、Elastic、Redis
Foundation 全部开源 Apache 2.0 等 基于项目做服务的公司 自家商业化竞争不过社区其他公司 Apache 项目、CNCF 项目

更细粒度的商业模式组合:现实中的成熟开源公司,往往不是单一模式,而是多种模式的叠加。常见的叠加组合包括:

叠加组合 典型公司 核心逻辑
Open Core + Hosted GitLab、Elastic(早期)、Grafana 开源版吸引个人用户,Enterprise + 托管服务变现
Dual License + Hosted MongoDB(早期)、Confluent 开源版 AGPL 威慑集成,托管服务变现运维
Support + Foundation Red Hat、SUSE 基金会中立保证,公司靠订阅变现
Source Available + Hosted HashiCorp、Redis、Elastic(当前) 协议限制云厂商,公司自营托管
Foundation + Hosted Kafka→Confluent、Spark→Databricks 基金会培育生态,原公司自营托管服务

这种叠加不是拼凑,而是针对不同用户群的分层变现:个人用户(开源版)、中小企业(Enterprise 订阅)、大型企业(托管服务 + 专业支持)。


三、中国案例

国内开源战略与海外有两点显著差异:其一,国产化替代(信创)为开源产品提供了非市场化的长期需求;其二,公有云生态为开源数据库、中间件提供了清晰的变现路径。本节选取六个代表案例逐一拆解。

3.1 阿里云 PolarDB:开源 + 云托管

项目简介:PolarDB 是阿里云 2017 年开始商业化的云原生关系型数据库,包含 PolarDB for MySQL、PolarDB for PostgreSQL、PolarDB-X(分布式版本)三条产品线。2021 年 5 月,阿里巴巴把 PolarDB-PG 的内核代码以 Apache 2.0 协议开源到 GitHub(alibaba/PolarDB-for-PostgreSQL)。PolarDB-X 的单机与分布式版本也陆续以 Apache 2.0 开源。

战略意图

  1. 对抗国际云厂商的同类产品(Aurora)。PolarDB 架构上属于存储计算分离、日志即数据库的”下一代云原生数据库”,Aurora 是 AWS 的先行者。开源 PolarDB 让全球开发者可以”看到”与 Aurora 对标的实现。
  2. 在信创市场建立存在感。国产 PostgreSQL 分支(PolarDB-PG、openGauss、高斯等)的竞争焦点之一是”开源代码 + 国产信创资质”,不开源很难入围信创采购。
  3. 以”开源免费 + 云上托管收费”的 Confluent/Databricks 模式构建壁垒。代码开源,但”阿里云 PolarDB 企业版”才提供 99.99% SLA、同城多活、异地容灾、细粒度监控等云原生能力。

商业模式:典型的托管服务(第 2.4 节)。开源版能自建,但绝大多数企业客户会选择阿里云 PolarDB 托管版。

工程经验:PolarDB-PG 的开源版本与云上版本并非完全一致。云上版本往往包含与阿里云基础设施(盘古存储、神龙计算、PolarFS 等)深度绑定的闭源组件,这些组件并不出现在 GitHub 仓库中。这是”Open Core + Hosted”的混合模式。

架构层面的设计约束:要实现”同一代码库同时支撑开源自建与云上托管”,架构必须在关键接口处做”可替换”设计——例如存储层对接 PolarFS(云上)或本地/共享文件系统(自建),计算层对接神龙弹性(云上)或通用 x86/ARM 服务器(自建)。这种设计上的分层,本身就是开源战略的一部分:开源版本足以可用,但云上版本的基础设施整合度显著更高,这是典型的”服务壁垒”而非”协议壁垒”。

与 openGauss、高斯 DB 的横向对比:华为的 openGauss 同样基于 PostgreSQL 生态,采用木兰宽松许可证第 2 版(MulanPSL v2)开源,2020 年 6 月开源。与 PolarDB-PG 相比,openGauss 更侧重”独立内核演进”(包括自研的行列混存、AI4DB 等特性),而 PolarDB-PG 更侧重”云原生化的 PG 体验”。两者在国产数据库信创市场直接竞争。战略上体现了”同源但分叉的协议路线”——一个 Apache 2.0,一个 MulanPSL v2。

3.2 OceanBase:开源 + 蚂蚁商业版

项目简介:OceanBase 最早是 2010 年阿里巴巴内部的分布式数据库项目,后来成为蚂蚁集团主力数据库,承载了双 11 核心交易。2021 年 6 月,OceanBase 以 MulanPSL v2(木兰宽松许可证第 2 版)开源,这是国内首个大规模开源的分布式关系型数据库,也是 MulanPSL 的重要应用案例之一。

战略意图

  1. 金融级信创的旗舰项目。OceanBase 在中国银行业有大量私有化部署案例(工行、交行、建行、光大等),开源版本直接支撑”自主可控”的监管叙事。
  2. 对标 Oracle。OceanBase 的 SQL 兼容性长期对标 Oracle,“Oracle 替代”是其核心叙事之一,开源降低了客户迁移与验证门槛。
  3. 以 MulanPSL 替代 Apache 2.0,体现本土开源协议选择。MulanPSL v2 条款上与 Apache 2.0 基本等价,但明确”中国法律管辖、中英双语”,对国内金融/政务客户更友好。协议细节见本系列 木兰许可证

商业模式:开源 + 企业版 + 公有云托管三条线并行:

  • 开源版(OceanBase Community Edition):MulanPSL v2,GitHub 上完整可用;
  • 企业版(OceanBase Enterprise Edition):闭源,针对金融客户的私有化部署,提供管控平台 OCP、专业服务等;
  • 公有云版(阿里云 OceanBase Cloud):托管服务。

详细案例分析见本系列 OceanBase/Doris 案例

MulanPSL v2 的战略选择:OceanBase 选择 MulanPSL v2 而非 Apache 2.0,既有技术层面的考量(两者条款基本等价),也有战略层面的考量——这是对”中国本土开源协议”的一次顶级背书。作为国内规模最大、影响力最广的开源分布式数据库,OceanBase 选用 MulanPSL v2 的示范效应远超协议本身的技术差异。此后 openGauss、PolarDB-X、OceanBase 等国产项目相继采用 MulanPSL,使其逐步成为”国产开源数据库事实上的首选协议”。协议细节见本系列 木兰许可证

3.3 TiDB + PingCAP:Apache 2.0 的生态战略

项目简介:TiDB 是 PingCAP 于 2015 年创立时即以 Apache 2.0 协议开源的分布式 HTAP(Hybrid Transactional and Analytical Processing,混合事务与分析)数据库。2020 年 6 月,TiDB 进入 CNCF Incubating;2024 年进一步成为 CNCF Graduated 项目(注:实际里程碑请以 CNCF 官方为准,公开信息显示 TiKV 已于 2020 年从 CNCF 毕业,TiDB 作为上层项目的进展详见 CNCF Landscape)。

战略意图

  1. 从 Day 1 就选定 Apache 2.0 + 基金会路线。与阿里系产品(内部孵化后再开源)不同,PingCAP 从创立即以开源公司身份出现,Apache 2.0 + CLA 保证了版权归属与商业化灵活性。
  2. 社区 + 商业双轨。TiDB、TiKV、PD(Placement Driver,调度器)等核心组件完全开源;PingCAP 变现靠:TiDB Cloud(托管服务)、TiDB Enterprise 订阅(专业支持)、PoC 与咨询服务。
  3. 以 Apache 2.0 最大化生态。ORM、驱动、监控工具、培训课程、第三方发行版(包括国内信创 OEM)、研究用户都选择 TiDB,生态厚度远超闭源/双许可路线。

商业模式:Support & Services + Hosted 双模式(2.3 + 2.4)。

PingCAP 对社区治理的投入:PingCAP 在 TiDB 社区治理上的投入是国内开源公司里最彻底的之一——公开的 TOC(Technical Oversight Committee,技术监督委员会)、TSG(Technical Steering Group,技术指导组)、Special Interest Groups(SIG)体系,完整对标 Kubernetes 的治理结构。这种治理结构的好处是降低了”公司主导”的负面印象,让第三方企业贡献者(包括潜在竞争对手)敢于投入。代价是决策效率——很多事情要开会、讨论、投票,周期比”一个人拍板”长得多。这是生态话语权与决策效率的典型权衡。

对其他创业公司的启示:如果目标是做全球化开源数据库,TiDB 路线是一个清晰的参照系;但代价是”永远无法靠协议切换防御云厂商”——TiDB 的防御靠的是产品迭代速度与深度专家服务,而非法律约束。

Apache 2.0 路线的隐性成本:选择”从第一天就 Apache 2.0”的最大代价,不是协议本身,而是必须在产品、运维、服务上全方位领先。如果哪一天产品迭代速度被竞争对手追上,又没有协议壁垒,公司就会陷入”我的代码被任何人随意使用,但我没法阻止”的困境。这对公司的研发组织、人才密度、融资能力都提出了极高要求。PingCAP 等 Apache 路线的公司,通常要把”招聘最顶尖的分布式系统工程师”作为头号战略任务,因为这才是护城河的真正来源。

3.4 华为欧拉(openEuler):企业发行版路线

项目简介:openEuler 最初是华为基于 CentOS 衍生的企业 Linux 发行版 EulerOS 的开源版,2019 年 12 月开源。2021 年 11 月,华为正式将 openEuler 项目捐赠给开放原子开源基金会。协议为 Mulan PSL v2(内核仍为 GPLv2,用户态工具链各自原协议)。

战略意图

  1. 替代 CentOS 在国内市场的生态位。CentOS 8 在 2021 年终止、CentOS Stream 成为上游滚动发行版后,国内企业客户需要新的”免费 + 稳定 + 企业级”Linux 选择,openEuler 正好承接。
  2. 多硬件架构支持(鲲鹏、x86、RISC-V、LoongArch 等),把”国产 CPU 生态”与”国产 OS 生态”绑定。
  3. 通过开放原子基金会的中立治理,吸引多家厂商(麒麟、统信、中兴、中标软件等)共建。这与 Red Hat 主导 RHEL、其他厂商只能做”下游”的模式有本质不同。

商业模式:openEuler 本体由基金会治理,商业化由各厂商自己做:

  • 华为的 EulerOS 企业版;
  • 麒麟软件的银河麒麟高级服务器操作系统 V10 SP3(基于 openEuler);
  • 统信的 UOS V20 服务器版;
  • 中标麒麟、普华、中兴新支点等发行版。

这种”一个上游、多个下游”的模式,非常类似 RHEL+CentOS+Rocky+Alma 的生态,但由基金会主导,避免了单一企业主导的治理风险。

openEuler 的多架构野心:openEuler 的一个长期战略是”成为多架构统一 Linux”——同时支持鲲鹏(ARM64)、x86_64、RISC-V、LoongArch(龙芯架构)、SW64(申威)等多种国产与国际架构。这是 RHEL 没有做、Canonical 部分做了的方向。对比 Ubuntu 的多架构:openEuler 在国产架构上的适配深度更高,但在国际架构上的生态广度仍有距离。未来如果 RISC-V 在全球起势,openEuler 可能成为”RISC-V 服务器生态”的关键操作系统选项。

3.5 华为鸿蒙(OpenHarmony):生态战略

项目简介:鸿蒙操作系统(HarmonyOS)的开源版 OpenHarmony 于 2020 年 9 月由华为捐赠给开放原子开源基金会,采用 Apache 2.0 协议为主(系统内核部分因组件不同而异)。OpenHarmony 是”1+8+N”泛终端生态战略的底座——手机(1)+ PC/平板/手表/音箱/耳机/AR/VR/车机(8)+ IoT 设备(N)。

战略意图

  1. 在美国对华为的芯片与安卓生态限制下,构建独立的操作系统生态。2019 年 5 月美国商务部将华为列入实体清单后,Google 停止为华为新机型提供 GMS(Google Mobile Services)认证,这是鸿蒙加速成型的直接动因(出海合规背景详见 出海合规)。
  2. 多终端统一内核——不仅是手机 OS,而是一套从 IoT 传感器(RAM 百 KB 级)到手机/平板/车机(RAM 多 GB 级)的分布式操作系统框架。
  3. 通过基金会中立治理吸引生态厂商(家电、整车、芯片、模组厂商)共建。中国科学院、中兴、美的、九联科技、润和软件等都已成为主要贡献方。

商业模式

  • OpenHarmony 本身不变现;
  • 华为基于 OpenHarmony 做 HarmonyOS 商业版(手机、平板等),应用层闭源;
  • 生态伙伴(家电、车机厂商)基于 OpenHarmony 做自己的发行版与产品。

典型的”基础设施开源 + 应用层闭源 + 生态伙伴共建”模式。详细案例分析见本系列 OpenHarmony 案例

与安卓 AOSP 模式的对比:OpenHarmony 与安卓 AOSP(Android Open Source Project)在模式上有显著差异:

维度 安卓 AOSP OpenHarmony
治理主体 Google(单一公司) 开放原子开源基金会(多方共建)
商业闭环 Google GMS(应用商店、地图、搜索等)闭源收费 华为 HarmonyOS 商业版独立演进
生态策略 手机为中心 多终端统一(IoT + 手机 + 车机)
出口管制应对 对中国厂商存在限制风险 天然不受美方实体清单影响
协议 Apache 2.0(AOSP) Apache 2.0 为主(组件各异)

OpenHarmony 选择”基金会治理 + 多厂商共建”的模式,是对 AOSP “单一公司主导”模式的系统性差异化——前者更难被单方面撤回或卡脖子,后者的治理效率更高但有集中风险。

3.6 麒麟软件的 Red Hat 式商业化

项目简介:麒麟软件是中国电子(CEC)旗下的操作系统公司,2019 年由天津麒麟与中标软件合并而成。其主力产品银河麒麟服务器操作系统 V10 早期基于 CentOS,近年逐步转向 openEuler 生态;桌面产品银河麒麟桌面操作系统 V10 基于 Debian/Ubuntu 衍生。

战略意图

  1. 瞄准党政军与关键基础设施(金融、电信、能源)的信创采购。这部分市场非纯市场化,采购要求包括”开源可审计”“国产可控”“多架构支持”。
  2. Red Hat 模式变现:OS 本身以相对开放方式提供,变现靠:商业订阅(年费 + 维保)、定制版本、专业服务(系统集成、迁移、调优)、培训与认证、适配测试。
  3. 通过与国产 CPU 厂商(飞腾、鲲鹏、龙芯、兆芯、海光、申威)、国产数据库、国产中间件的深度适配认证(“麒麟兼容”认证)建立生态壁垒

商业模式

  • 银河麒麟(核心商业化产品):闭源/有限源码,按订阅收费;
  • openEuler/openKylin 等开源协作项目:开源贡献,换取生态话语权;
  • 政府与央国企客户:以 OEM、私有化部署、项目制形式变现。

对比 Red Hat:两者商业逻辑一致,都是”用服务与订阅变现开源发行版”,区别在于麒麟更依赖非市场化的信创采购拉动,而 Red Hat 面向的是全球市场与服务化运营能力。

一个关键观察:国内几乎所有做信创发行版的厂商(麒麟、统信、普华、中标、中兴新支点等),都不把”做全球开源品牌”作为目标——原因很简单,他们的客户 95% 以上在国内特定行业(党政、军工、金融、电信、能源),做海外市场的投入产出比远低于守住信创大盘。这与 Red Hat 当年”从社区发行版出发、逐步渗透全球企业级市场”的起点完全不同。这也决定了:国内 OS 发行版厂商的”开源贡献度”往往低于预期——他们更像是”信创市场的系统集成商”,而非”开源生态的领导者”。这是一个需要时间演化的阶段性特征,openEuler 共建模式是否能改变这一局面,仍有待观察。


四、协议改变:动机、过程与代价

开源协议的”切换”(relicensing)是最高风险的企业行为之一。本节以三个最著名的案例为核心,拆解协议改变的典型动因、触发条件、分叉代价与经验教训。

4.1 Redis Labs 的 RSALv2/SSPL 转变

背景:Redis 是 Salvatore Sanfilippo 于 2009 年创建的高性能 KV(Key-Value)存储系统,最初以 BSD-3-Clause 协议开源。2011 年起,Redis 的商业化由 Redis Labs(2021 年更名 Redis Inc.)承担。Salvatore 在 2020 年 6 月宣布不再担任 Redis Core 的主要维护者,Redis Inc. 完全接管项目治理。

2024 年 3 月的转变:2024 年 3 月 20 日,Redis Inc. 宣布将 Redis 核心代码库从 BSD-3-Clause 改为RSALv2(Redis Source Available License v2)与 SSPL v1 双许可。所有 Redis 7.4 及以后版本适用新协议。RSALv2 和 SSPL 都不是 OSI 认证的开源协议,主要限制在于:禁止将 Redis 作为数据库/缓存/流处理/其他系统”作为管理服务对外提供”——这是明确针对 AWS ElastiCache、Azure Cache for Redis、Google Memorystore for Redis 等云托管服务。

社区反应:转变宣布当天,Linux 基金会即宣布发起 Valkey 分叉(BSD-3-Clause),创始贡献者包括 AWS、Google Cloud、Oracle、爱立信、Snap 等。Valkey 基于 Redis 7.2(最后一个 BSD 版本)分叉,迅速成为 Redis 社区”继承 BSD 精神”的官方替代。Fedora、Debian、Amazon Linux 等发行版开始把默认 Redis 包切换为 Valkey。

2025 年 5 月的回调:2025 年 5 月,Redis 宣布 Redis 8 起新增 AGPLv3 作为第三可选项,部分回归 OSI 认证开源。此举被解读为”半步回退”——RSALv2/SSPL 双许可并未取消,但用户可以选择 AGPLv3。这反映了 Redis 对社区压力的让步。

关于 Salvatore 的离场:Redis 协议切换的故事不仅是商业决策,也有”创始人离场对社区文化的影响”这一维度。Salvatore 在 2020 年交棒时,Redis 还是一个典型的”BDFL(Benevolent Dictator For Life,仁慈独裁者)“驱动的项目——灵魂与协议选择高度绑定于创始人。Salvatore 离开后,Redis Inc. 作为商业实体主导一切决策,社区的”魂”发生了转移。这也是为什么 2024 年 Valkey 分叉能在短时间内获得巨大关注——很多社区老人视 Valkey 为”Salvatore 精神的延续”。这提醒所有开源公司:创始人与核心 Maintainer 的更替节点,是协议与治理策略最脆弱的时刻

关键教训

  • BSD → SSPL 这样从”极度宽松”到”Source Available”的跳跃,社区反弹极大;
  • 一旦有中立基金会愿意托管分叉,原公司的”许可证博弈”优势会迅速消减;
  • 最终可能要以”再加一个 OSI 协议”的方式修复与社区的信任。

4.2 HashiCorp 的 BSL 转变(Terraform)

背景:HashiCorp 是美国基础设施软件公司,主要产品包括 Terraform(基础设施即代码)、Vault(机密管理)、Consul(服务发现)、Nomad(作业编排)、Packer(镜像构建)、Boundary(远程访问)、Waypoint(应用部署)。全部以 MPL 2.0(Mozilla Public License 2.0)协议开源。HashiCorp 于 2021 年 12 月在纳斯达克上市。

2023 年 8 月的转变:2023 年 8 月 10 日,HashiCorp 宣布将上述全部产品从 MPL 2.0 改为 BSL 1.1(Business Source License 1.1)。BSL 1.1 附加的使用限制是:禁止将 HashiCorp 产品”作为与 HashiCorp 商业产品具有竞争关系的服务提供给第三方”。四年后,该版本自动转换回 MPL 2.0(即 BSL 的 Change License 条款)。

社区反应:协议变更宣布后一个月内,2023 年 9 月 5 日,OpenTofu(最初名为 OpenTF)项目在 Linux 基金会旗下宣布成立,基于 Terraform 最后一个 MPL 2.0 版本(1.5.x)分叉,继续以 MPL 2.0 开发。创始贡献者包括 Gruntwork、Spacelift、Env0、Harness、Scalr 等 Terraform 生态里的头部商业玩家。OpenTofu 在 2024 年 1 月发布首个正式版,此后持续迭代。

后续:2024 年 4 月,IBM 宣布以约 64 亿美元(公开报道数字)收购 HashiCorp,收购于 2025 年 2 月完成。协议切换本身并未因此回退——BSL 1.1 仍是 HashiCorp 产品的当前协议。

OpenTofu 的特殊意义:OpenTofu 是近年”开源分叉反抗商业化”最成功的案例之一——分叉后短短一年内就发布正式版,并获得 Gruntwork、Spacelift、Env0 等 Terraform 生态主要玩家的深度参与。它的成功说明了两个事实:

  1. Terraform 的生态价值远超 HashiCorp 的工程能力——没有 HashiCorp,Terraform 的 Provider、Module、IaC(Infrastructure as Code)工具链也能持续演进。
  2. 基金会(Linux 基金会)的中立托管是分叉成功的关键催化剂——如果没有基金会,OpenTofu 很难吸引到竞争关系企业的共同投入。

这两个事实对其他考虑切 BSL 的公司是冷水:你的生态越繁荣、竞争对手越多,切 BSL 时引来的反扑就越强。HashiCorp 的”生态繁荣”反而成了它的软肋。

关键教训

  • BSL 的”4 年后转 MPL”条款原本是为”降低社区焦虑”设计的(与完全闭源相比),但仍然挡不住分叉;
  • 关键在于:BSL 生效的”当前”4 年就是生态争夺战的关键窗口,生态里的商业玩家没法等;
  • 协议一旦切换,通常不可逆——即使被大公司收购也改变不了既成事实。

4.3 Elastic 与 AWS 的对峙

背景:Elastic 的主产品 Elasticsearch 与 Kibana 最初以 Apache 2.0 开源。2015 年起,AWS 提供 Amazon Elasticsearch Service(后更名 Amazon OpenSearch Service),直接与 Elastic 的商业化版本竞争。Elastic 多次公开指责 AWS”不诚信使用 Elastic 品牌”、“把开源代码直接拿去提供竞争服务”、“不回馈社区”。

2021 年 1 月的协议切换:2021 年 1 月 14 日,Elastic 宣布把 Elasticsearch 与 Kibana 的主代码库从 Apache 2.0 改为 SSPL + Elastic License 2.0 双许可。新协议明确禁止把产品”作为托管服务对外提供”。

AWS 的回应:AWS 在 Elastic 宣布协议切换的同一天宣布 fork Elasticsearch 与 Kibana,项目名为 OpenSearch(Apache 2.0)。OpenSearch 最终于 2024 年 9 月捐赠给 Linux 基金会,由中立基金会托管。

2024 年 8 月 Elastic 再次调整:2024 年 8 月 29 日,Elastic 宣布新增 AGPLv3 作为第三可选许可,用户可以在 SSPL、ELv2、AGPLv3 三者中择一使用。Elastic 的 CEO 撰文承认”最初的协议切换是正确的决定,但新增 AGPLv3 让 Elasticsearch 重新成为 OSI 认证意义上的开源软件”。

Elastic vs AWS 对峙的宏观影响:这场对峙的影响远超两家公司本身——它让整个开源行业重新思考”云厂商白嫖”这个命题。在 Elastic 切协议之前,业界对 AWS 等云厂商的”托管即白嫖”普遍持包容态度;之后,越来越多的开源公司开始系统性地准备协议切换方案。可以说 Elastic 是”协议切换浪潮”的点火者,HashiCorp、Redis 是后续放大者。2024 年以来的”加回 AGPL”则是新一轮修正——行业正在集体学会”既威慑云厂商又不失去开源身份”的平衡点

关键教训

  • Apache 2.0 → SSPL 对云厂商确有约束效果,但云厂商可以通过”fork + 基金会托管”反击;
  • 一旦分叉项目获得基金会加持(如 OpenSearch 归 Linux 基金会),生态会永久分裂,原厂无法”招安”;
  • 事后重新加入 AGPL 作为可选项,是一种既对云厂商有威慑,又对 OSI 社区示好的折中——但这个修复动作很昂贵,损失的 3 年市场信任无法追回。

4.4 经验教训

综合三个案例,协议切换的工程与战略要点可以总结为:

1. 必要条件

  • 完整的版权归属:所有历史贡献者必须签过 CLA 或 Copyright Assignment,否则无权单方面切换协议。没签 CLA 的项目只能在”下一个 major 版本”里重写相关文件后再切换,工程代价巨大。
  • “够大”的用户基数:如果项目还没到”关键基础设施”级别,切协议后用户会直接走人(切到竞品),没人会花时间分叉。

2. 触发条件

  • 直接竞争对手(尤其是公有云巨头)通过托管服务吃掉大部分市场红利;
  • 开源版本的”免费使用”对付费版本形成强替代;
  • 投资人/董事会要求在可预见时间内改善毛利与现金流。

3. 执行步骤

  • 提前 6-12 个月与核心 Maintainer、关键生态伙伴沟通(避免社区炸锅);
  • 选择相对温和的 Source Available 协议(BSL 比 SSPL 温和,ELv2 比纯闭源温和);
  • 明确切换”哪些产品、哪些版本、从何时起”;
  • 为存量商业客户提供过渡期与兼容合同;
  • 准备好应对分叉(通常不可避免)。

4. 代价预期

  • 分叉几乎必然发生,失去一部分社区贡献者;
  • 被 OSI、Fedora、Debian 等官方组织从”开源软件”名录中移除;
  • 媒体与博客圈会有较长时间的负面舆论;
  • 生态集成厂商需要重新做许可证审核(SCA/SBOM 系统要更新);SCA/SBOM 工程参考 SCA/SBOM

5. 何时不要切

  • 如果核心竞争力是”社区最活跃 + 迭代最快”,切协议会直接摧毁这一优势;
  • 如果商业化模式是”Support & Services”而非”Hosted”,切协议并不能解决问题(Red Hat 就从未切协议,因为它不怕 CentOS);
  • 如果项目已被基金会托管(如 CNCF、ASF 项目),公司根本没有单方面切换的权力。

6. 切协议的”软替代方案”

如果”切协议”代价过大,还有几种”软替代方案”可以部分替代 Source Available 的效果:

  • 商标限制:即使代码协议不变,也可以通过商标保护限制”使用项目名称对外提供服务”。Kubernetes、Redis、Elasticsearch 都注册了商标,第三方如果要自建服务,必须去掉项目品牌。
  • 认证与兼容性测试:通过 CNCF Certified Kubernetes、Apache Kafka Verified 等认证机制,把”官方认证”与”非官方分叉”区分开。
  • 文档、训练数据、Ops 工具保留闭源:核心代码开源,但 Runbook、监控 Dashboard 模板、Helm Chart、训练数据集等”运维资产”保持闭源,仍然可以形成差异化。
  • 官方发行版 vs. 社区发行版:官方维护 LTS(Long Term Support,长期支持)分支,社区只能从 Rolling Release(滚动发布)起步,提高下游发行版的运维成本。

以上这些方式,在不触动许可证的前提下仍能构建商业壁垒,是很多成熟开源公司并行使用的策略。


五、决策树

本节给出一套可操作的开源战略决策树。实际项目中可以按以下顺序回答问题。

5.1 要不要开源

问题 1:这部分代码是否具有”可复用性”(其他公司可能需要类似功能)?

  • 否:不要开源。闭源或内源(Inner Source)即可。开源没有价值(没人用)还要付维护成本。
  • 是:进入问题 2。

问题 2:开源能否带来以下至少一项收益?

    1. 成为行业事实标准(如 Kubernetes、TensorFlow、OpenTelemetry 等类型的基础设施);
    1. 降低客户自建替代方案的意愿(用开源把”市场缝隙”抢占);
    1. 吸引生态伙伴帮你写集成(SDK、Connectors、监控、插件);
    1. 满足监管与客户的”源码可审计”要求(信创、金融、政务场景);
    1. 品牌建设与人才吸引。

如果一项都没有,不要开源。

问题 3:这部分代码是否是公司核心 IP(失去它会显著削弱竞争力)?

  • 是:慎重开源。可以考虑只开源外围接口、SDK、客户端,而不开源服务端核心;或采用 Source Available 协议(BSL/SSPL)。
  • 否:可以较放心地开源。

问题 4:是否有资源长期维护?

  • 开源项目一旦有用户,就必须持续响应 Issue、评审 PR、发布新版、修复安全漏洞。一个中等活跃度的 Apache 项目通常需要 2-4 人全职维护;一个有几十万 Star 的基础设施项目通常需要 10+ 人的 Maintainer 团队。
  • 没资源就不要开源——“死项目”比”没项目”对品牌伤害更大。

5.2 选哪个协议

在决定开源之后,选协议的关键问题是:

问题 5:你的商业模式是什么?

商业模式 推荐协议
Support & Services(Red Hat 模式) Apache 2.0 / GPLv2 / MulanPSL-2.0
Open Core(GitLab 模式) 核心用 Apache 2.0 或 AGPL;商业扩展闭源
Dual License(MySQL 模式) GPL/AGPL + 商业许可
Hosted(Confluent 模式) Apache 2.0 / BSD;云厂商威胁大时考虑 AGPL
Source Available(HashiCorp/Elastic 当前模式) BSL 1.1 或 SSPL
Foundation(Kubernetes 模式) Apache 2.0(基金会通常要求)

问题 6:核心防御对象是谁?

  • 防商业集成商偷偷闭源嵌入:选 GPL / LGPL(把代码作为库嵌入)或 AGPL(作为服务后端)。
  • 防公有云厂商直接托管:选 AGPL / SSPL / BSL / ELv2。但要权衡社区反弹。
  • 不想防任何人,只想要广泛使用:选 MIT / BSD / Apache 2.0

问题 7:是否面向中国市场为主?

  • 是:考虑 MulanPSL-2.0(中英双语,中国法律管辖友好,条款与 Apache 2.0 基本等价)。
  • 否:优先 OSI 认证协议,MulanPSL 在海外认知度仍有限。

问题 8:项目未来是否可能捐给基金会?

  • 是:现在就选 Apache 2.0(绝大多数基金会要求)。
  • 否:任何 OSI 协议都可以。

5.3 要不要双许可

问题 9:你是否拥有所有代码的完整版权?

  • 否:不能双许可(除非所有贡献者都签过 CLA)。
  • 是:可以双许可。

问题 10:你的产品是否主要以”库 + 嵌入式”形式被集成?

  • 是:AGPL/GPL + 商业许可的威慑效果强(集成方不想开放自己代码就得付钱)。
  • 否(例如主要以服务形式被使用):双许可威慑效果有限,不如直接 Source Available。

问题 11:你能否承担 CLA 带来的贡献成本(贡献者必须额外签署协议)?

  • 能:继续双许可。
  • 不能:选非双许可路线。

5.4 何时改协议

问题 12:当前协议是否真的成了瓶颈?

  • 不是:不要改。任何改动都会带来社区反弹。
  • 是:进入问题 13。

问题 13:你是否满足改协议的必要条件?

  • 所有贡献者都签过 CLA / 版权集中在单一实体;
  • 项目已有”不可替代”的用户基数(换言之,分叉出来也很难取代你);
  • 董事会、法务、PR(公关)团队都已准备好应对舆论风暴。

三条全满足再动手。

问题 14:改到什么协议?

  • 商业敌人是云厂商:BSL 1.1(温和) > SSPL(强硬) > ELv2(最定制化)。
  • 商业敌人是集成商:GPL/AGPL(OSI 认证,较少反弹)。

三种 Source Available 协议的横向对比

维度 BSL 1.1 SSPL v1 ELv2
OSI 认证 否(明确被拒)
使用限制 限制”竞争性用途”,由作者定义 必须开源整个运维栈 禁止”作为托管服务对外提供”
时效 4 年后自动转宽松协议 无时效 无时效
社区接受度 相对较高(因为时效条款) 很低(SSPL 被广泛红名单) 中等(条款相对清晰)
典型采用者 HashiCorp、CockroachDB、MariaDB MaxScale MongoDB、Elastic(2021-2024) Elastic(2021+)
反扑分叉 OpenTofu(Terraform) Valkey(Redis)、OpenSearch(Elastic) OpenSearch

选择时的经验法则:

  • 如果不想彻底背弃开源社区,选 BSL 1.1——时效条款是最大公约数;
  • 如果商业核心高度依赖托管服务,选 SSPL 或 ELv2——威慑最强,但要承担 OSI 反对带来的社区代价;
  • 无论选哪个,都要同时加一个 OSI 协议作为可选项(如 AGPLv3),这是 Elastic 与 Redis 的教训结晶。

问题 15:何时改回去(或加回 OSI 协议)?

  • 如果分叉项目已获得基金会加持且形成独立生态,尽快加回一个 OSI 兼容可选项(如 Elastic 2024 年加 AGPLv3、Redis 2025 年加 AGPLv3)。
  • 这是”认栽并修复”的动作,但能避免失去整个开源生态位。

5.5 决策树的组合应用:一个虚构案例

把上述问题串起来,以一家虚构的”国内云原生向量数据库创业公司”为例演示决策过程:

产品:分布式向量检索引擎,支持亿级向量的 ANN(Approximate Nearest Neighbor)检索,提供 SQL 与 REST API 两套接口。

Step 1(是否开源):向量数据库是基础设施,开发者自下而上选型特征强(Milvus、Weaviate、Qdrant 都是开源),如果选择闭源几乎无法进入开发者心智 → 必须开源

Step 2(选什么协议):目标包括海外市场(北美 AI 团队)与国内信创市场,希望进 CNCF 或 LF AI & Data 基金会 → 首选 Apache 2.0(国内市场可额外提供 MulanPSL-2.0 双许可的声明)。

Step 3(要不要 CLA):需要保留未来切协议的可能,且单一公司拥有版权 → 采用 DCO + 公司 CLA(DCO 降低贡献门槛,CLA 保证版权归属)。

Step 4(商业模式)

  • 0-1 阶段:Apache 2.0 + 托管服务(云上 Vector DB Cloud),对标 Zilliz Cloud、Pinecone;
  • 1-10 阶段:增加 Enterprise 版本,提供 RBAC、审计、跨区域复制等特性(Open Core);
  • 10+ 阶段:视云厂商竞争情况,决定是否切 BSL 或 SSPL。

Step 5(何时改协议):仅当三大公有云(阿里云、腾讯云、AWS)都推出托管版本并直接抢夺付费客户时,才启动协议切换评估。启动时需:

  • 确认所有贡献者都签过 CLA;
  • 与核心 Maintainer 提前沟通;
  • 准备 FAQ、官方博客、与存量客户的沟通方案;
  • 保留”加回 AGPL 作为可选项”的回退路径。

这个案例展示的不是”唯一正确答案”,而是”完整的决策过程”——开源战略的价值,就在于让每一步都有理由可循、有前例可考、有后路可退


六、与产品生命周期的关系

开源协议与商业模式的选择,不是一次决定终身,而是随产品生命周期动态调整。本节给出典型路径。

6.1 早期(0-1):开源还是闭源

0-1 阶段(产品从想法到第一批付费客户)的核心矛盾是:吸引早期用户 vs 保护核心 IP

典型做法:

  • 如果产品主要靠”开发者自下而上”传播(数据库、中间件、开发工具),尽早开源。开源本身就是冷启动的最佳 PR 手段。
  • 如果产品主要靠”企业自上而下”采购(ERP、CRM、BI),可以先闭源。企业采购关注 ROI 与 SLA,不关心是否开源。
  • 选协议时优先 Apache 2.0——宽松、OSI 认证、基金会友好,为后续进基金会保留可能。

典型路径:TiDB、OpenTelemetry、Vite 等都是 Day 1 开源的典型。

早期的”最小治理”清单:即使项目只有两三个 Maintainer,也应该在第一个 release 前补齐:LICENSE 文件、README(含使用说明、构建说明、贡献指南链接)、CONTRIBUTING.md、CODE_OF_CONDUCT.md(行为准则)、SECURITY.md、ISSUE_TEMPLATE、PULL_REQUEST_TEMPLATE、RELEASE_NOTES 或 CHANGELOG。这些文件的完备度是”项目专业度”的第一印象,对后续吸引贡献者有巨大影响。缺失任何一项,都会让潜在贡献者觉得”这个项目还不成熟,不值得投入”。

6.2 成长期(1-10):许可证的战略意义

1-10 阶段(从第一批付费客户到稳定商业化)的核心问题是:如何从开源用户中筛选出付费客户

典型做法:

  • Open Core:把企业级特性放到商业版本里(GitLab 模式)。
  • Dual License:GPL/AGPL + 商业许可(MySQL、Qt 模式)。
  • Hosted:开始提供托管服务(Confluent、MongoDB Atlas 模式)。

这个阶段是协议选择最灵活的时期——商业模式尚未完全定型,如果 Apache 2.0 证明不利,仍有机会在下一个大版本加 AGPL 或切 Source Available(前提是有 CLA)。

典型路径:Elastic 从 Apache 2.0(2010 年起)到 Open Core+Apache 2.0(2015 年加 X-Pack)到 SSPL+ELv2(2021 年)。

1-10 阶段的组织变化:这个阶段公司内部的组织结构会发生几个关键变化:

  • OSPO 的建立:开源项目办公室成为独立部门或虚拟组织,负责协议审计、上游贡献策略、合规工具链等。参见 OSPO
  • CLA/DCO 流程自动化:通过 CLA Assistant、DCO bot 等工具纳入 CI 流程,避免贡献者在签约上卡脖子。
  • 发行版与 LTS 分支:从单一主干演进为 LTS + 滚动发布的双轨,支持企业客户对”长期稳定”的诉求。
  • 社区运营专职化:DevRel(Developer Relations)、Community Manager、Tech Writer 等职位出现,把”社区运营”从 Maintainer 副业变成专职。
  • CLA 与许可证审计工具的 CI 化:FOSSA、Black Duck、Scancode 等工具集成到 CI pipeline,确保每次合并都不引入新的许可证冲突。

这些变化的共同点是:开源从”研发活动”升级为”跨部门的公司能力”。一个能做到这五点的 10+ 员工开源公司,通常已经具备了进入下一阶段的组织基础。

一个常被忽视的阶段变化:用户画像的演进。产品从 0-1 到 10+ 的过程中,用户画像会发生巨大变化:

  • 0-1 阶段:主要用户是”个人开发者 + 极客 + 技术博主”,他们关心的是”是否好玩、文档是否好、能否贡献、能否写 blog 推广”;
  • 1-10 阶段:主要用户转变为”初创公司工程团队 + 中型企业架构师”,关心的是”是否稳定、是否有生态、是否容易招到人用、采购流程是否便捷”;
  • 10+ 阶段:主要用户变成”大企业 CIO / CTO + 采购部门 + 合规部门 + 外部审计”,关心的是”是否合规、是否有 SLA、是否有 Escalation 通道、是否可索赔”。

协议与商业模式必须随用户画像调整。例如:0-1 阶段的 Apache 2.0 利于吸引极客,10+ 阶段的 BSL 利于防御云厂商——同一个协议选择,在不同阶段的适用性完全相反。这也解释了为什么很多老牌开源项目的”切协议”并非单纯的商业冲动,而是对用户结构变化的理性响应。

6.3 成熟期(10+):防御与维护

10+ 阶段(产品已成熟,增长放缓,主要对手是公有云或分叉)的核心问题是:如何防止价值被竞争对手无偿占有

典型做法:

  • 协议切换到 Source Available(Redis、HashiCorp、Elastic 模式),抬高云厂商的门槛。
  • Open Core 中把更多特性下放到商业版(MongoDB 2018 年切 SSPL 同时把部分云原生特性收到 Enterprise)。
  • 加强云托管服务的深度整合,让托管版本显著优于自建。

这个阶段的切协议风险最大——因为用户基数庞大、生态广泛,任何动作都会引发争议。

典型路径:HashiCorp 2023 年切 BSL、Redis 2024 年切 RSALv2/SSPL。

10+ 阶段的隐性风险:这个阶段最大的隐性风险不是竞争对手,而是项目内部的技术债。一个运行 10+ 年的开源项目,通常会积累:

  • 过时的依赖(比如仍然依赖 Python 2、Node 10、GCC 4.x 等 EOL 版本);
  • 架构初期的错误决策(单进程 vs. 多进程、同步 vs. 异步、REST vs. gRPC 等);
  • 历史兼容性负担(为了向后兼容保留的已弃用 API);
  • 内部不一致的代码风格(不同年代 Maintainer 的风格差异);
  • 文档与实际实现脱节(文档来不及更新)。

这些技术债的累积会大幅降低项目的”被贡献意愿”——新贡献者来提 PR,发现构建要花两小时、CI 要跑半天、还要学一堆项目内部 DSL,就直接走了。成熟期的开源项目必须持续投入”项目卫生”工程——重构、清理、升级、规范化,否则会在协议切换之外再吃一记暗亏。

关于”半退出 Source Available”:部分公司在切换到 BSL/SSPL 后,发现社区反弹大于预期、分叉项目获得基金会加持,会选择性地”加回” AGPL 等 OSI 协议作为可选项,典型如 Elastic(2024-08)、Redis(2025-05)。这种”三协议并存”(Source Available + OSI Copyleft + 商业)的结构本质上是:对云厂商保持威慑(靠 Source Available 或 AGPL 的网络传染),对个人与中小企业保留开源友好(靠 AGPL),对不愿承担 Copyleft 义务的商业用户保留付费通道(靠商业许可)。这可能会成为未来”大型开源商业公司”的主流协议结构——既非纯 Apache 2.0 的”好人模式”,也非纯 BSL 的”强硬模式”,而是在三者之间寻找最大公约数。

6.4 衰退期:开源作为退出策略

衰退期的产品有两种退出方式:

  1. 捐给基金会作为社区项目延续:原公司撤出维护,由社区志愿者接手。典型如 OpenOffice 捐给 Apache、Symfony 长期由 SensioLabs 维护等。
  2. 存档归档:GitHub 上将仓库标记为 Archived,不再接受贡献,告知用户该项目已 EOL(End of Life)。

开源的一个意外红利是——即使公司倒闭,代码仍在,用户可以自行维护。这对关键客户的心理安全感有巨大价值,也是开源相对闭源的结构性优势。

衰退期的交接工程:如果选择捐给基金会延续,交接过程本身就是一个工程项目:

  1. 版权清理:确认所有历史贡献的 CLA / DCO 签署情况,对无法联系的贡献者的代码段可能需要重写;
  2. 品牌与商标转移:项目名称、Logo、域名等的所有权转交给基金会;
  3. 基础设施迁移:GitHub 仓库、CI/CD、文档网站、邮件列表、聊天频道(Slack/Discord/IRC)、会议记录等的迁移;
  4. 核心 Maintainer 的过渡:原公司员工如果继续作为 Maintainer 贡献,身份需要从”XX 公司员工”转为”独立 Maintainer 或基金会 PMC 成员”;
  5. 社区沟通:公开的 Roadmap 变更、FAQ、向用户说明”为什么捐、捐给谁、对用户有什么影响”。

做不好这些工程,即使捐给了基金会,项目也可能因为交接混乱而进入事实上的”半死亡”状态。


七、工程坑点

本节汇总开源战略在工程落地中最常见的”踩坑点”,是前 19 篇文章的延展经验总结。

1. 协议选择反复:在公开仓库里多次变协议,生态被折腾死

每一次协议切换都是 PR 事件。GitLab 在 2013 至 2014 年间多次调整协议(MIT → EE/CE 分版本 → MIT for CE),虽然每次都有理由,但外界累积的印象是”协议不稳定”。尽量在第一次选定时深思熟虑。

2. CLA 缺失:想改协议发现无权

很多早期开源项目(2010 年前的很多 Apache 协议项目)没有强制 CLA,一旦贡献者数量达到几百人,再想切协议基本不可能——联系所有贡献者重新获取许可几乎做不到。从 Day 1 就用 CLA Assistant 或 DCO(参见 CLA/DCO)。

3. Copyleft 传染未隔离:商业版本被迫开源

Open Core 模式下,如果商业版本通过静态链接、同进程 plugin、衍生作品等方式引用了 GPL 代码,商业版本也可能被迫 GPL 化。架构上必须在 GPL 边界上用 LGPL、插件化、gRPC/进程隔离等方式切开。参见本系列 Copyleft 工程

4. 双版本同步延迟:CE 与 EE 的安全补丁发布不同步

CE/EE 分离后,EE 往往先修复安全漏洞再 backport 到 CE,社区会抗议”把社区当二等公民”。必须有明确的同步策略(通常是同时发布)。

5. 不合规依赖污染整个发行版

如果开源主仓库依赖了某个 GPL 库,而主仓库是 Apache 2.0,会产生协议冲突。SBOM 与 SCA(参见 SCA/SBOM)必须作为 CI 一部分自动检查。

6. 商标保护缺失:被冒用或被基金会”吞并”

开源不意味着放弃商标。Elasticsearch、Redis、Kubernetes 等名称都有商标注册,防止他人用同名做发行版。进基金会前务必确认商标归属策略。参见本系列 专利商标

7. 出海合规缺失:加密模块被美国出口管制法律追责

开源数据库、中间件往往包含 AES、RSA 等加密实现,在美国出口管制下属于 ECCN 5D002 类。即使代码开源,“出口”行为仍可能触发合规要求。详见 出海合规

8. 社区治理真空:Maintainer 走人后项目死亡

单人 Maintainer 的项目是最大雷区。企业发起的开源项目应该从 Day 1 就建立 Maintainer 团队(至少 3 人)、治理文档、技术委员会。参考 OSPO 的组织建设。

9. 对”开源免费”的误解

开源 ≠ 免费。开源的成本包括:法务评审(许可证审计)、研发投入(上游贡献的工时)、合规工具(SCA、SBOM)、社区运营(文档、会议、发布)、安全响应(CVE 跟踪、补丁发布)。一个活跃项目每年的”隐性成本”往往比许可证费用高得多。

10. 把开源当成救命稻草

很多创业公司把”开源”当成”卖不动产品”的救命稻草——产品卖不出去就开源,希望”靠社区把产品做起来”。这几乎从来不奏效。开源只能放大既有产品的传播与生态,不能修复产品本身的价值问题。

11. 仓库结构与历史记录未做清理就推上公网

内部孵化的项目在推上 GitHub 之前,必须完成:.git 历史清理(避免历史提交中出现内部密钥、内部路径、员工真实邮箱)、二进制大文件清理(避免 repo 体积臃肿)、注释中内部产品代号替换、所有 LICENSE 与 NOTICE 文件补齐。非常多国内企业第一次开源时都在这一步踩坑——把 git log 直接推出去,结果暴露了内部 CI 配置、Jenkins URL、内网 IP 段等。建议在开源前用 git filter-repo 或 BFG Repo-Cleaner 做一次彻底清洗。

12. README 与文档的双语策略

如果目标是全球开源,README 必须以英文为主语言。很多国内企业开源项目 README 只有中文,英文区区几行,直接劝退海外贡献者与用户。建议策略:英文 README 为主,中文 README 放在 README_zh.md 或子目录,并在顶部互链。

13. 版本发布节奏与 Breaking Change 的承诺

开源项目一旦有企业用户,就必须承诺 SemVer(语义化版本)——major.minor.patch 的含义不能乱。如果公司需要在某个 minor 版本做 Breaking Change(向后不兼容),必须提前至少一个 minor 版本发 Deprecation Warning(废弃告警),并在文档中明确写出迁移路径。这是企业用户最看重的工程纪律,也是”开源是否可企业采用”的重要判据。

14. 安全响应的公开时间线

一旦项目达到”关键基础设施”级别,必须有公开的 Security Policy(通常放在 SECURITY.md)、专用的 security@ 邮箱、公开的 CVE(Common Vulnerabilities and Exposures)披露时间表。Embargo(禁运期)期内对上游与关键下游(Linux 发行版、基金会)的通报流程也必须提前预演。缺失这一套流程的项目,一旦出重大漏洞,舆论代价会被放大 10 倍以上。

15. 商业版本功能回灌社区的节奏

Open Core 模式下,一个长期悬而未决的问题是:商业版功能什么时候”降级”到开源版?如果永远不降级,社区会失望;降级太快,付费用户会流失。健康的节奏通常是:新功能在商业版领先 18-36 个月,经过商业客户验证后再回灌到开源版。GitLab、Grafana 都有类似策略。明确写在 product roadmap 中是缓解社区焦虑的关键。

16. 内部使用开源的合规盲区

很多公司把重心全放在”对外开源的合规”上,却忽视了”内部使用开源的合规”。比如内部业务系统使用了 AGPL 的库,虽然没有对外分发,但如果这个系统通过网络对外提供服务(哪怕只是给自家 App 用),AGPL 的网络 Copyleft 条款可能触发。内部使用合规应建立在 SCA/SBOM 的基础上,见本系列 SCA/SBOM

17. 贡献策略缺失:上游补丁维护成本失控

如果公司内部基于某个开源项目做了大量定制(Fork),却不把修改回馈上游,每次上游发布新版都要做一次痛苦的 rebase。一个典型场景:内部维护的 Linux 内核 fork 比社区版落后 2-3 个次要版本,每次合并都要解决几千个冲突。贡献上游是降低长期维护成本的最佳手段,而不是一种”奉献”——这个认知是很多传统企业需要重建的心智模型。

18. 双协议声明的文件级粒度混乱

一个项目如果采用 GPL + 商业双许可,必须在每个源文件头部都写清楚协议声明;如果采用 Apache 2.0 + MulanPSL v2 的双协议,同样要有清晰的文件级声明与项目根目录 LICENSE 文件。混乱的声明会在诉讼中成为致命弱点——当对方质疑你是否有权以某协议分发时,缺乏文件级证据就只能被动。REUSE Specification(由 FSFE 主导)是近年兴起的文件级协议声明标准,值得参考。


八、系列总结

本文是《开源许可与版权工程》系列的第 20 篇,也是收官篇。回顾整个系列的 20 篇文章,它们构成了一个完整的知识框架——从法律基础到工程实践,从协议分析到战略决策:

第一部分:基础篇(01-02)

  • 01 开源生态全景:从 Linux 到 Git、从 FSF 到 OSI,奠定整个开源世界的版图;
  • 02 中国版权法:著作权法、计算机软件保护条例与开源协议的交叉点。

第二部分:许可证分类与深度解析(03-10)

  • 03 许可证全景:Copyleft / Permissive / Source Available 三大类的分类体系;
  • 04 Copyleft 工程:GPL 传染性的架构隔离工程实践;
  • 05 专利与商标:开源协议中的专利授权与商标保护;
  • 06 MIT / BSD / Apache:三大宽松协议的对比与选型;
  • 07 GPL / LGPL:强 Copyleft 与弱 Copyleft 的应用差别;
  • 08 AGPL / SSPL / BSL:网络 Copyleft 与 Source Available 的兴起;
  • 09 木兰许可证:国产开源协议的体系与条款;
  • 10 创作共用与数据许可:代码之外的 CC / ODbL / ODC-BY 等。

第三部分:案例分析(11-15)

  • 11 红芯浏览器 / 深度的案例:国产开源的典型争议;
  • 12 CentOS → Rocky / Alma:发行版政策转变的生态冲击;
  • 13 OpenHarmony:华为的鸿蒙开源战略;
  • 14 OceanBase / Doris:国产数据库的开源路径;
  • 15 中国开源诉讼案例:司法实践与典型判例。

第四部分:工程与治理(16-19)

  • 16 SCA / SBOM:软件成分分析与物料清单;
  • 17 OSPO:开源项目办公室的组织建设;
  • 18 CLA / DCO:贡献者许可与开发者原创声明;
  • 19 出海合规:ECCN、实体清单、加密出口、OFAC 制裁。

第五部分:战略(20)

  • 20 开源战略(本文):为什么开源、选哪个协议、如何构建商业壁垒。

推荐阅读路径

  • 法务/合规人员路径:02 → 03 → 06 → 07 → 08 → 09 → 16 → 18 → 19;
  • 架构师/工程师路径:03 → 04 → 07 → 08 → 16 → 17 → 20;
  • CTO / 创业者路径:01 → 03 → 06 → 08 → 13 → 14 → 17 → 20;
  • 国产化/信创路径:02 → 09 → 11 → 12 → 13 → 14 → 15;
  • 出海/全球化路径:06 → 08 → 17 → 18 → 19 → 20;
  • OSPO 建设路径:03 → 16 → 17 → 18 → 19 → 20。

给不同角色的”一句话建议”

  • 给创业 CEO:不要因为估值就开源,也不要因为恐惧就闭源。先问自己”没有开源这个产品是否仍然值得做”,如果答案是”是”,再谈开源只是加速器。
  • 给 CTO:协议选择是架构问题,不是法务问题。Copyleft 隔离、Open Core 边界、上游依赖合规都要在架构评审阶段就定下来,不能等法务最后来把关。
  • 给架构师:开源与闭源的边界是可设计的。通过 gRPC 解耦、插件化加载、LGPL 边界等工程手段,可以同时获得开源的生态与闭源的壁垒。
  • 给 Maintainer:你的时间是项目的最稀缺资源。Issue Triage、PR Review、Release 工程都是项目可持续性的关键,不要全花在代码上。
  • 给法务:开源不是”不能管的法外之地”,而是一个有完整协议体系、判例积累、工具链支撑的成熟领域。从 LICENSE 文本到 SBOM 报告,每一步都可以工程化。
  • 给企业采购:把”可审计源码”和”企业订阅”同时纳入供应商评估标准。只看源码不看服务,是业余;只看服务不看源码,是盲信。
  • 给 OSPO 负责人:把开源贡献视作长期 ROI 投资,而非短期成本。一笔上游贡献可能让你在未来某个关键特性上获得先发权,这是当下看不到的隐性回报。
  • 给基金会管理者:中立性是基金会的第一资产。任何向特定企业倾斜的动作,都会在多年后以信任流失的形式放大偿还。

系列的核心主张

  1. 开源是一种工程,不是一种信仰。协议选择、贡献流程、合规工具、治理结构都是可设计的。
  2. 合规不是阻碍开源的枷锁,而是让开源可持续的基础。没有合规,开源就只是盗版的遮羞布。
  3. 开源战略不是非黑即白。Open Core、Source Available、双许可都是在”开放”与”收益”之间的合理折中,没有绝对的”道德高地”。
  4. 中国开源生态正在形成自己的特色:MulanPSL、开放原子基金会、信创采购、国产 CPU + OS + DB 的垂直整合,都是值得长期关注的独特变量。
  5. 企业开源不要浪漫化,也不要恐惧化。一套基于决策树的理性框架,加上对自身产品生命周期的清醒判断,才是可持续的开源之路。
  6. 协议切换是最后手段,而非常规工具。每一次切协议都会消耗多年积累的社区信任,必须在其他手段(产品迭代、托管差异化、商标保护)都不奏效时才启用。
  7. 基金会不是银弹。捐给基金会可以获得公信力,但也失去了单方面决策权与协议切换权,是一次性、不可逆的战略决定。

未来可能的演进方向(一点个人观察,不构成预测):

  • “三协议并存”可能成为主流:Source Available + AGPL + 商业许可的三元结构,在 Elastic、Redis 之后可能被更多公司采用。
  • 中国本土协议的国际化:MulanPSL 若要真正具备国际影响力,需要更多海外 OSI 兼容认证、更多海外项目采用案例。
  • AI 时代的开源治理:大模型权重的开源(Llama、DeepSeek、Qwen 等)引发了”Open Weights ≠ Open Source”的新辩论,未来的许可证体系需要覆盖模型权重、训练数据、推理代码等新维度。这是系列之外值得单开一本书的话题。
  • 合规自动化:SBOM、SCA、许可证分类将进一步与 CI/CD 深度融合,“合规即代码”(Compliance as Code)将成为 DevOps 的标配环节。
  • 法律判例的在地化:过去的开源诉讼以欧美为主(SCO vs. IBM、Jacobsen v. Katzer、Oracle v. Google 等),未来十年中国的开源诉讼案例会显著增加(参见 中国开源诉讼),推动国内法院对开源协议定性、CLA 效力、AGPL 边界等问题的本地化解释。
  • 供应链安全的法规化:欧盟 CRA(Cyber Resilience Act,网络韧性法案)、美国 EO 14028(Executive Order,行政命令)等法规正在将 SBOM、漏洞响应等开源工程实践上升为法律义务,这会改变开源维护的成本结构。

作为 20 篇系列的终章,希望这一整套文章能陪伴每一位读者从”听说过开源”走到”能设计开源工程”。开源不是一个道德问题,是一个工程问题——这是我们想留给你的最后一句话。

感谢完整阅读这 20 篇文章的每一位读者。希望这个系列能成为你在开源工程与法务决策中的参考坐标。


本文为工程参考,不构成法律意见。涉及具体法律风险请咨询专业法律顾问。

九、参考资料

  1. Open Source Initiative(OSI). “The Open Source Definition”. https://opensource.org/osd
  2. OSI. “Licenses & Standards”. https://opensource.org/licenses
  3. OSI. “OSI rejects Server Side Public License (SSPL)”. 2019.
  4. Elastic. “Doubling down on open, Part II”. 2021-01.
  5. Elastic. “Elasticsearch is Open Source, Again”. 2024-08-29.
  6. AWS. “Stepping up for a truly open source Elasticsearch”. 2021-01.
  7. OpenSearch. “OpenSearch joins the Linux Foundation”. 2024-09.
  8. HashiCorp. “HashiCorp adopts Business Source License”. 2023-08-10.
  9. OpenTofu. “Announcing OpenTofu”. 2023-09-05. https://opentofu.org
  10. IBM. “IBM Closes Landmark Acquisition of HashiCorp”. 2025-02.
  11. Redis. “Redis Adopts Dual Source-Available Licensing”. 2024-03-20.
  12. Linux Foundation. “Linux Foundation Launches Open Source Valkey Community”. 2024-03-28.
  13. Redis. “Redis 8 now available under AGPLv3 license”. 2025-05.
  14. MongoDB. “MongoDB now released under the Server Side Public License”. 2018-10.
  15. Apache Software Foundation. “How the ASF Works”. https://www.apache.org/foundation/how-it-works.html
  16. CNCF. “Graduated and Incubating Projects”. https://www.cncf.io/projects/
  17. 开放原子开源基金会. “openEuler 捐赠仪式”. 2021-11.
  18. 开放原子开源基金会. “OpenHarmony 项目”. https://www.openharmony.cn
  19. 阿里巴巴. “PolarDB for PostgreSQL 开源”. GitHub: alibaba/PolarDB-for-PostgreSQL. 2021.
  20. OceanBase. “OceanBase 社区版开源”. 2021-06. https://github.com/oceanbase/oceanbase
  21. PingCAP. “TiDB”. https://github.com/pingcap/tidb
  22. CNCF. “TiKV Graduation”. 2020-09.
  23. Red Hat. “Furthering the evolution of CentOS Stream”. 2023-06.
  24. Heather Meeker. “Open (Source) for Business: A Practical Guide to Open Source Software Licensing”. 2020.
  25. Nadia Eghbal. “Working in Public: The Making and Maintenance of Open Source Software”. Stripe Press, 2020.
  26. Joseph Jacks(OSS Capital). “The Commercial Open Source Company Landscape”. https://coss.community
  27. Business Source License 1.1 文本. https://mariadb.com/bsl11/
  28. Server Side Public License v1 文本. https://www.mongodb.com/licensing/server-side-public-license
  29. Elastic License 2.0 文本. https://www.elastic.co/licensing/elastic-license
  30. 木兰公开许可证第 2 版(MulanPSL-2.0)文本. https://license.coscl.org.cn/MulanPSL2

上一篇:出海合规:ECCN、实体清单、加密出口、基金会与 OFAC | 下一篇:开源许可证实操手册:从选型到发布 | 返回:开源许可与版权工程

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。