DevOps 搞了很多年,但很多团队的开发者仍然要自己管 K8s、写 YAML、配监控、查日志,认知负担很重。平台工程(Platform Engineering)是解决这个问题的新思路——构建内部开发者平台(IDP),让开发者专注业务代码,基础设施由平台统一提供。2026年我们在 30 人研发团队落地了平台工程,今天把完整实践分享出来。
一、为什么需要平台工程
DevOps 的困境
DevOps 的理想是"你构建,你运行"(You build it, you run it),但现实是:
- 认知负担过重:每个开发者都要懂 K8s、Docker、CI/CD、监控、日志、网络,这对业务开发者是巨大的负担
- 重复造轮子:每个团队自己搭 CI/CD、自己配监控、自己写部署脚本,重复劳动
- 标准不统一:每个团队的部署方式、监控配置、日志格式都不一样,运维和排障困难
- 安全风险:开发者自己配基础设施,容易有安全漏洞(如镜像未扫描、权限过大)
- 新人上手慢:新人要学一堆基础设施工具,才能开始写业务代码
平台工程的理念
平台工程不是 DevOps 的替代,而是 DevOps 的演进:
- DevOps:强调文化和协作,开发和运维一起工作
- 平台工程:强调工具和产品,构建一个内部平台,把基础设施能力封装成自助服务
平台工程的核心是内部开发者平台(Internal Developer Platform, IDP)——一个面向开发者的自助服务平台,让开发者不用关心底层基础设施,就能完成从代码到上线的全流程。
IDP 的价值
| 角色 | 价值 |
|---|---|
| 业务开发者 | 不用管 K8s/YAML/监控,专注业务代码,交付速度提升 |
| 运维/SRE | 从"救火队"变成"平台产品经理",标准化基础设施,减少重复劳动 |
| 架构师 | 统一技术标准和规范,通过平台强制执行,减少技术债 |
| 安全团队 | 安全能力内置到平台(镜像扫描、权限管理、合规检查),安全左移 |
| 管理者 | 研发效能提升,交付周期缩短,基础设施成本降低 |
二、IDP 架构设计
整体架构
核心模块
1. 服务目录(Service Catalog)
- 所有服务的统一目录,展示服务信息(负责人、代码仓库、接口文档、运行状态)
- 服务依赖关系图,一目了然
- 服务健康度评分(可用性、延迟、错误率、测试覆盖率)
- 基于 Backstage 的 Service Catalog 实现
2. 环境管理(Environment Management)
- 自助创建/销毁环境(开发、测试、预发、生产)
- 环境配置管理(数据库、缓存、消息队列等中间件自动创建)
- 环境隔离和权限控制
- 一键复制环境(如把生产数据脱敏后复制到测试环境)
3. CI/CD 流水线
- 标准流水线模板(构建→测试→扫描→部署),开发者不用自己写
- 自助配置流水线(选模板、填参数)
- 多环境部署策略(蓝绿、金丝雀、滚动)
- 部署审批和回滚
4. 可观测性(Observability)
- 统一监控面板(每个服务自动生成监控面板)
- 日志聚合和检索(不用自己配 ELK)
- 链路追踪(自动接入 OpenTelemetry)
- 告警配置(自助配置告警规则和通知渠道)
5. 文档中心(Documentation)
- 服务文档自动生成(从代码注释和 OpenAPI 生成)
- 架构文档和技术方案管理
- 运行手册(Runbook)和故障处理指南
- 新人上手指南和最佳实践
6. 权限和安全
- 统一身份认证(SSO)
- 基于角色的权限控制(RBAC)
- 镜像安全扫描(自动扫描漏洞)
- 密钥管理(集成 Vault,不用在代码里写密钥)
- 合规检查(自动检查配置是否符合安全规范)
7. 成本管理
- 资源使用统计和成本分摊
- 资源优化建议(如闲置资源、过度配置)
- 成本预算和告警
- 云资源自助申请和回收
三、工具选型
核心平台:Backstage
Backstage 是 Spotify 开源的开发者门户框架,是 IDP 的事实标准:
- 服务目录(Service Catalog):核心功能,管理所有服务和资源
- 插件生态丰富:监控、日志、CI/CD、文档、成本等都有插件
- 可定制:前端框架,能自定义页面和组件
- 活跃社区:CNCF 孵化项目,大公司在用
我们用 Backstage 作为 IDP 的门户层,其他工具通过插件集成。
工具链选型
| 模块 | 工具 | 说明 |
|---|---|---|
| 开发者门户 | Backstage | 统一门户,服务目录 |
| 代码托管 | GitLab | 代码仓库,CI/CD |
| CI/CD | GitLab CI + ArgoCD | GitOps 部署 |
| 容器编排 | Kubernetes | 容器编排 |
| 镜像仓库 | Harbor | 镜像存储和扫描 |
| 监控 | Prometheus + Grafana | 指标监控和面板 |
| 日志 | ELK(Elasticsearch + Logstash + Kibana) | 日志聚合 |
| 链路追踪 | Jaeger + OpenTelemetry | 分布式追踪 |
| 密钥管理 | HashiCorp Vault | 密钥和证书管理 |
| 配置管理 | Helm + Kustomize | K8s 配置管理 |
| 环境管理 | Crossplane | 云资源自助编排 |
| 成本管理 | Kubecost | K8s 成本分析 |
四、落地路径
平台工程不是一蹴而就的,分阶段落地:
阶段1:基础建设(3个月)
目标:搭建 IDP 基础框架,接入核心工具
工作内容:
- 部署 Backstage,配置 SSO 登录
- 接入服务目录,导入现有服务信息
- 集成 GitLab(代码仓库、CI/CD 状态)
- 集成监控(Prometheus + Grafana 面板嵌入)
- 集成日志(ELK 日志检索嵌入)
- 基础文档中心搭建
交付物:开发者能在 Backstage 看到所有服务的基本信息、监控、日志、代码链接
阶段2:CI/CD 标准化(3个月)
目标:标准化 CI/CD 流水线,开发者自助部署
工作内容:
- 制定标准 CI/CD 模板(构建→测试→扫描→部署)
- 开发 Backstage CI/CD 插件,自助配置流水线
- 集成 ArgoCD,实现 GitOps 部署
- 开发环境管理功能,自助创建/销毁环境
- 集成 Harbor 镜像扫描,安全左移
- 部署审批和回滚功能
交付物:开发者能在 Backstage 自助配置流水线、创建环境、部署服务,不用写 YAML
阶段3:可观测性和文档(2个月)
目标:统一可观测性,自动化文档
工作内容:
- 统一监控标准,每个服务自动生成监控面板
- 接入 OpenTelemetry,自动链路追踪
- 统一日志格式和检索
- 告警自助配置
- 文档自动生成(从代码注释和 OpenAPI)
- 运行手册和故障处理指南管理
交付物:每个服务都有统一的监控、日志、追踪、文档,排障效率提升
阶段4:高级功能(2个月)
目标:成本管理、安全合规、AI 辅助
工作内容:
- 成本管理(Kubecost 集成,成本分摊和优化建议)
- 安全合规(配置检查、漏洞扫描、权限审计)
- 密钥管理(Vault 集成,自助申请密钥)
- AI 辅助(接入大模型,智能排障、文档问答、代码生成)
- 服务健康度评分和技术债管理
交付物:完整的 IDP,覆盖研发全流程
五、实践效果
落地 10 个月后的数据:
| 指标 | 落地前 | 落地后 | 变化 |
|---|---|---|---|
| 新人上手时间 | 2周 | 3天 | -70% |
| 新服务创建时间 | 2天 | 30分钟 | -95% |
| 环境创建时间 | 1天 | 10分钟 | -98% |
| 部署频率 | 每周1次 | 每天3次 | +2000% |
| 变更失败率 | 15% | 5% | -67% |
| 平均恢复时间(MTTR) | 2小时 | 30分钟 | -75% |
| 开发者满意度 | 6.5/10 | 8.5/10 | +31% |
| 基础设施成本 | - | - | -15%(资源优化) |
核心效果:交付速度提升 3 倍,稳定性提升 2 倍,开发者满意度大幅提升。
六、踩坑经验
- 一开始就想做全功能:平台工程范围大,一开始想把所有功能都做了,结果做了半年还没上线。要分阶段,先做最痛的点(如 CI/CD 标准化),快速交付价值
- 平台团队脱离开发者:平台团队闭门造车,做出来的功能开发者不用。要把平台当产品做,定期和开发者沟通,收集反馈,持续迭代
- 强制推广引起抵触:一开始强制所有团队用 IDP,结果开发者抵触,觉得"又多了一个系统要学"。要先在试点团队验证价值,用效果说服其他团队
- 文档和培训不足:平台上线了但开发者不会用,还是自己搞老一套。要写好文档、做培训、配导师,让开发者愿意用、会用
- 集成太多工具太复杂:IDP 集成了十几个工具,界面复杂,开发者找不到功能。要简化界面,常用功能放首页,高级功能藏起来
- 忽略遗留系统:新服务用 IDP,老服务还是老方式,形成"两张皮"。要制定迁移计划,逐步把老服务迁移到 IDP
- 平台团队变成新的运维瓶颈:开发者用 IDP 遇到问题都找平台团队,平台团队成了新的瓶颈。要加强自助服务和文档,大部分问题开发者自己解决
- 不度量效果:平台做了很多功能,但不知道有没有用、效果怎么样。要建立度量体系(交付周期、部署频率、失败率、满意度),用数据指导迭代
七、平台工程的关键原则
- 平台是产品,不是项目:把 IDP 当产品做,有产品经理、有路线图、有用户反馈、持续迭代,不是"做完就完事"
- 开发者体验优先:平台的用户是开发者,要像对待外部客户一样对待开发者,追求极致的用户体验
- 自助服务是核心:平台的价值是让开发者自助完成任务,不用找运维。如果开发者用平台还要找平台团队帮忙,那就失败了
- 黄金路径(Golden Path):提供标准的、推荐的技术路径(如标准 CI/CD 模板、标准服务框架),开发者沿着黄金路径走,不用自己选型
- 渐进式采用:不要强制全团队一次切换,先在试点团队验证价值,再逐步推广,用效果说话
- 平台团队是产品团队:平台团队不是运维团队,是产品团队——有产品经理、设计师、工程师,专注于打造开发者产品
- 度量驱动:建立度量体系,量化平台效果(交付周期、部署频率、满意度),用数据指导迭代和决策
- 安全内置不是外挂:安全能力要内置到平台流程中(如镜像扫描、密钥管理、权限控制),不是事后检查
八、总结
平台工程实践核心:
- 平台工程是 DevOps 的演进:DevOps 强调文化和协作,平台工程强调工具和产品,构建 IDP 把基础设施能力封装成自助服务
- IDP 是核心产品:内部开发者平台覆盖服务目录、环境管理、CI/CD、可观测性、文档、安全、成本,让开发者专注业务代码
- Backstage 是门户首选:Backstage 是 IDP 的事实标准,服务目录 + 插件生态,能快速搭建开发者门户
- 分阶段落地是关键:基础建设 → CI/CD 标准化 → 可观测性和文档 → 高级功能,每阶段交付价值,不要一开始就想做全
- 平台是产品不是项目:有产品经理、路线图、用户反馈、持续迭代,追求开发者体验
- 自助服务是核心价值:让开发者自助完成任务,不用找运维,平台团队不成为新瓶颈
- 效果显著:我们的实践证明,交付速度提升 3 倍,稳定性提升 2 倍,新人上手时间减少 70%
- 踩坑要避免:不要闭门造车、不要强制推广、不要忽略文档培训、不要脱离开发者、要度量效果
平台工程代表了研发效能的下一个阶段——从"每个人都要懂基础设施"到"基础设施作为产品,开发者自助使用"。投入时间构建 IDP,长期来看能大幅提升研发效能和稳定性。但记住,平台工程不是技术问题,是产品问题——技术只是手段,开发者体验和价值才是目的。