最近一段时间,我一直在思考一个问题: 能不能用 Kubernetes,给开发团队提供类似 Codespaces、Gitpod、Code Server 这样的云端开发环境?
从技术上看,这件事并不新鲜:
- Kubernetes 负责资源隔离和生命周期
- 容器解决环境一致性
- 云端开发,理论上可以做到开箱即用、即来即走
但很快,一个更现实的问题就摆在了面前:
这些开发环境,应该由什么来“管理”?
谁可以创建? 创建出来的环境属于哪个项目? 怎么和代码仓库、CI、权限、文档关联起来? 开发者该从哪里进入,而不是再多记一个 URL?
在和朋友的讨论中,他提到了 Backstage。 这个名字我其实并不陌生,只是一直没有真正花时间去深入了解。
于是,我决定系统地研究一下 Backstage。很快我发现:
它解决的,并不是 Kubernetes 的问题,而是开发者在复杂系统里如何“找到入口”的问题。
也正是从这一刻开始,我逐渐理解了 Backstage 为什么会在平台工程(Platform Engineering)领域变得如此重要。
下面这篇文章,就是我基于这些思考,整理出来的一些认识和判断。
什么是 Backstage?#
一句话版本:
Backstage 不是 CI,不是 Kubernetes,也不是新的 DevOps 工具,而是一个“把你现有工具串起来的统一入口”。
它最早来自 Spotify。 当年 Spotify 工程师遇到的痛点,和我们今天几乎一模一样:
- 服务多
- 团队多
- 工具多
- 人来人走,知识全靠“部落记忆”
Backstage 的初衷其实非常朴素:
给所有软件资产一个“户口本”。
谁负责、跑在哪、依赖什么、文档在哪,一眼就能看到。
后来 Spotify 把它开源并捐给了 CNCF。到今天,Backstage 已经成了 IDP 领域最具代表性的开源实现之一,也常常被视为事实上的参考标准。
为什么要搞平台工程?#
很多团队一开始都会说:
我们已经 DevOps 了,为什么还要搞平台工程?
但现实是:
- DevOps 强调的是 “你构建,你运行”
- 平台工程关注的是 “我帮你把构建和运行这件事变简单”
当系统复杂度上来之后,让每个开发者都精通 Kubernetes、CI、安全、监控,其实是一种效率灾难。
平台工程的目标并不是控制开发者,而是:
- 降低认知负担
- 提供“默认正确”的路径(Golden Path)
而 Backstage,正好是这一理念在工程层面的重要载体。
Backstage 最核心的 3 个能力#
如果只记三点,就记这三个。
软件编目(Software Catalog)#
这是 Backstage 的灵魂。
你可以把它理解成:
企业内部的“软件资产搜索引擎”。
每个服务在仓库里放一个 catalog-info.yaml,用来描述:
- 这是谁的服务
- 属于哪个系统
- 暴露了哪些 API
- 依赖哪些数据库或云资源
Backstage 会把这些信息整理成一张可视化的软件关系网。
效果非常直观:
- 新人找服务,不再靠问人
- 出问题时,可以快速评估影响范围
- “这玩意是谁负责的”不再是玄学
当然,需要说明的是: Backstage 并不能解决“没人愿意负责”的问题,它只是把责任是否清晰这件事暴露出来。
软件模板(Scaffolder / Golden Path)#
这是我个人最推荐优先落地的能力。
现实中创建一个新服务,往往是这样:
- 申请仓库
- 配 CI
- 接监控
- 接安全扫描
- 再补一堆“规范要求”
Backstage 的模板做了一件非常关键的事:
把“正确姿势”直接做成一键操作。
开发者只需要填几个字段:
- 项目名
- 技术栈
- 是否需要数据库
剩下的事情,比如:
- 仓库创建
- CI 配置
- Catalog 注册
全部自动完成。
这不仅是效率问题,更重要的是:
平台团队终于可以把“规范”变成代码,而不是停留在文档里。
TechDocs(文档即代码)#
这一点对我这种长期不太信 Wiki 的人来说,非常加分。
TechDocs 推崇一个很重要的原则:
文档和代码放在一起,用 Markdown 管。
好处只有一个,但很致命:
- 文档不容易长期过期
在 Backstage 里,点进一个服务:
- 代码
- 负责人
- 文档
可以在一个页面里形成完整闭环。
Backstage 解决不了什么?#
如果你只听过成功案例,这里得泼点冷水。
它不是“装上就能用”#
Backstage 更像一个平台框架,而不是开箱即用的产品。
真实情况通常是:
- 要写 React / TypeScript
- 要开发或定制插件
- 要持续维护 Catalog 元数据
很多公司低估了这一点,结果往往是:
Backstage 上线了,但开发者并不买账。
元数据一旦不准,信任会瞬间崩塌#
只要出现一次:
- 找到的负责人已经离职
- 文档明显过期或错误
开发者就会迅速回到老路:
Slack + 私聊 + 口口相传
而 Catalog 的问题,往往不是“一天坏掉”,而是在无人负责的情况下慢慢失真。
Backstage 适合谁用?#
我的个人判断是:
小团队 👉 不建议自建,成本有点高
中大型工程组织 👉 如果有平台团队,Backstage 非常值得认真评估
希望更快见效 👉 可以直接看看 Port、Cortex、Roadie 这类托管方案
工具本身不是重点,IDP 的理念才是。
总结#
最后说一句可能有点“反工具论”的话。
Backstage 成功的核心,从来不是 React,也不是插件生态,而是三件事:
- 所有权是否清晰
- 是否优先标准化
- 平台是否被当作产品来运营
如果你只是想“再上一个工具”,Backstage 很可能会失败。 但如果你真正想做的是:
让开发者把时间花在写代码,而不是找信息
那么无论用不用 Backstage,这条路你迟早都会走到。






