2023年度CNCF 发布了《平台工程白皮书》,系统性介绍了如何构建云原生计算平台以及平台可能提供的能力,包括为什么需要平台、平台是什么、平台需要哪些能力,一个成功的平台所应该具备的特性等等。整个白皮书主要分为以下章节内容
- 为什么需要一个平台
- 什么是平台
- 成功平台所应具备的属性
- 成功的平台团队应具备的属性
- 实施平台的挑战
- 如何衡量平台的成功
- 平台的能力
- 词汇表
《平台工程白皮书》整个篇幅内容比较多,本次重点介绍一下白皮书关于平台能力方面内容:
- 平台的能力
云原生计算平台提供并组合了诸多提供商的能力和服务,这些提供商可能是来自同一企业内的其他团队或第三方,如云服务提供商。平台通过在底层“能力提供者”与平台用户(如应用程序开发人员)之间搭建的桥梁,实施和执行安全、性能、成本治理以及一致体验所需的实践。 下图说明了产品、平台和能力提供者之间的关系。
构建云原生平台所需要考虑的能力领域包括:
- 提供查看并提供产品能力的Web 门户(Web portals)
- 用于自动化开放产品及其能力的API APIs (and CLIs)
- “黄金路径”模板和文档,以呈现产品及其能力的最佳使用实践
- 用于构建和测试产品和服务的自动化能力
- 用于产品交付和验证的自动化服务
- 开发环境:如 IDE 和远程连接工具等
- 可观察:使用采集器和 dashboard 等方式,对产品和服务的功能、性能和成本等进行可观察
- 基础设施服务:包括计算、网络以及存储(块和卷)
- 数据服务:包括数据库、缓存和对象存储等
- 消息和事件服务,包括 broker 代理、消息队列和 Event Fabrics
- 身份和密钥管理,例如用户身份和授权、证书和密钥发放以及静态密钥存储
- 安全服务,包括静态/运行态分析、安全策略等
- 制品库:包括容器镜像和特定语言包、自定义二进制文件和库,以及源代码等
如下表所示,通过列举一些相关的 CNCF 或者 CDF 项目,帮助读者理解这些能力:
能力 |
说明 |
CNCF/CDF 项目示例 |
用于配置和观察能力的 Web 门户 |
发布文档、服务目录和项目模板。发布有关系统和能力的遥测数据。 |
Backstage、Skooner、Ortelius |
自动配置能力的 API |
用于自动创建、更新、删除和观察能力的结构化格式。 |
Kubernetes、Crossplane、Operator Framework、Helm、KubeVela |
黄金路径模板和文档 |
用于快速项目开发的良好集成代码和能力的模板化组合。 |
ArtifactHub |
用于构建和测试产品的自动化 |
自动构建和测试的产品和服务。 |
Tekton、Jenkins、Buildpacks、ko、Carvel |
用于交付和验证服务的自动化 |
服务的自动化交付。 |
Argo、Flux、Keptn、Flagger、OpenFeature |
开发环境 |
应用系统的开发和赋能。 |
Devfile、Nocalhost、Telepresence、DevSpace |
应用可观测 |
应用数据的采集、分析和分发 |
OpenTelemetry、Jaeger、Prometheus、Thanos、Fluentd、Grafana、OpenCost |
基础设施服务 |
应用系统的运行、接入访问以及数据持久化 |
Kubernetes、Kubevirt、Knative、WasmEdgeCNI、Istio、Cilium、Envoy、Linkerd、CoreDNSRook、Longhorn、Etcd |
数据服务 |
应用结构化数据的持久化存储 |
TiKV、Vitess、SchemaHero |
消息和事件服务 |
应用程序间异步通信 |
Strimzi、NATS、gRPC、Knative、Dapr |
身份和密码服务 |
对应用资源和能力的接入访问提供密钥验证和身份识别 |
Dex、External Secrets、SPIFFE/SPIRE、Teller、cert-manager |
安全服务 |
应用运行态安全检测、告警和异常修复等 |
Falco、In-toto、KubeArmor、OPA、Kyverno、Cloud Custodian |
制品库 |
制品的构建、存储、分发等 |
ArtifactHub、Harbor、Distribution、Porter |