前段时间 InfoQ 二叉树发布了一期视频“为什么中国没有 Apache 基金会这样的组织?”,记者采访了开源社的理事长刘天栋,他的一番话很有启迪意义。作者关注和参与 CNCF 基金会多年,收获颇丰,了解到了一个开源社区(基金会)治理的规则。
虽然 CNCF 没有 Apache、GNOME、FreeBSD 历史那么悠久,但是它成立短短几年就成功的运作了 Kubernetes 这样的超大型开源项目,一定有其可取之处。本文就此话题,分享下 CNCF 基金会的开源项目治理规则和组织架构,以及如何将一个开源项目加入到 CNCF。
CNCF 根据“鸿沟理论”将其托管的项目分成三个成熟阶段,并设置了项目晋级到更高阶段的标准。
“鸿沟理论”是由 Geoffrey A. Moore 提出的高科技产品的市场营销理论。新技术要想跨越鸿沟,必须能够实现一些跨越式的发展,拥有某一些以前不可能实现的功能,具有某种内在价值并能够赢得非技术人员的青睐。
开源项目如何加入 CNCF
开源项目所支持的公司成为 CNCF 会员
开源项目满足 CNCF 的要求(见后文)
在 GitHub 上提交proposal(GitHub Issue)列举项目介绍、现状、目标、license、用户与社区等
由 Chris Aniszczyk 安排该项目在某个 TOC 双月会议上介绍给 TOC 成员
1.TOC 会将开源项目指定到某个 SIG 中
项目获得两个 TOC 成员的赞成可进入sandbox(也可以直接获得 2/3 多数 TOC 投票进入 Incubating 状态)
知识产权转移给 CNCF
CNCF 安排博客撰写、PR 等
每年一次评审,晋升到 incubating 需要 2/3 的 TOC 成员投票赞成;至少 3 家用户成功在生产上使用;通过 TOC 的尽职调查;贡献者数量健康稳定
Sandbox 中的项目没有时效性质,可能永远都无法进入 incubating 状态,被 CNCF 谨慎宣传
CNCF 开源项目成熟度演进
CNCF 的开源项目遵循如下图所示的成熟度演进。
关于上图的一些说明:
加入 Sandbox 只需要 2 个 TOC 成员赞成
成熟一点的项目可以直接进入 incubating 阶段,但是 CNCF 会控制不同阶段的项目比例
晋级到 Incubating 或 Graduated 需要至少 2/3 的 TOC 成员(6 名或以上)投票赞成
每年将评审一次
目前处于沙箱、孵化中、已毕业项目的数量比例为 5:16:13,详见 https://cncf.io/projects。其中沙箱(sandbox)项目因为其处于早期阶段并没有直接在上面的链接页面中列出,而是一个单独的 Sandbox 页面,因为 CNCF 为 sandbox 阶段的项目会谨慎背书。
纳入 CNCF 开源版图的项目需要符合其对云原生的定义
CNCF 中托管的开源项目要符合云原生定义:
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
项目运作流程
下图演示了开源项目加入 CNCF 后的整个运作流程。
开源项目加入 CNCF 的最低要求(Sandbox)
一个开源项目要想加入 CNCF 必须满足以下要求:
项目名称必须在 CNCF 中唯一
项目描述(用途、价值、起源、历史)
与 CNCF 章程一致的声明
来自 TOC 的 sponsor(项目辅导)
license(默认为 Apache 2)
源码控制(Github)
网站(英文)
外部依赖(包括 license)
成熟度模型评估(参考 开源项目加入CNCF Sandbox的要求)
创始 committer(贡献项目的时长)
基础设施需求(CI/CNCF 集群)
沟通渠道(slack、irc、邮件列表)
issue 追踪(GitHub)
发布方法和机制
社交媒体账号
社区规模和已有的赞助商
svg 格式的项目 logo
由 Sandbox 升级到 Incubating 的要求
通过 TOC 的尽职调查
至少有 3 个独立的终端用户在在生产上使用该项目:一般在项目的官网列举实际用户
足够健康数量的贡献者:项目的 GitHub 上有明确的 committer 权限划分、职责说明及成员列表,TOC 将根据项目大小来确认多少 committer 才算健康
展示项目在持续进行、良好的发布节奏、贡献频率十分重要
由 Incubating 升级到 Graduated 的要求
满足 Sandbox 和 Incubating 的所有要求
至少有来自两个组织的贡献者
明确定义的项目治理及 committer 身份、权限管理
接受 CNCF 的行为准则,参考Prometheus
获得 CII 最佳实践徽章
在项目主库或项目官网有公开的采用者的 logo
参考归档的 Review。
参考
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论