CNCF云原生基金会项目如何毕业

wen 开源项目 3

CNCF云原生基金会项目毕业全流程解析

📖 目录导读

  1. 什么是CNCF项目毕业? – 定义与意义
  2. CNCF项目成熟度模型 – Sandbox → Incubating → Graduated
  3. 毕业的硬性指标 – 代码、社区、采用度、治理四大维度
  4. 具体毕业流程 – TOC投票、商标检查、安全审计等关键步骤
  5. 已毕业项目案例分析 – Kubernetes、Prometheus等经验总结
  6. 常见问题FAQ – 项目方与贡献者最关心的十个问题
  7. 如何帮助项目走向毕业 – 从贡献者到维护者的实操建议

什么是CNCF项目毕业?

CNCF(Cloud Native Computing Foundation,云原生计算基金会)是Linux基金会旗下的云原生技术推广组织,它管理的开源项目会经历沙箱(Sandbox)→ 孵化(Incubating)→ 毕业(Graduated) 三个等级。毕业是CNCF项目的最高荣誉,意味着该项目已在生产环境中被广泛验证,社区活跃且治理成熟。

CNCF云原生基金会项目如何毕业

截至2025年,CNCF共有约180+个项目,其中只有不到20%成功毕业,毕业项目包括:Kubernetes、Prometheus、Envoy、CoreDNS、containerd、Flux、Jaeger等。

问答1:Q:为什么要追求毕业?
A:毕业项目会获得CNCF的背书,企业客户更信赖其稳定性;项目Logo可在官网显眼位置展示;项目维护者有机会进入TOC(技术监督委员会)席位。


CNCF项目成熟度模型

阶段 典型特征 最低要求
沙箱 初始代码提交,1~3个主要维护者 项目提案获得TOC批准
孵化 至少1个生产用户,5~10个维护者 通过TOC答辩,代码扫描通过
毕业 3个以上独立生产用户,社区自治理 通过全面审计,TOC投票通过

过渡时间经验值:从沙箱到孵化通常需要6~18个月;从孵化到毕业则需要至少12个月,部分项目(如Kubernetes)用了3年。


毕业的硬性指标

根据CNCF官方文档(github.com/cncf/toc),毕业项目必须满足以下四大维度:

🔧 代码与架构

  • 已通过CII 最佳实践徽章(Silver级别)
  • 有完整的API规范文档
  • 依赖的开源组件已明确安全审计

👥 社区健康度

  • 至少来自3个以上组织的维护者
  • 过去6个月内至少有10个以上的独立贡献者
  • 有明确的贡献指南、行为准则

📊 采用度证明

  • 至少3个不同组织的生产环境部署案例
  • 每个案例需提供书面证明(如Case Study)
  • 在GitHub上有300+个Star(非硬性但常见)

🏛️ 治理结构

  • 有TOC批准的治理委员会
  • 已签署CNCF商标许可协议
  • 核心贡献者来自至少2个国家

问答2:Q:如果项目只有一家公司在维护能毕业吗?
A:不能,CNCF明确要求“多样性”,毕业项目必须证明没有单点故障,例如2019年某容器调度项目因仅由同一企业贡献者主导而被打回孵化。


具体毕业流程(2025年最新版)

  1. 发起PR:在cncf/toc仓库提交毕业提案,包含所有证明文档。
  2. 安全审计:必须由CNCF指定的第三方(如Trail of Bits)完成代码安全审计。
  3. CII检查:获取CII Silver徽章(需通过100+条检查项)。
  4. 商标合规:确认项目命名不侵犯他人商标权。
  5. TOC答辩:在月度TOC会议上用30分钟进行PPT演示。
  6. 投票周期:TOC成员在2周内投票,需要66%以上同意。
  7. 公告发布:CNCF在官网发布博客,项目Logo加入“Graduated”标签。

整个流程从PR提交到官网更新平均耗时4~6个月。


已毕业项目案例分析

Kubernetes(2018年毕业)

  • 成功关键:形成CNI、CSI、CRI等标准接口;有超过4000个贡献者
  • 教训:早期治理文档缺失,导致2017年曾因API变更引发社区分裂

Prometheus(2018年毕业)

  • 成功关键:专注于“监控”单一场景;与Kubernetes深度集成
  • 教训:需控制维护者疲劳度,一度出现响应缓慢(平均PR合并需45天)

containerd(2019年毕业)

  • 成功关键:核心代码由Docker团队贡献,但有AWS、阿里云等独立维护者
  • 教训:需要保证“核心模块”与“扩展模块”的明确分界

问答3:Q:毕业失败的项目常见问题是什么?
A:最常见的是“仅有1个生产用户”、“维护者流失严重”、“安全审计未通过”(如发现未修复的CVE漏洞)。


常见问题FAQ(问与答)

Q1:项目刚进入沙箱,如何规划毕业路线?
A:第一步确保至少有2个组织贡献者;第二步开始撰写CII文档(可参考envoy的治理模型),建议在GitHub建立ROADMAP.md。

Q2:是否需要商业化公司背书才能毕业?
A:不需要,但需要真实的用户案例,例如个人开发者或学校也可作为用户证明。

Q3:毕业后的项目有什么额外福利?
A:可获得CNCF提供的免费云资源(如Google Cloud credit)、在KubeCon大会上的同传席位。

Q4:如果项目维护者少于5人,还有机会毕业吗?
A:概率极低,建议先通过CNCF的“导师项目”招募新维护者。

Q5:毕业项目的商标归谁?
A:归Linux基金会旗下CNCF所有,项目方需签署商标授权协议。

Q6:CII Silver徽章的具体要求?
A:包括代码必须经过静态工具扫描、已知安全漏洞必须在特定时间内修复、需设置issue模板等,具体可查看bestpractices.coreinfrastructure.org。

Q7:TOC投票中,如果某成员反对会怎么样?
A:反对者必须给出书面理由(例如安全漏洞未修复),项目方需根据反馈修改后再申请。

Q8:毕业项目可以降级吗?
A:可以,如果项目长期不维护,TOC有权将之降回孵化甚至沙箱。

Q9:毕业项目是否必须绑定CNCF的CI/CD工具?
A:不强制,但建议使用CNCF提供的测试基础设施(如Prow)。

Q10:个人开发者如何支持喜欢的项目走向毕业?
A:贡献代码、撰写用户案例、参加TOC会议聆听讨论,所有活跃贡献者都有可能获得CNCF的“社区贡献奖”。


如何帮助项目走向毕业:实操建议

如果你是项目维护者或贡献者,可以按以下步骤行动:

  1. 建立贡献者阶梯:从“good first issue”到“maintainer”的清晰晋升路径。
  2. 启动生产用户案例收集:联系你的用户,写一篇200字的案例(用他们的话说)。
  3. 每周跨时区代码审查:确保即使亚洲时间的提交也有人review。
  4. 注册CII徽章:接受100+条检查项,这本身就是一次健康度审计。
  5. 参加CNCF SIG会议:向TOC成员展示项目活跃度(如每周的SIG-Contributor Experience会议)。

记住毕业不是终点,而是新的起点,像Kubernetes至今仍在迭代其毕业后的治理模型。


参考来源:CNCF官方文档(github.com/cncf/toc)、KubeCon历年演讲实录、CNCF项目毕业案例库。

抱歉,评论功能暂时关闭!