9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

如何将一个开源项目加入 CNCF?

CNCF 中的开源项目治理及组织架构

  • 2019-04-18
  • 本文字数:1848 字

    阅读完需:约 6 分钟

如何将一个开源项目加入CNCF?

前段时间 InfoQ 二叉树发布了一期视频“为什么中国没有 Apache 基金会这样的组织?”,记者采访了开源社的理事长刘天栋,他的一番话很有启迪意义。作者关注和参与 CNCF 基金会多年,收获颇丰,了解到了一个开源社区(基金会)治理的规则。


虽然 CNCF 没有 Apache、GNOME、FreeBSD 历史那么悠久,但是它成立短短几年就成功的运作了 Kubernetes 这样的超大型开源项目,一定有其可取之处。本文就此话题,分享下 CNCF 基金会的开源项目治理规则和组织架构,以及如何将一个开源项目加入到 CNCF。


CNCF 根据“鸿沟理论”将其托管的项目分成三个成熟阶段,并设置了项目晋级到更高阶段的标准。


鸿沟理论”是由 Geoffrey A. Moore 提出的高科技产品的市场营销理论。新技术要想跨越鸿沟,必须能够实现一些跨越式的发展,拥有某一些以前不可能实现的功能,具有某种内在价值并能够赢得非技术人员的青睐。



开源项目如何加入 CNCF

  1. 开源项目所支持的公司成为 CNCF 会员

  2. 开源项目满足 CNCF 的要求(见后文)

  3. 在 GitHub 上提交proposal(GitHub Issue)列举项目介绍、现状、目标、license、用户与社区等

  4. 由 Chris Aniszczyk 安排该项目在某个 TOC 双月会议上介绍给 TOC 成员

  5. 1.TOC 会将开源项目指定到某个 SIG

  6. 项目获得两个 TOC 成员的赞成可进入sandbox(也可以直接获得 2/3 多数 TOC 投票进入 Incubating 状态)

  7. 知识产权转移给 CNCF

  8. CNCF 安排博客撰写、PR 等

  9. 每年一次评审,晋升到 incubating 需要 2/3 的 TOC 成员投票赞成;至少 3 家用户成功在生产上使用;通过 TOC 的尽职调查;贡献者数量健康稳定

  10. 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(微信同手机号)。

2019-04-18 08:004464

评论

发布
暂无评论
发现更多内容

openGauss内核分析:SQL by pass & 经典执行器

Java-fenn

Java

用了Fabric.js后突然想到了...

为自己带盐

实时音视频 Fabric.js 9月月更

让泛型的思维扎根在脑海——深刻理解泛型时间

Java-fenn

Java

【9.2-9.9】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

C++ STL deque 容器底层实现原理(深度剖析)

C++后台开发

容器 后端开发 C++后台开发 C++开发 C++ STL

干货 | 初窥 Pytest 测试框架,基础薄弱也能轻松 hold 住

霍格沃兹测试开发学社

从负载均衡到路由,微服务应用现场一键到位

Java-fenn

Java

干货 | 录制你的第一个web 自动化测试用例

霍格沃兹测试开发学社

同事多线程使用不当导致OOM,被我怒怼了

Java-fenn

Java

详谈 MySQL 8.0 原子 DDL 原理

Java-fenn

Java

VS Code加码Java生产力,IDEA危险了

Java-fenn

Java

2022年哪些工具适合设计企业产品手册?

Baklib

产品 产品手册

知识管理,知识经济时代必不可缺的工具

Baklib

知识管理 知识 知识经济

干货 | 原来升职加薪的测试工程师都擅长做接口测试

霍格沃兹测试开发学社

云对象 - 重新定义前后端交互

Java-fenn

Java

内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档

Java-fenn

Java

干货 | 一文搞定 uiautomator2 自动化测试工具使用

霍格沃兹测试开发学社

干货 | 仅需4步,即可用 Docker搭建测试用例平台 TestLink

霍格沃兹测试开发学社

干货 | web自动化总卡在文件上传和弹框处理上?

霍格沃兹测试开发学社

透过Redis源码探究Hash表的实现,你学废了吗?

Java快了!

百度前端高频面试题(附答案)

beifeng1996

JavaScript 前端

干货 | 一改测试步骤代码就全写?为什么不试试用 Yaml实现数据驱动?

霍格沃兹测试开发学社

干货 | 一文搞定 Docker 容器技术与常用命令

霍格沃兹测试开发学社

Go 语言创始人:复制亿点点代码比用别人轮子好!

Java-fenn

java;

有哪些方法可以提高企业的文档管理水平?

Baklib

文档 文档管理

相约 ArchSummit 杭州站,参与官方评论赢取精美周边!

InfoQ写作社区官方

热门活动 ArchSummit

干货 | 利用 pytest 玩转数据驱动测试框架

霍格沃兹测试开发学社

干货 | 应用打包还是测试团队老大难问题?

霍格沃兹测试开发学社

干货 | Web自动化测试中显式等待与隐式等待该怎么用?

霍格沃兹测试开发学社

WAIC 2022 | 洞见科技CTO何浩:隐私计算统一底座赋能金融数字化转型

洞见科技

干货 | 在Docker 上搭建持续集成平台 Jenkins

霍格沃兹测试开发学社

  • 扫码添加小助手
    领取最新资料包
如何将一个开源项目加入CNCF?_开源_宋净超_InfoQ精选文章