跳过正文
  1. Posts/

Backstage(开发者门户)是什么?它能解决什么,又解决不了什么

·1972 字·4 分钟· ·
沈显鹏
作者
沈显鹏
DevOps & Build 工程师 | Python 爱好者 | 开源贡献者
目录

最近一段时间,我一直在思考一个问题: 能不能用 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,也不是插件生态,而是三件事:

  1. 所有权是否清晰
  2. 是否优先标准化
  3. 平台是否被当作产品来运营

如果你只是想“再上一个工具”,Backstage 很可能会失败。 但如果你真正想做的是:

让开发者把时间花在写代码,而不是找信息

那么无论用不用 Backstage,这条路你迟早都会走到。

相关文章