从历史发展中看,我们会发现应用的运行环境产生了巨大的变化。从最初的物理机,到虚拟机,再到 Buildpacks,最后到容器,应用的交付产物越来越内聚。
此外,运行环境的隔离性也产生了一系列的变化,从最初的硬件隔离,到虚拟化隔离,最后到容器技术的 cgroups 隔离,它们的隔离方式越来越轻量。
最后,从供应商的角度来看,软件从最初的封闭和单一供应商逐渐演进为开源和跨供应商。
组织形式
CNCF 是一个中立组织,它主要通过推动开源项目的发展来实现自身的目标,所以它的社区组织形式是为了更好地推动开源项目发展而设计的。
员工、会员和大使
首先,CNCF 作为非营利性组织有它自己的全职员工。就像公司的组织架构一样,它也有 CTO、总监、项目管理和开发者关系等职能岗位。此外,由于 CNCF 的工作大多数是围绕着开源项目的社区会议进行的,所以它还有诸如会议和事件管理岗负责统筹和协调。
其次,CNCF还会向全球企业招募会员,例如国内的腾讯云、蚂蚁金服和华为等都是其会员。这些云厂商每年需要向 CNCF 支付一定的费用来维持它在基金会的席位,这其实也是CNCF的重要收入来源。会员是 CNCF 组织形式中非常重要的组成部分,这些厂商和 CNCF 一样也押注在云原生领域,并投入研发的人力来参与到社区的项目中,以获得更广的影响力。
此外,大使也是社区非常重要的组成部分。大使是 CNCF 非官方的布道师,它们通常是社区的意见领袖,CNCF 借助大使的影响力来传播云原生技术。
可见,员工、会员以及大使三个角色是 CNCF 最核心的职位。
TOC 和 SIG
除了上面提到的三类角色以外,由于 CNCF 也非常注重开源社区的贡献,所以,CNCF 还设置了 TOC(Technical Oversight Committee)技术监督委员会小组,TOC 小组的成员主要来自两部分,分别是会员(云厂商)固定席位和社区投票。TOC 是 CNCF 的领导层,负责决策和管理 CNCF 的项目和社区。
TOC 主要关注 CNCF 的总体战略和管理,对于 CNCF 托管的项目细节,TOC 是很难在代码层面提供指导的。为此,CNCF 还设置了 SIG(Special Interest Group),也就是特别兴趣小组。SIG 是 CNCF 的技术管理机构,它负责制定规范以及监督所有的 CNCF 项目。目前,活跃的 SIG 小组有以下几个。
安全小组:负责云原生访问策略和控制。
存储小组:负责云原生存储项目标准制定。
应用交付小组:负责云原生应用交付,包括构建、部署和管理。
网络小组:负责云原生网络例如 API 网关和负载均衡等。
运行时小组:负责制定云原生运行时标准。
贡献者策略小组:负责贡献者体验、在可持续性、治理和开放性提供指导。
可观测性小组:负责云原生可观测性和最佳实践。
环境可持续性小组:负责云原生环境可持续性,例如碳排放。
总的来说,CNCF 的组织形式可以用下面这张图来归纳。
项目托管
开源项目是 CNCF 的核心资产,比如著名的 Kubernetes、etcd 和 Helm 等项目都是 CNCF 的托管项目。托管项目来自厂商的捐赠,捐赠内容包括源码、商标和网站等和项目相关的内容。
为了区分项目的成熟度,CNCF 把项目分成了三个阶段,分别是:
Sandbox(沙箱阶段)
Incubating(孵化阶段)
Graduated(毕业阶段)
当一个项目被捐赠时,会首先进入到沙箱阶段。进入沙箱阶段后,CNCF 会给予项目一些宣发资源以及参加云原生大会的机会。经过一段时间的发展后,如果项目的使用人数、贡献者和成熟度符合一定的要求,经过 TOC 的评审,项目会进入到下一个孵化阶段,最后再到毕业阶段。
由此可见,CNCF 的毕业项目是从所有捐赠项目中层层筛选出来的,它们通常已经非常成熟并且被广泛使用了,它们一般代表了云原生某个领域的事实标准。
那么,厂商为什么会把自己重金投入的项目免费捐赠给 CNCF 呢?我认为主要的原因有三个。首先,CNCF 基金会作为云原生的风向标,项目被接受意味着 CNCF 对项目的认可。从事开源的团队一般都是大公司团队,这对团队的考核有非常大的帮助,也是团队实施捐赠的动力来源。
其次,在项目捐赠后,可以通过 CNCF 的影响力吸引更多的用户以及贡献者,在进一步完善开源项目的同时,也增加了核心维护厂商的品牌影响力,促进他们换取更高的商业价值。
最后,所有捐赠给 CNCF 的项目都有机会成为云原生某个领域的标准,一旦自己所维护的项目成为了标准,其商业价值是不可估量的。
今天,捐赠已经不再是一种纯粹的开源行为,更多地代表了背后厂商的利益,通过捐赠能够加速项目的发展,最终为项目带来更多商业化的可能性。
职业认证
职业认证是 CNCF 最重要的板块之一,在为开发者提供认证的同时,CNCF 也能从中获得收入。
目前,CNCF 的职业认证有以下几个。
CKA:Kubernetes 管理员认证
CKAD:Kubernetes 开发者认证
CKS:Kubernetes 安全认证
KCNA:Kubernetes 管理员助理认证
PCA:Prometheus 管理员认证
KCSA:Kubernetes 安全助理认证
对于开发者来说,我推荐你参加 CKA 和 CKAD 认证。这两个认证推出的时间长,市场认可度高,在很多 DevOps、SRE 和运维开发工程师的招聘描述上,你都能看到这两个认证的要求。
职业认证一般是通过远程的方式来进行的,考官会在远程监督考试过程。
总结
总结一下,这节课,我带你认识了云计算简单的历史发展以及 CNCF 的运作机制。其中,我重点介绍了 CNCF 的组织形式、项目托管和职业认证。
对于开发者而言,SIG 和 TOC 是我们获取一手信息的渠道。在介绍 SIG 的时候,我已经把每一个 SIG 的主页放在了文稿中,每一个 SIG 的议题都是公开透明的,在例会上,你可以参加讨论相关项目、行业发展和标准相关的内容。通过公开的链接,任何人都可以参加 SIG 例会。
TOC 的运作过程则相对保密,对于一些技术决策,TOC 一般会公开,但涉及 CNCF 自身运营的决策则不会对外公开。
如果你想参与到云原生标准的建立中来,项目捐赠是一个非常好的开始,你可以查看这份文档来了解如何将项目捐赠给 CNCF。CNCF 在接受到提交后,会定期进行评审,评审通过后,将进入到商标和网站的交割流程,最后完成整个捐赠过程。
最后,作为从业者,我强烈建议你参加 CNCF 的职业认证。一方面它是对我们技术能力的认可,更重要的是在考试过程中我们可以进一步查缺补漏,深入学习云原生的核心技术。
内容来源:《云原生架构与 GitOps 实战》(https://time.geekbang.org/column/article/635602?utm_source=zmt&utm_medium=zmt&utm_term=zmt)返回搜狐,查看更多