前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何将一个开源项目加入CNCF?

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

作者头像
开源社
发布2019-05-29 15:49:14
1.1K0
发布2019-05-29 15:49:14
举报
文章被收录于专栏:开源社开源社

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

前言

前段时间看了一篇文章为什么中国没有 Apache 基金会这样的组织,二叉树视频中采访了开源社的理事长老刘,他的一番话也让我很受启发,在关注和参与 CNCF 基金会这几年来我也有很多收获,有一点就是了解到了一个开源社区(基金会)治理的规则。

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

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

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

图片来自 https://www.cncf.io/projects/

01

开源项目如何加入 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 谨慎宣传

02

CNCF 开源项目成熟度演进

CNCF 的开源项目遵循如下图所示的成熟度演进。

关于上图的一些说明:

  • 加入 Sandbox 只需要2个 TOC 成员赞成
  • 成熟一点的项目可以直接进入 incubating 阶段,但是 CNCF 会控制不同阶段的项目比例
  • 晋级到 Incubating 或 Graduated 需要至少2/3的 TOC成员(6名或以上)投票赞成
  • 每年将评审一次

目前处于沙箱、孵化中、已毕业项目的数量比例为5:16:13,

详见 https://cncf.io/projects 。其中沙箱(Sandbox)项目因为其处于早期阶段并没有直接在上面的链接页面中列出,而是一个单独的 Sandbox 页面,因为 CNCF 为 sandbox 阶段的项目会谨慎背书

03

纳入CNCF开源版图的项目需要符合其对云原生的定义

CNCF 中托管的开源项目要符合云原生定义:

  • 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API
  • 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
  • 云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。

04

项目运作流程

下图演示了开源项目加入 CNCF 后的整个运作流程。

05

开源项目加入 CNCF 的最低要求(Sandbox)

一个开源项目要想加入 CNCF 必须满足以下要求:

  • 项目名称必须在 CNCF 中唯一
  • 项目描述(用途、价值、起源、历史)
  • 与 CNCF 章程一致的声明
  • 来自 TOC 的 Sponsor(项目辅导)
  • License(默认为 Apache 2)
  • 源码控制(Github)
  • 网站(英文)
  • 外部依赖(包括 License)
  • 成熟度模型评估(参考开源项目加入CNCF Sandbox的要求
  • 创始 Committer(贡献项目的时长)
  • 基础设施需求( CI / CNCF 集群)
  • 沟通渠道(slack 、irc 、邮件列表)
  • Issue 追踪(GitHub)
  • 发布方法和机制
  • 社交媒体账号
  • 社区规模和已有的赞助商
  • svg 格式的项目 logo

06

由 Sandbox 升级到 Incubating 的要求

一个开源项目要想加入 CNCF 必须满足以下要求:

  • 通过 TOC 的尽职调查
  • 至少有 3 个独立的终端用户在在生产上使用该项目:一般在项目的官网列举实际用户
  • 足够健康数量的贡献者:项目的 GitHub 上有明确的 committer 权限划分、职责说明及成员列表,TOC 将根据项目大小来确认多少 committer才算健康
  • 展示项目在持续进行、良好的发布节奏、贡献频率十分重要

07

由 Incubating 升级到 Graduated 的要求

  • 满足 Sandbox 和 Incubating 的所有要求
  • 至少有来自两个组织的贡献者
  • 明确定义的项目治理及 committer 身份、权限管理
  • 接受 CNCF行为准则,参考Prometheus
  • 获得CII 最佳实践徽章
  • 在项目主库或项目官网有公开的采用者的 logo

参考归档的 Review

https://github.com/cncf/toc/tree/master/reviews

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档