DevOps 搞了很多年,但很多团队的开发者仍然要自己管 K8s、写 YAML、配监控、查日志,认知负担很重。平台工程(Platform Engineering)是解决这个问题的新思路——构建内部开发者平台(IDP),让开发者专注业务代码,基础设施由平台统一提供。2026年我们在 30 人研发团队落地了平台工程,今天把完整实践分享出来。

一、为什么需要平台工程

DevOps 的困境

DevOps 的理想是"你构建,你运行"(You build it, you run it),但现实是:

  1. 认知负担过重:每个开发者都要懂 K8s、Docker、CI/CD、监控、日志、网络,这对业务开发者是巨大的负担
  2. 重复造轮子:每个团队自己搭 CI/CD、自己配监控、自己写部署脚本,重复劳动
  3. 标准不统一:每个团队的部署方式、监控配置、日志格式都不一样,运维和排障困难
  4. 安全风险:开发者自己配基础设施,容易有安全漏洞(如镜像未扫描、权限过大)
  5. 新人上手慢:新人要学一堆基础设施工具,才能开始写业务代码

平台工程的理念

平台工程不是 DevOps 的替代,而是 DevOps 的演进:

  • DevOps:强调文化和协作,开发和运维一起工作
  • 平台工程:强调工具和产品,构建一个内部平台,把基础设施能力封装成自助服务

平台工程的核心是内部开发者平台(Internal Developer Platform, IDP)——一个面向开发者的自助服务平台,让开发者不用关心底层基础设施,就能完成从代码到上线的全流程。

IDP 的价值

角色价值
业务开发者不用管 K8s/YAML/监控,专注业务代码,交付速度提升
运维/SRE从"救火队"变成"平台产品经理",标准化基础设施,减少重复劳动
架构师统一技术标准和规范,通过平台强制执行,减少技术债
安全团队安全能力内置到平台(镜像扫描、权限管理、合规检查),安全左移
管理者研发效能提升,交付周期缩短,基础设施成本降低

二、IDP 架构设计

整体架构

KVuabuelrtneteHsarboDrockeGritLaCAbIrB/线gaCocDACMkPDysIStQaLgPeromReetdhiesusRaEbLbKitMQ

核心模块

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/CDGitLab CI + ArgoCDGitOps 部署
容器编排Kubernetes容器编排
镜像仓库Harbor镜像存储和扫描
监控Prometheus + Grafana指标监控和面板
日志ELK(Elasticsearch + Logstash + Kibana)日志聚合
链路追踪Jaeger + OpenTelemetry分布式追踪
密钥管理HashiCorp Vault密钥和证书管理
配置管理Helm + KustomizeK8s 配置管理
环境管理Crossplane云资源自助编排
成本管理KubecostK8s 成本分析

四、落地路径

平台工程不是一蹴而就的,分阶段落地:

阶段1:基础建设(3个月)

目标:搭建 IDP 基础框架,接入核心工具

工作内容

  1. 部署 Backstage,配置 SSO 登录
  2. 接入服务目录,导入现有服务信息
  3. 集成 GitLab(代码仓库、CI/CD 状态)
  4. 集成监控(Prometheus + Grafana 面板嵌入)
  5. 集成日志(ELK 日志检索嵌入)
  6. 基础文档中心搭建

交付物:开发者能在 Backstage 看到所有服务的基本信息、监控、日志、代码链接

阶段2:CI/CD 标准化(3个月)

目标:标准化 CI/CD 流水线,开发者自助部署

工作内容

  1. 制定标准 CI/CD 模板(构建→测试→扫描→部署)
  2. 开发 Backstage CI/CD 插件,自助配置流水线
  3. 集成 ArgoCD,实现 GitOps 部署
  4. 开发环境管理功能,自助创建/销毁环境
  5. 集成 Harbor 镜像扫描,安全左移
  6. 部署审批和回滚功能

交付物:开发者能在 Backstage 自助配置流水线、创建环境、部署服务,不用写 YAML

阶段3:可观测性和文档(2个月)

目标:统一可观测性,自动化文档

工作内容

  1. 统一监控标准,每个服务自动生成监控面板
  2. 接入 OpenTelemetry,自动链路追踪
  3. 统一日志格式和检索
  4. 告警自助配置
  5. 文档自动生成(从代码注释和 OpenAPI)
  6. 运行手册和故障处理指南管理

交付物:每个服务都有统一的监控、日志、追踪、文档,排障效率提升

阶段4:高级功能(2个月)

目标:成本管理、安全合规、AI 辅助

工作内容

  1. 成本管理(Kubecost 集成,成本分摊和优化建议)
  2. 安全合规(配置检查、漏洞扫描、权限审计)
  3. 密钥管理(Vault 集成,自助申请密钥)
  4. AI 辅助(接入大模型,智能排障、文档问答、代码生成)
  5. 服务健康度评分和技术债管理

