开源简史基础:CNCF项目简介

在这里插入图片描述
这篇文章介绍一下在云原生领域极为重要的一个组织CNCF,以及CNCF目前最新的22个孵化中与已毕业的项目状况的确认。

基本概念

  • CNCF是什么
  • 什么是云原生(Cloud Native)
  • TOC(Technical Oversight Committee)
  • CNCF路线图(Trail Map)
  • CNCF全景图(Landscape)

关于上述基本概念和路线图的详细说明可参看:

  • 路线图: https://liumiaocn.blog.csdn.net/article/details/100653635
  • 全景图: https://liumiaocn.blog.csdn.net/article/details/100713072

CNCF项目

结合CNCF全景图,CNCF目前在孵化中与已毕业的项目列表信息如下表所示:

分层 功能模块 CNCF项目数量 CNCF项目详细
应用定义与开发 数据库 2 TiKV(孵化中)、Vitess(孵化中)
应用定义与开发 流与消息 1 NATS(孵化中)
应用定义与开发 应用定义与镜像构建 1 HELM
编排管理 编排调度 1 Kubernetes(已毕业)
编排管理 协同与服务发现 2 CoreDNS(已毕业)、etcd(孵化中)
编排管理 RPC远程调用 1 gRPC(孵化中)
编排管理 服务代理 1 envoy(已毕业)
编排管理 服务网格 1 LINKERD(孵化中)
运行环境 云原生存储 1 ROOK(孵化中)
运行环境 云原生网络 1 CNI(孵化中)
运行环境 容器运行环境 2 containerd(已毕业)、cri-o(孵化中)
配置管理 容器私库 1 HARBOR(孵化中)
配置管理 安全与合规 3 Notary(孵化中)、Open Policy Agent(孵化中)、TUF(孵化中)
监控分析 监控 1 Prometheus(已毕业)
监控分析 日志 1 fluentd(已毕业)
监控分析 调用链追踪 2 JAEGER(孵化中)、OPENTRACING(孵化中)

CNCF项目的生命周期

如下图所示,CNCF项目分为Sandbox、Incubating和Graduation三个阶段。
开源简史基础:CNCF项目简介_第1张图片

已毕业的CNCF项目

目前已毕业的项目只有6个,围绕在Kubernetes周围形成部分功能的小型系统。
开源简史基础:CNCF项目简介_第2张图片

孵化中的CNCF项目

孵化中的CNCF项目目前有16个,围绕着云原生的多个重要方面进行孵化
开源简史基础:CNCF项目简介_第3张图片

Sandbox的CNCF项目

作为CNCF项目的早期阶段,目前进入Sandbox中的CNCF项目有如下20个,包括来自于阿里的P2P文件分发系统Dragonfly。
开源简史基础:CNCF项目简介_第4张图片

CNCF成熟度级别

根据成熟度级别,每个CNCF项目会逐步走过它的早期Sandbox以及孵化阶段从而毕业。加上Sandbox的20个项目,CNCF中的项目总数目前仅有42个,相较于极其庞大而且在不断增长的Landscape全景图中提到的产品或者项目而言,CNCF项目显然这只是其中的一小部分,各个阶段的标准如下所示:

Sandbox阶段

被CNCF接受并成为Sandbox项目需要至少2个TOC的sponsor的支持,而相关的流程如下所示:
开源简史基础:CNCF项目简介_第5张图片

Incubating孵化阶段

进入孵化阶段的项目需要满足所有Sandbox的需求,并且需要满足如下条件:

  • 必须提供至少三个独立的终端用户成功地使用在生产环境中的资料信息,在质量和范围方面都能够得到证明,这些必须通过TOC的承认。
  • 技术专家(committer)的数量较为健康,技术专家被定义为可以接受和承认项目其他人的贡献到项目中的人。
  • 能够展示正在进行的后续的提交和合并的信息等

由于这些指标根据类型、范围和项目的大小不同差别很大,TOC对于是否通过标准具有足够的决定权。

另外,孵化阶段的项目需要满足如下DD的信息:
https://github.com/cncf/toc/blob/master/process/due-diligence-guidelines.md

注意:项目可以一直呆在孵化中的状态,但是CNCF一般期待在2年之内完成项目的毕业。

Graduation毕业阶段

为了通过孵化中或者sanbox的状态(项目如果能够展示足够的成熟度可以直接从sandbox进入到毕业阶段)达到毕业所需要的标准,或者一个新的项目不经过孵化中的状态直接成为毕业阶段的项目,必须达到孵化中阶段所有的标准之上,并且满足如下标准:

  • 至少具在不同组织的两个或者两个以上的技术专家(committer)
  • 获得和维持着Core Infrastructure Initiative Best Practices的徽章
  • 完成独立的三方的安全审核,并将符合要求的结果进行公示
  • 通过CNCF的代码准则(Code of Conduct)
  • 显示地定义项目管控的相关流程并符合标准
  • 对于项目的使用者具有公开的列表并满足标准
  • 能获得TOC绝大多数的投票表决进入毕业阶段。

Archiving流程

CNCF在2019年初增加了Archiving流程,这样退出机制正式出现了,获得这一殊荣的是rkt,大大的Archived Projects,看到rkt你一个人孤零零地躺在那里,感觉很凄凉,不过不要紧,如果Istio加把油,很快就有别的项目去陪你了。不管产生的背景如何,为云原生的发展作出的贡献大家都记得的。rkt,一路走好,以后找个好大哥。
开源简史基础:CNCF项目简介_第6张图片

参考内容

https://github.com/cncf/toc/blob/master/process/sandbox.md
https://www.cncf.io/projects/
https://github.com/cncf/toc/blob/master/process/graduation_criteria.adoc
https://github.com/cncf/landscape
https://landscape.cncf.io/images/landscape.png
https://github.com/cncf/toc/blob/master/DEFINITION.md
https://github.com/cncf/toc

你可能感兴趣的:(云原生,云原生,CNCF,孵化中,Sandbox,已毕业)