CNCF(Cloud Native Computing Foundation)于 2015 年 7 月成立,隶属于 Linux 基金会,初衷围绕“云原生”服务云计算,致力于维护和集成开源技术,支持编排容器化微服务架构应用。
CNCF简介
下图为技术演进路线。
CNCF 核心是解决技术问题:基金会的使命是创建并推动采用新的计算模式,该模式针对现代分布式系统环境进行了优化,能够扩展至数万个自愈式多租户节点。
所谓的云原生系统须具备下面这些属性:
a、应用容器化:将软件容器中的应用程序和进程作为独立的应用程序部署单元运行,并作为实现高级别资源隔离的机制。从总体上改进开发者的体验、促进代码和组件重用,而且要为云化应用简化运维工作。
b、动态管理:由中心化的编排来进行调度和管理,从根本上提高机器效率和资源利用率,同时降低与运维相关的成本。
c、面向微服务:与相关资源解耦(例如通过服务端点等),可以提高应用程序的整体敏捷性和可维护性。CNCF 将塑造技术的发展,推动应用管理的先进技术发展,并通过可靠的接口使技术无处不在,并且易于使用。
CNCF定位
CNCF 其实是在开源社区的基础上发挥着作用,应负责:
a、项目管理
确保技术可用于社区不受其他外因的影响
确保技术的品牌(商标和标识)得到社区成员的关注和使用,特别强调用户体验和高水平的应用程序兼容性
b、促进生态系统的发展和演进
评估哪些技术可以纳入云原生计算应用的愿景,鼓励社区交付这样的技术,以及集成它们,且要积极的推进进度。提供一种方法来孵化各方面的通用技术标准
c、推广底层技术和应用定义和管理方法,途径包括:活动和会议、营销(SEM、直接营销)、培训课程和开发人员认证。
d、通过使技术便捷来为社区服务
旨在通过对参考架构进行明确定义的节奏,为每个组成部分提供完全集成和标准的构建。
2017 年 12 月 06 日,landscape 的 v1.0 版本发布,本文就按照2020年3月的图介绍云原生系统的当前大致情况。
云原生以容器为核心技术,分为运行时(runtime)和 编排两层,runtime 负责容器的计算、存储、网络;编排负责容器集群的调度、服务发现和资源管理。
往下是基础设施和配置管理,作为容器底层的基石。容器可以运行在各种系统上,包括公有云、私有云、物理机等;容器还依赖自动化部署工具、容器镜像工具、安全工具等运维系统才能工作。
往上是容器平台上的应用层,类似于手机的 app store,图中分为数据库和数据分析、流处理、SCM 工具、CI/CD 和应用定义几类,每个公司根据业务需求会有不同的应用体系。
右边有两块:平台和观察分析。平台是指基于容器技术提供的平台级的服务,比如常见的 Paas 服务,和 Serverless 服务。观察分析是容器平台的运维,从日志和监控方面给出容器集群当前的运行情况,方便分析和 debug。
CNCF简介
CNCF组织主要由管委会、技术监督委员会、最终用户社区和市场推广委员会组成。
会员制
CNCF中的会员包括白金、金牌、银牌、最终用户、学术和非赢利成员等级别,不同级别的会员在管委会中的投票权不同。
a、白金会员:在CNCF管委会中任命1名代表,在理事会的每个次级委员会和活动中任命1名有投票权的代表,在网站可以突出显示;如果也是终端用户成员将继承终端用户成员的所有权利,下图为当前白金会员名单。
b、金牌会员:基金会中每有5个金牌会员,该级别的会员就可以任命1名代表,最多任命3个;如果也是终端用户成员将继承终端用户成员的所有权利,下图为当前黄金会员名单。
c、银牌会员:基金会中每有10个银牌会员,该级别的会员就可以任命1名代表,最多任命3个;如果也是终端用户成员将继承终端用户成员的所有权利。下图为当前白银会员名单。
d、终端用户:参加终端用户咨询社区;向终端用户技术咨询委员会中提名1名代表
e、学术和非赢利会员:学术和非营利会员分别限于学术和非营利机构,需要理事会批准。学术成员和非营利成员有权将其组织认定为支持CNCF使命的成员以及理事会确定的任何其他权利或利益。
CNCF技术委员会
CNCF 技术监督委员会负责定义和维护CNCF的技术愿景;批准理事会设定的CNCF范围内的新项目,并为这些项目创建概念架构;调整项目、删除或归档项目;接受最终用户委员会的反馈并映射到项目;将接口与管理的组件对齐(标准化之前的代码参考实现);并定义跨CNCF项目实施的通用实践 - 对于在社区内推动中立共识至关重要。
技术监督委员会的构成
早前CNCF通过把TOC(技术监督委员会)人数从9名增加到11名。TOC代表将包括来自以下四个选择组:
a、6名由管委会任命
b、2名由最终用户社区(而不是1)任命
c、1名由非沙箱项目维护者(而不是0)任命
d、2名由TOC的其他9名成员任命
提名标准
获得 TOC 提名的开源贡献者应该具备下面条件:
a、承诺有足够的可用可用时间参与CNCF TOC的活动,包括在CNCF成立时相当早期的投入,然后需持续投入时间,而且在季度的 TOC 会议之前要进行充分的准备和审查事宜。
b、在CNCF范围内展示了高水准的专业经验。
c、证明其有资格能够获得额外的工作人员或社区成员协助其在 TOC 的工作。
d、在讨论中保持中立,并提出CNCF的目标和成功与公司目标或CNCF中的任何特定项目保持
o3
CNCF项目
通常情况下,是由CNCF的成员公司、开源社区的成员将项目先是带到CNCF 的技术监督委员会来进行讨论,然后决定是否被CNCF接纳。要贡献给CNCF的项目必须是经过技术监督委员会制定的标准的,之后当然还要经过理事会的批准。CNCF 的目标是希望捐赠给CNCF的项目和CNCF已有的项目在一定程度上是有关联的,而且是可集成的。
和CNCF 关联起来有以下三种方法:
1. 已经在CNCF的纳管之下,毕竟CNCF是中立的,致力于成为大家的协作的归属地。分为以下三种情况:
a、项目的方方面面都交由CNCF来打理
b、项目是由CNCF 来进行市场推广的
c、项目是解决云原生计算问题的核心组件,如Kubernetes、Mesos、etcd等等
2. 通过API或规范与CNCF相关联
a、 包括CNCF可能提供或启用多个选项的组件
b、该项目被称为CNCF集成的一个组成部分,而不是由CNCF主办的项目 c、集成和合规性由API或规范定义 d) 项目或组件的开发是由上游社区所开发,而且保持一定的活跃度
3. CNCF 使用到的
a、项目或组件完全根据OSI批准的开源许可证进行授权,并且管理良好,并在CNCF中被用作组件。
b、项目并没有由CNCF 来进行市场推广
c、 项目或组件的开发是由上游社区所开发,而且保持一定的活跃度
现有的开源项目应该继续保持其现有的技术治理结构,以保持凝聚力和速度。但是由技术监督委员会批准之后,则会适当的进行一些适应。
应根据个人的水平和贡献期限在项目间建立一个达到提交者地位的标准协议。因为提交者是维护者的选拔人才池,有了一定程度的贡献,且经过同行们的认可,提交者就可晋升为维护者。
CNCF启动的新开源项目应完成TOC采纳的项目建议模板,并由TOC批准纳入CNCF。TOC成员应有充足的时间讨论和审查新的项目建议书。新的项目建议书应包括项目中的角色细节,为项目提出的治理,并确定与CNCF的角色和价值观保持一致。
CNCF项目分为Sandbox、Incubating和Graduation三个阶段。
CNCF项目分为Sandbox、Incubating和Graduation三个阶段。
各阶段项目
2019 年度CNCF社区接纳项目
o4
CNCF核心价值
CNCF 会极力遵循以下一些原则:
a、效率 快速胜过磨叽,基金会的初衷之一就是让项目快速的发展,从而支持用户能够积极的使用。
b、开放 CNCF 是以开放和高度透明为最高准则的,而且是独立于任何的其它团体进行运作的。CNCF根据贡献的内容和优点接受所有的贡献者,且遵循开源的价值观,CNCF输出的技术是可以让所有人使用和受益的,技术社区及其决策应保持高度透明。
c、公平 CNCF 会极力避免那些不好的影响、不良行为、以及“按需付费”的决策。
d、技术 CNCF 会实现并保持高度的自身技术认同,并将之同步到所有的共享项目中。
d、清晰的边界 CNCF 制定明确的目标,并在某些情况下,要确定什么不是基金会的目标,并会帮助整个生态系统的运转,让人们理解新创新的重点所在。
e、可扩展 能够支持从小型开发人员中心环境到企业和服务提供商规模的所有部署规模。这意味着在某些部署中可能不会部署某些可选组件,但总体设计和体系结构仍应适用。
f、平台中立 CNCF 所开发的项目并不针对某个特定平台,而是旨在支持各种体系结构和操作系统。
参考资料
[1]. https://mp.weixin.qq.com/s/3fV3rCb5km68o908mONu0w
[2]. https://jimmysong.io/blog/cncf-introduction/
[3]. https://github.com/cncf/presentations/tree/master/chinese
[4]. https://www.cncf.io/cncf-annual-report-2019/
[5]. http://www.mamicode.com/info-detail-2696327.html