交付物:完整的 IDP,覆盖研发全流程

五、实践效果

落地 10 个月后的数据:

指标落地前落地后变化
新人上手时间2周3天-70%
新服务创建时间2天30分钟-95%
环境创建时间1天10分钟-98%
部署频率每周1次每天3次+2000%
变更失败率15%5%-67%
平均恢复时间(MTTR)2小时30分钟-75%
开发者满意度6.5/108.5/10+31%
基础设施成本---15%(资源优化)

核心效果:交付速度提升 3 倍,稳定性提升 2 倍,开发者满意度大幅提升

六、踩坑经验

  1. 一开始就想做全功能:平台工程范围大,一开始想把所有功能都做了,结果做了半年还没上线。要分阶段,先做最痛的点(如 CI/CD 标准化),快速交付价值
  2. 平台团队脱离开发者:平台团队闭门造车,做出来的功能开发者不用。要把平台当产品做,定期和开发者沟通,收集反馈,持续迭代
  3. 强制推广引起抵触:一开始强制所有团队用 IDP,结果开发者抵触,觉得"又多了一个系统要学"。要先在试点团队验证价值,用效果说服其他团队
  4. 文档和培训不足:平台上线了但开发者不会用,还是自己搞老一套。要写好文档、做培训、配导师,让开发者愿意用、会用
  5. 集成太多工具太复杂:IDP 集成了十几个工具,界面复杂,开发者找不到功能。要简化界面,常用功能放首页,高级功能藏起来
  6. 忽略遗留系统:新服务用 IDP,老服务还是老方式,形成"两张皮"。要制定迁移计划,逐步把老服务迁移到 IDP
  7. 平台团队变成新的运维瓶颈:开发者用 IDP 遇到问题都找平台团队,平台团队成了新的瓶颈。要加强自助服务和文档,大部分问题开发者自己解决
  8. 不度量效果:平台做了很多功能,但不知道有没有用、效果怎么样。要建立度量体系(交付周期、部署频率、失败率、满意度),用数据指导迭代

七、平台工程的关键原则

  1. 平台是产品,不是项目:把 IDP 当产品做,有产品经理、有路线图、有用户反馈、持续迭代,不是"做完就完事"
  2. 开发者体验优先:平台的用户是开发者,要像对待外部客户一样对待开发者,追求极致的用户体验
  3. 自助服务是核心:平台的价值是让开发者自助完成任务,不用找运维。如果开发者用平台还要找平台团队帮忙,那就失败了
  4. 黄金路径(Golden Path):提供标准的、推荐的技术路径(如标准 CI/CD 模板、标准服务框架),开发者沿着黄金路径走,不用自己选型
  5. 渐进式采用:不要强制全团队一次切换,先在试点团队验证价值,再逐步推广,用效果说话
  6. 平台团队是产品团队:平台团队不是运维团队,是产品团队——有产品经理、设计师、工程师,专注于打造开发者产品
  7. 度量驱动:建立度量体系,量化平台效果(交付周期、部署频率、满意度),用数据指导迭代和决策
  8. 安全内置不是外挂:安全能力要内置到平台流程中(如镜像扫描、密钥管理、权限控制),不是事后检查

八、总结

平台工程实践核心:

  1. 平台工程是 DevOps 的演进:DevOps 强调文化和协作,平台工程强调工具和产品,构建 IDP 把基础设施能力封装成自助服务
  2. IDP 是核心产品:内部开发者平台覆盖服务目录、环境管理、CI/CD、可观测性、文档、安全、成本,让开发者专注业务代码
  3. Backstage 是门户首选:Backstage 是 IDP 的事实标准,服务目录 + 插件生态,能快速搭建开发者门户
  4. 分阶段落地是关键:基础建设 → CI/CD 标准化 → 可观测性和文档 → 高级功能,每阶段交付价值,不要一开始就想做全
  5. 平台是产品不是项目:有产品经理、路线图、用户反馈、持续迭代,追求开发者体验
  6. 自助服务是核心价值:让开发者自助完成任务,不用找运维,平台团队不成为新瓶颈
  7. 效果显著:我们的实践证明,交付速度提升 3 倍,稳定性提升 2 倍,新人上手时间减少 70%
  8. 踩坑要避免:不要闭门造车、不要强制推广、不要忽略文档培训、不要脱离开发者、要度量效果

平台工程代表了研发效能的下一个阶段——从"每个人都要懂基础设施"到"基础设施作为产品,开发者自助使用"。投入时间构建 IDP,长期来看能大幅提升研发效能和稳定性。但记住,平台工程不是技术问题,是产品问题——技术只是手段,开发者体验和价值才是目的。