随着软件系统变得越来越复杂 - - 微服务、Kubernetes、多云、CI/CD 流水线、可观测性技术栈 - - 开发者花在基础设施上的时间越来越多,而用于构建产品的时间越来越少。Platform Engineering 通过创建一个抽象复杂性的内部平台,为开发者提供自助服务工具,从而加速交付来解决这个问题。
Gartner 预测,到 2027 年,80% 的软件工程组织将建立平台团队。在本指南中,我们将探讨什么是 Platform Engineering、为什么它很重要,以及如何从零开始构建 Internal Developer Platform。
什么是 Platform Engineering?
Platform Engineering 是一门设计和构建工具链与工作流的学科,为软件工程组织提供自助服务能力。其产出是一个 Internal Developer Platform (IDP) - - 位于开发者和基础设施之间的一个抽象层。
Platform Engineering 与 DevOps
Platform Engineering 不是 DevOps 的替代品 - - 它是下一次演进。DevOps 说"你构建它,你运维它"。Platform Engineering 说"我们会让构建和运维变得毫不费力"。
| 方面 | DevOps | Platform Engineering |
|---|---|---|
| 关注点 | 文化和实践 | 产品和自助服务 |
| 方法 | 每个团队管理基础设施 | 平台团队抽象基础设施 |
| 认知负荷 | 高(每个团队都要学习所有内容) | 低(提供黄金路径) |
| 产出 | CI/CD 流水线、IaC 脚本 | Internal Developer Platform |
| 用户 | 所有工程团队 | 平台团队服务工程团队 |
为什么 Platform Engineering 很重要
认知负荷问题
在一个典型的现代组织中,开发者需要理解:
- Git 工作流和分支策略
- CI/CD 流水线配置
- 容器构建和镜像仓库管理
- Kubernetes 清单和 Helm Charts
- 云服务商服务(AWS/GCP/Azure)
- 网络、DNS、TLS 证书
- 监控、日志和告警配置
- 数据库配置和迁移
- 安全策略和合规性
这是一个巨大的认知负担,分散了对实际产品的注意力。
黄金路径
Platform Engineering 引入了黄金路径的概念 - - 为常见任务提供的有主见的、支持良好且有文档记录的路径。黄金路径不是强制要求;开发者可以偏离,但平台让正确的做法变成最简单的做法。
创建新微服务的黄金路径示例:
- 开发者在门户中选择"新建后端服务"
- 选择语言/框架(Node.js、Go、Python)
- 平台自动创建:Git 仓库、CI/CD 流水线、Kubernetes 命名空间、监控仪表板和告警规则
- 开发者克隆仓库,立即开始编码
构建 Internal Developer Platform
第一层:开发者门户
门户是开发者的唯一入口。最流行的开源选择是 Backstage(由 Spotify 创建,现为 CNCF 项目)。
核心功能:
- 服务目录:每个服务、其所有者、文档和依赖关系
- 软件模板:内置最佳实践的新服务脚手架
- 技术文档:文档即代码,可渲染和搜索
- 插件生态系统:通过自定义功能进行扩展
# backstage/catalog-info.yaml apiVersion: backstage.io/v1alpha1 kind: Component metadata: name: user-service description: Manages user accounts and authentication annotations: github.com/project-slug: myorg/user-service backstage.io/techdocs-ref: dir:. spec: type: service lifecycle: production owner: team-auth system: identity-platform dependsOn: - resource:postgresql-main providesApis: - user-api
第二层:基础设施抽象
开发者不应该直接编写 Terraform 或 Kubernetes YAML。平台应该提供抽象层。
工具:
- Crossplane:Kubernetes 原生基础设施配置
- Terraform 模块:预构建、经过测试的基础设施模块
- Pulumi:基础设施即真正的代码(TypeScript、Python、Go)
# Example: Crossplane composition for a database apiVersion: database.example.com/v1 kind: PostgreSQLInstance metadata: name: user-db spec: size: small # Abstraction: small = 2 vCPU, 4GB RAM version: "16" backup: daily team: auth-team
开发者不需要配置 RDS 参数、VPC 子网、安全组和备份策略,只需指定 size: small 和 backup: daily。平台处理其余一切。
第三层:CI/CD 标准化
标准化 CI/CD,这样团队就不需要各自构建自己的流水线。
# .github/workflows/platform-ci.yml # Teams just include the shared workflow name: Build and Deploy on: push: branches: [main] jobs: pipeline: uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2 with: language: node deploy-target: production secrets: inherit
关键实践:
- 团队引用(而非复制)的共享 CI/CD 模板
- 自动安全扫描(SAST、依赖审计)
- 标准化部署策略(金丝雀发布、蓝绿部署)
- 健康检查失败时自动回滚
第四层:可观测性
预配置的监控,让开发者开箱即获得仪表板和告警。
- 指标:Prometheus + Grafana,每个服务提供标准仪表板
- 日志:结构化日志与集中收集(Loki、ELK)
- 链路追踪:使用 OpenTelemetry 的分布式追踪
- 告警:PagerDuty/Opsgenie 集成,提供合理的默认配置
衡量成功
你怎么知道你的平台在发挥作用?追踪以下指标:
DORA 指标
- 部署频率:代码多久到达生产环境一次
- 变更前置时间:从提交到生产环境的时间
- 变更失败率:导致故障的部署百分比
- 平均恢复时间:事件发生后恢复服务的时间
平台特定指标
- 首次部署时间:从"新服务"到首次生产部署需要多长时间
- 开发者满意度(NPS):定期调查你的用户
- 自助服务比例:无需工单处理的基础设施请求百分比
- 黄金路径采用率:遵循推荐路径的服务百分比
常见错误
1. 过早构建过多
从最大的痛点开始,而不是宏大的愿景。如果部署很痛苦,从那里开始。如果配置需要数周,从那里开始。
2. 不把平台当作产品
平台团队需要产品经理、用户研究和反馈循环。开发者是你的客户 - - 理解他们的需求。
3. 强制而非吸引
最好的平台是因为让开发者的生活更轻松而被自愿采用的。如果你必须强制使用,说明你的平台还不够好。
4. 忽视开发者体验
用户体验糟糕的平台不会被使用。投资于清晰的文档、有用的错误消息和快速的反馈循环。
如何开始
构建你的第一个 IDP 的实用路线图:
最小可行平台
- 服务目录(Backstage) - - 了解存在什么以及谁负责
- 一个服务模板 - - 为你最常见的服务类型提供黄金路径
- 标准化 CI/CD - - 团队引用的共享流水线
- 基础文档 - - 如何使用平台,在哪里获得帮助
你可以在 2-3 个月内用 2-3 名工程师的团队构建这个 MVP。
结论
Platform Engineering 不是要在第一天就构建完美的平台。它是关于逐步减少开发者的认知负荷,让他们能够专注于构建产品。从小处开始,衡量影响,并根据开发者反馈进行迭代。
投资于 Platform Engineering 的组织将拥有显著的竞争优势:更快的交付、更快乐的开发者和更可靠的系统。
资源:
- Team Topologies - - 推广平台团队概念的书籍
- Backstage - - Spotify 的开源开发者门户
- CNCF Platforms White Paper - - 社区定义和最佳实践
- platformengineering.org - - 社区、活动和资源