CNCF,全称 Cloud Native Computing Foundation(云原生计算基金会),口号是坚持和整合开源技术来编排容器作为微服务架构的一部分,其作为致力于云原生应用推广和普及的一支重要力量,不论您是云原生应用的开发者、管理者还是研究人员都有必要了解。
CNCF 作为一个厂商中立的基金会,致力于 Github 上的快速成长的开源技术的推广,如 Kubernetes、Prometheus、Envoy 等,帮助开发人员更快更好的构建出色的产品。
http://github.com/cncf/landscape 中维护了一幅 CNCF 的全景图。
其中包含了 CNCF 中托管的项目,还有很多是非 CNCF 项目,还有个交互式的浏览 CNCF 涵盖的所有的项目的页面:https://i.cncf.io
关于 CNCF 的使命与组织方式请参考CNCF 章程,概括的讲 CNCF 的使命宝库以下三点:
以上是 CNCF 最初对云原生特征的定义。
CNCF 这个角色的作用是推广技术,形成社区,开源项目管理与推进生态系统健康发展。
另外 CNCF 组织由以下部分组成:
每个 CNCF 项目都需要有个成熟度等级,申请成为 CNCF 项目的时候需要确定项目的成熟度级别。
成熟度级别(Maturity Level)包括以下三种:
是否可以成为 CNCF 项目需要通过 Technical Oversight Committee(技术监督委员会)简称TOC,投票采取 fallback 策略,即回退策略,先从最高级别(graduated,目前是从 incubating)开始,如果 2/3 多数投票通过的话则确认为该级别,如果没通过的话,则进行下一低级别的投票,如果一直到 inception 级别都没得到 2/3 多数投票通过的话,则拒绝其进入 CNCF 项目。一般一个项目处于孵化阶段不会超过 2 年。
当前所有的 CNCF 项目可以访问 https://www.cncf.io/projects/
在太平洋时间 3 月 6 日,Kubernetes 成为了 CNCF 的第一个毕业项目!
TOC(Technical Oversight Committee)作为 CNCF 中的一个重要组织,它的作用是:
TOC 成员通过选举产生,见选举时间表。
参考 CNCF TOC:https://github.com/cncf/toc
CNCF(云原生计算基金会)是 Linux 基金会旗下的一个基金会,加入 CNCF 等于同时加入 Linux 基金会(也意味着你还要交 Linux 基金会的份子钱),对于想加入 CNCF 基金会的企业或者组织首先要做的事情就是要了解 CNCF 的章程(charter),就像是作为一个国家的公民,必须遵守该国家的宪法一样。CNCF 之所以能在短短三年的时间内发展壮大到如此规模,很大程度上是与它出色的社区治理和运作模式有关。了解该章程可以帮助我们理解 CNCF 是如何运作的,也可以当我们自己进行开源项目治理时派上用场。
该章程最后更新于 2018 年 5 月 15 日,详见 https://www.cncf.io/about/charter/。
CNCF 没有偏离自己的主题,核心是解决技术问题:基金会的使命是创建并推动采用新的计算模式,该模式针对现代分布式系统环境进行了优化,能够扩展至数万个自愈式多租户节点。
所谓的云原生系统须具备下面这些属性:
CNCF 其实是在开源社区的基础上发挥着作用,应负责:
a) 项目管理
b) 促进生态系统的发展和演进
c) 推广底层技术和应用定义和管理方法,途径包括:活动和会议、营销(SEM、直接营销)、培训课程和开发人员认证。
d) 通过使技术可访问和可靠来为社区服务
CNCF 会极力遵循以下一些原则:
CNCF 中的会员包括白金、金牌、银牌、最终用户、学术和非赢利成员等级别,不同级别的会员在理事会中的投票权不同。
a) 白金会员:在 CNCF 理事会中任命 1 名代表,在理事会的每个次级委员会和活动中任命 1 名有投票权的代表,在网站可以突出显示;如果也是终端用户成员将继承终端用户成员的所有权利
b) 金牌会员:基金会中每有 5 个金牌会员,该级别的会员就可以任命 1 名代表,最多任命 3 个;如果也是终端用户成员将继承终端用户成员的所有权利
c) 银牌会员:基金会中每有 10 个银牌会员,该级别的会员就可以任命 1 名代表,最多任命 3 个;如果也是终端用户成员将继承终端用户成员的所有权利
d) 终端用户:参加终端用户咨询社区;向终端用户技术咨询委员会中提名 1 名代表
e) 学术和非赢利会员:学术和非营利会员分别限于学术和非营利机构,需要理事会批准。学术成员和非营利成员有权将其组织认定为支持 CNCF 使命的成员以及理事会确定的任何其他权利或利益。
a) CNCF 理事会负责市场营销、业务监督和预算审批,不负责技术方面,除了与 TOC 配合确定 CNCF 工作范围、完成时间表 a)、更新 CNCF 网站
b) 负责日常事务
c) 理事会投票成员由会员代表和社区代表组成:
d) 职责
e) 基金会的收入用途
a) 要求
CNCF 技术监督委员会,为了保持中立,则达成了以下共识:
b) 技术监督委员会的构成
c) 运营模式
d) 提名标准
获得 TOC 提名的开源贡献者应该具备下面条件:
e) TOC 成员提名和选举程序
f) 约束条件
a) CNCF 的最终用户成员有权协调和推动 CNCF 用户作为 CNCF 设计的消费者的重要活动。任何作为最终用户的成员或非成员,每个“最终用户参与者”均可被邀请参加。最终用户参与者将帮助向技术咨询委员会和 CNCF 社区就与用户有关的主题提供意见。
b) 最终用户技术咨询委员会是由最终用户社区成员选举所产生。
c) 最终用户社区成员将获得 CNCF 执行董事的批准,或者 CNCF 执行董事缺席的话,则由 Linux 基金会执行董事来批准。
a) 构成:最终用户 TAB 应由来自最终用户参与者的 7 名代表加上 TOC 的 1 名成员组成,以便于从最终用户 TAB 到 TOC 的晋级。
b) 选举:为了鼓励最终用户参与 CNCF,前 7 名最终用户会员可以委任 1 名代表参加初始最终用户 TAB,并将 CNCF 董事分配给任何最终用户参与者的任何剩余席位。在第一年之后,所有最终用户参与者可以提名 1 名代表并且最终用户社区应该投票选择使用当前最终用户 TAB 批准流程的最终用户 TAB 成员。
c) 经过三分之二投票通过后最终用户 TAB 可以更改最终用户社区的大小,前提是至少有 7 名可能的代表。
d) 最终用户代表应当基于业务和技术敏锐度提名。候选人应该具备建设和运营体现 CNCF 原则的基础设施和应用方面的重要实践经验。
e) 最终用户 TAB 将讨论和推进主题,重点是找出 TOC 和 CNCF 开发者社区的差距并提出优先事项。
f) 也会侧重于主动推进最终用户关心的话题,促进 CNCF 的市场采用,为最终用户举办会议或向理事会提供咨询。
g) 如果最终用户 TAB 有意愿的话,它可以批准小组委员会特别兴趣小组(“SIG”)来解决行业或专业话题。
h) 最终用户 TAB 是技术监督委员会的主要输入方,应与技术监督委员会的其他输入方和反馈一起作出决策和计划。这些建议只是建议性的,在任何时候,最终用户 TAB 的建议都不能用于命令或指导任何 TOC 或项目参与者采取任何行动或结果。
i) 为促进与 TOC 的双边互动,最终用户技术咨询委员会应选出 1 名 TOC 代表。最终用户 TAB 可邀请任何人参加最终用户会议、SIG 或其他讨论。
通常情况下,是由 CNCF 的成员公司、开源社区的成员将项目先是带到 CNCF 的技术监督委员会来进行讨论,然后决定是否被 CNCF 接纳。要贡献给 CNCF 的项目必须是经过技术监督委员会制定的标准的,之后当然还要经过理事会的批准。CNCF 的目标是希望捐赠给 CNCF 的项目和 CNCF 已有的项目在一定程度上是有关联的,而且是可集成的。
和 CNCF 关联起来有以下三种方法:
1. 已经在 CNCF 的纳管之下,毕竟 CNCF 是中立的,致力于成为大家的协作的归属地。
a) 项目的方方面面都交由 CNCF 来打理 b) 项目是由 CNCF 来进行市场推广的 c) 项目是解决云原生计算问题的核心组件,如 Kubernetes、Mesos、etcd 等等
2. 通过 API 或规范与 CNCF 相关联 XM
a) 包括 CNCF 可能提供或启用多个选项的组件 b) 该项目被称为 CNCF 集成的一个组成部分,而不是由 CNCF 主办的项目 c) 集成和合规性由 API 或规范定义 d) 项目或组件的开发是由上游社区所开发,而且保持一定的活跃度
3. CNCF 使用到的
a) 项目或组件完全根据 OSI 批准的开源许可证进行授权,并且管理良好,并在 CNCF 中被用作组件。
b) 项目并没有由 CNCF 来进行市场推广
c) 项目或组件的开发是由上游社区所开发,而且保持一定的活跃度
现有的开源项目应该继续保持其现有的技术治理结构,以保持凝聚力和速度。但是由技术监督委员会批准之后,则会适当的进行一些适应。
应根据个人的水平和贡献期限在项目间建立一个达到提交者地位的标准协议。因为提交者是维护者的选拔人才池,有了一定程度的贡献,且经过同行们的认可,提交者就可晋升为维护者。
CNCF 启动的新开源项目应完成 TOC 采纳的项目建议模板,并由 TOC 批准纳入 CNCF。TOC 成员应有充足的时间讨论和审查新的项目建议书。新的项目建议书应包括项目中的角色细节,为项目提出的治理,并确定与 CNCF 的角色和价值观保持一致。
a) 构成,市场委员会将向所有成员开放参与,应选举市场委员会主席制定会议议程,进行一般的讨论,并帮助委员会实现其目标。市场委员会应尽可能寻求共识。在市场委员会中无法达成共识的任何问题应提交给理事会。
b) 职责,市场委员会代表理事会负责设计,开发和执行相关的市场工作。
c) 如果市场委员会变得太大而无法有效运作,市场委员会可以选择选举市场董事,并将决策权委托给市场董事。
a) 任何加入到 CNCF 的项目都必须将其拥有的商标和徽标资产转让给 Linux 基金会的所有权。
b) 每个项目应确定是否需要使用经批准的 CNCF CLA。对于选择使用 CLA 的项目,所有代码贡献者将承担 Apache 贡献者许可协议中规定的义务,只有在必要时才作出修改,以确定 CNCF 是捐赠的接受者,并且应由理事会批准。请参阅 https://github.com/cncf/cla 上提供的 CNCF 参与者许可协议。
c) 所有向 CNCF 提交的新入站代码应当(i)附有开发者原始证书签名(https://developercertificate.org和(ii)根据 Apache 许可证 2.0 版(可从https://developercertificate.org和http://www.apache.org/licenses/LICENSE-2.0 获得)该许可证除了并且不得取代根据上文(b)规定的供款许可协议所承担的义务。
d) 所有出站代码将在 Apache 许可证 2.0 版下提供。
e) 所有评估纳入 CNCF 的项目都必须获得 OSI 批准的开源许可证的完全许可,如果 CNCF 中包含的项目的许可证不是 Apache 许可证 2.0 版,则需要获得理事会的批准。
f) 所有文档将由 CNCF 根据知识共享署名 4.0 国际许可证来提供。
g) 如果需要替代入站或出站许可证以符合杠杆式开放源代码项目的许可证或为实现 CNCF 的使命而需要其他许可证,理事会可以批准使用替代许可证 对于例外情况下的接受或提供的项目捐赠。
a) 所有成员均应遵守http://www.linuxfoundation.org/antitrust-policy上提供的 Linux 基金会反托拉斯政策中规定的 Linux 基金会的要求。
b) 所有成员都应鼓励任何能够满足成员要求的组织的公开参与,而不论其竞争利益如何。换言之,理事会不应根据除用于所有成员的标准,要求或原因之外的任何标准,要求或理由寻求排除成员。
所有参与者都须同意遵守 Linux 基金会行为准则。TSC 可以投票通过自己的 CNCF 行为准则。
a) 定义:
b) 只有执行了参与协议的法人实体及其子公司才有权享有该会员的权利和特权;但条件是该成员及其子公司应作为单一成员共同对待。
c) 只有一名属于一组关联公司的成员有权一次性任命或提名理事会代表参加类别选举。
d) 如果会员本身是会员或赞助商的基金会,联盟,开源项目,会员组织,用户组或其他实体,那么授予该成员的权利和特权只能扩展到该成员的员工代表,而不能扩展到其成员或发起人,除非理事会不时在特定情况下另行批准。
e) 会员资格不得转让,不可转让、也不能转让,除非现有会员将其现有的会员利益和义务转让给其大部分业务和/或资产的继任者,无论是通过合并,出售还是其他方式;只要受让人同意遵守 CNCF 的章程以及 Linux Foundation 成员所需的章程和政策。
a) 理事会应批准年度预算,绝不会承诺超出筹集的资金。预算应与 Linux 基金会的非营利性使命相一致。
b) Linux 基金会应定期报告预算支出。
a) Linux 基金会应保管任何费用,资金和其他现金收据。
b) 一般和行政(G&A)费用将用于筹集资金以支付财务、会计和运营费用。G&A 费用应等于 CNCF 首期总收入 1,000,000 美元的 9%以及 CNCF 总收入超过 1,000,000 美元的 6%。
参与 CNCF 应做到:
a) 展示与开源项目开发人员社区进行协调的计划和方法,包括关于代表社区的品牌、徽标和其它标志性的主题;
b) 以专业的方式体现维持社区的凝聚力为目标,同时还要保持 Linux 基金会在开放源代码软件社区的善意和尊重;
c) 尊重所有商标所有人的权利,包括任何品牌和使用准则;
d) 参与 Linux 基金会的所有新闻和分析师关系活动;
e) 根据要求,向 Linux 基金会提供关于项目参与的信息,包括参加项目赞助活动的信息;
f) 直接参与到基金会旗下的任何站点。
g) 根据理事会批准的规则和程序进行运营,前提是这些规则和程序不得与 Linux 基金会的宗旨和政策不一致,并且不得损害 Linux 基金会。
本章程可以通过所有理事会成员的三分之二票数(不包括弃权)进行修改,前提是任何此类修改不得与 Linux 基金会的目的或政策不一致,并且不得对 Linux 基金会产生不利影响。
CNCF 背后的首要目标是支持和加速“云原生计算”的采用。以下内容是初步范围,旨在阐明 CNCF 将努力实施的“云原生计算”的核心概念。该初始范围应成为发布在 CNCF 网站上的文档。
CNCF 社区坚信云原生计算包含三个核心属性:
注:关于云原生的定义正在重新设定中,已经与上述不同了。
云原生计算系统支持基于这些核心属性的计算,并包含以下理想:
因为上述时间表已经有些过时了,CNCF 成立已经有三年时间了,正在规划新的方案。
最后更新于 2024/11/21