1. CNCF演进路线图(Trail Map)

注意:该项目已经不在维护。

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

1.1. 步骤1: 容器化

目前最流行的容器化技术是 Docker。

你可以将任意大小的应用程序和依赖项,甚至在模拟器上运行的一些程序,都进行容器化。

随着时间的推移,你还可以对应用程序进行分割,并将新功能编写为微服务。

1.2. 步骤2: CI/CD

创建 CI/CD 环境,从而使源代码上的任意修改,都能够自动通过容器进行编译、测试,并被部署到预生产甚至生产环境中。

设置自动部署、回滚和测试

Argo 是一组 Kubernetes 原生工具,用于部署和运行作业、应用程序、工作流和事件,结合 GitOps 可以构建连续和渐进式交付以及 MLops

1.3. 步骤3: 应用定义与编排

Kubernetes 是目前市场上应用编排领域被最广泛应用的工具,

你应该选择经过认证的 Kubernetes 发行版,托管平台,或安装程序:cncf.io/ck

Helm Charts 可以用来帮助你定义、安装和升级即使是最复杂的 Kubernetes 应用。

1.4. 步骤4: 可观测性与分析

选择监控、日志和调用链跟踪的解决方案。

可以考虑使用 CNCF 的 Prometheus 项目进行监控, Fluentd 用于日志记录,Jaeger 用于调用链跟踪。

调用链跟踪建议选择诸如 Jaeger 那样对 OpenTracing 有兼容性的方案或者工具。

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

对服务发现,CoreDNS 是一个快速和灵活的工具。

Envoy 和 Linkerd 用于服务网格架构。

提供服务的健康检查、请求路由、和负载均衡等功能。

1.6. 步骤6: 网络、策略和安全

为了能够更加灵活地对应网络需求,可以使用 CNI 兼容的网络解决方案诸如 Calico、Flannel 或者 Weave Net 等。

OPA(Open Policy Agent)秉承着“策略即代码”的原则,完成了一个通用的策略引擎的基本功能,可以帮助使用者控制策略和权限以保证合规性。

Falco 是一款云原生异常检测引擎。

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

分布式数据库可以提供更好的弹性和伸缩性能,但同时需要专业的容器存储予以支持。

当需要获取更多的弹性和横向扩展性时,相较于从单一数据库来获取信息,通过 sharding 的方式保证 MySQL 的横向扩展性,Vitess 是一个不错的选择。

通过集成多种 Kubernetes 的存储解决方案,可以使用提供了存储的编排方式的 Rook 进行管理。

作为 Kubernetes 的“大脑”,etcd 提供了在集群中以可靠的方式存储数据的能力。

当需要 key-value 存储方案时,可以考虑使用 TiKV,TiKV 使用 Rust 编写的高性能的分布式事务级 key-value 解决方案。

1.8. 步骤8: 流与消息处理

当应用需要比 JSON-REST 这个模式更高的性能时,可以考虑使用 gRPC 或者 NATS。

gRPC 是一个通用的 RPC(远程调用)框架(类似各种框架中的 RPC 调用),NATS 是一个发布/订阅和负载均衡的消息队列系统。

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

可以使用 Harbor 作为镜像私库进行存储以及对镜像的内容进行扫描。

容器并非仅仅 Docker 一种,容器的运行环境更是如此,可以选择不同的容器运行环境,但需要注意选择具有 OCI 兼容性的的方案,比如 containerd 或者 cri-o

1.10. 步骤10: 软件发布

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

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2023-03-21 23:55:56

results matching ""

    No results matching ""