首页 > 编程知识 正文

开源简史基础CNCF与路线Trail Map

时间:2023-05-04 12:57:31 阅读:232199 作者:4774


这篇文章介绍一下在云原生领域极为重要的一个组织CNCF,以及CNCF目前最新的Trail Map路线图的详细信息。

CNCF是什么

CNCF是Cloud Native Computing Foundation的缩写,直接翻译过来为云原生计算基金会,它隶属于Linux基金会,而关于Linux基金会的信息可以参看如下文章:

https://liumiaocn.blog.csdn.net/article/details/100666545 什么是云原生(Cloud Native)

CNCF是云原生计算基金会,而关于什么是云原生,CNCF给出了如下的定义:

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

可以看到云原生的技术出现的背景是组织在推行云计算时,由于公有云、私有云和混合云的复杂环境已经变得越来越普及,所以在这种基础架构之下如何保证松耦合的系统能够更好地被监控和管理,是云原生技术需要面对和解决的问题。

TOC

TOC(Technical Oversight Committee)的主要成员有9位,包括阿里的Li-Xiang,任期两年至2021年

CNCF路线图(Trail Map)


在复杂的远端基础架构之上如何推动云原生应用的更好落地,从而更好地适应环境与业务的发展,CNCF给出了路线图Trail Map用于对于用户在整体上给出了指导建议,分成十个步骤进行实施,而在不同的步骤都可以结合Landscape中列出的产品或服务进行选择。

步骤1: 容器化

方式:虽然容器化可以选择多种方式,一般仍以Docker为主要方式进行容器化。
类型:各种类型应用和依赖(甚至模拟器上运行的代码)都可以进行容器化,容器化的类型得到广泛的支持
演进:对于新的功能,可以进行应用的分割并将其进行微服务化

步骤2: CI/CD

容器化:创建持续集成CI与持续部署CD环境,从而使得代码的修改可以自动从源码进行容器化的构建和测试,并可以部署至准生产或者生产环境。
自动化:创建可以用于自动部署、自动回滚和自动测试的方式

步骤3: 应用定义与编排

应用编排: Kubernetes作为容器化的应用编排的解决方案,在目前的市场上处于领先地位。
管理应用: Helm Charts能帮助使用者对复杂的Kubernetes应用进行定义、安装和升级。
CNCF项目:Kubernetes(已毕业)、HELM(孵化中)

步骤4: 监控&分析

范围: 解决方案应该包含监控、日志和追踪
工具: 推荐的工具可以选择使用Prometheus进行监控和告警,Fluentd用于日志,而Jaeger则用于调用链的跟踪
兼容性:调用链跟踪建议选择诸如Jaeger那样对OpenTracing有兼容性的方案或者工具
CNCF项目:Prometheus(已毕业)、fluentd(孵化中)、OPENTRACING(孵化中)、JAEGER(孵化中)

注意:步骤4开始为可选内容。

步骤5: 服务代理、服务发现和服务网格

服务发现: 可以使用CoreDNS进行服务发现,兼具快速和灵活的特点。
服务网格: Envoy和Linkerd都能够提供服务网格的相关能力。
管理功能: 提供健康检查、请求陆游以及负载均衡等常用功能。
CNCF项目:envoy(已毕业)、CoreDNS(已毕业)、LINKERD(孵化中)

步骤6: 网络&策略

网络兼容:为了能够更加灵活地对应网络需求,使用CNI兼容的网络解决方案诸如Calico、Flannel或者Weave Net等。
策略:OPA(Open Policy Agent)秉承着“策略即代码”的原则,完成了一个通用的策略引擎的基本功能,可以帮助使用者控制策略和权限以保证合规性。
CNCF项目:CNI(孵化中)、Open Policy Agent(孵化中)

步骤7: 分布式数据库与存储

横向扩展性:当需要获取更多的弹性和横向扩展性时,相较于从单一数据库来获取信息,通过sharding的方式保证MySQL的横向扩展性,Vitess是一个不错的选择。
存储编排:通过集成多种Kubernetes的存储解决方案,可以使用提供了存储的编排方式的Rook进行管理。
数据存储:作为Kubernetes的“大脑”,etcd提供了在集群中以可靠的方式存储数据的能力。
KV存储:当需要key-value存储方案时,可以考虑使用TiKV,TiKV使用Rust编写的高性能的分布式事务级key-value解决方案。
CNCF项目:Vitess(孵化中)、ROOK(孵化中)、etcd(孵化中)、TiKV(孵化中)

步骤8: 流与消息处理

性能需求:当需要比JSON-RESt更高的性能时,gRPC或者NATS能够助你一臂之力。
通用框架:gRPC时一个通用的RPC框架。而NATS是一个包含了请求/大幅、发布/订阅和负载均衡队列的多模型消息系统。
CNCF项目:gRPC(孵化中)、NATS(孵化中)

步骤9: 镜像私库&运行环境

镜像私库:可以使用Harbor作为镜像私库进行存储以及对镜像的内容进行扫描。
运行环境:容器并非仅仅Docker一种,容器的运行环境更是如此,可以选择不同的容器运行环境,但需要注意选择具有OCI兼容性的的方案,比如containerd或者cri-o
CNCF项目:containerd(已孵化)、HABOR(孵化中)、cri-o(孵化中)

步骤10: 软件分发

安全性:TLS能够保护通信的安全,但是当服务器出现问题后,自然就会出现问题。而使用Notary可以解决这一问题,是的软件的分发和更新更加安全。TUF项目则是Notary所基于的项目,也是针对软件分发和更新的安全性的解决方案。
CNCF项目:Notary(孵化中)、TUF(孵化中)

参考内容

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。