要解决的问题
到2010年代中期,Spotify的自主小队文化造就了一套庞杂的基础设施:几百个微服务跑在一堆工具上,包括Terraform、云命令行、GitLab CI、Prometheus、Kubernetes和Docker,每个都有各自的界面、凭据和规则。每个工程师都指望掌握全部工具,但代价是频繁切换、碎片化和认知负担。
创意是什么
为所有基础设施打造一个统一入口:一个开发者门户,带有服务目录、模板和插件,用一个统一的界面取代十种工具链。
如何实现
大约在2016年,Spotify的工程师开始构建Backstage,这是一个内部门户,带有软件目录,记录了什么存在、谁负责;可点击的模板,用来搭建新的微服务,并内置了最佳实践;视图,可以追踪一个拉取请求从评审到上线的全过程;还有用Markdown写的文档,都集中展示。到了2020年,内部安装的插件超过100个;那年3月16日,Spotify把代码作为开源发布,这是有意为之,好让同行公司能影响它的发展,并让它成为基础设施的标准用户界面层。
产生的效果
开源押注获得了回报:云原生计算基金会于2020年9月接纳Backstage进入其沙箱,到2025年,超过3000家组织采用它来构建自己的内部开发者门户,而Spotify所有700个研发小队仍然在用。Spotify把这个框架变成了商业产品,即Spotify Portal for Backstage。
背景
到2010年代中期,Spotify的运行环境是几百个微服务,工程文化建立在自主小队之上。基础设施的每个部分都有自己的工具——Terraform、云命令行、GitLab CI、Prometheus、Kubernetes、Docker等等,各有不同的界面、凭据和规则。工程师们需要掌握所有这些,代价就是频繁切换、碎片化和认知负担。
大约在2016年,Spotify的工程师开始用Backstage解决这个问题,这是一个内部开发者门户:软件目录记录了什么服务在运行、谁负责;可点击的模板,用来搭建新微服务,并且最佳实践已经内置;视图,可以跟踪一个拉取请求从评审到上线;文档以Markdown形式写在代码中,并集中展示。到2020年,内部安装的插件超过100个——为整个技术栈提供了一个统一入口。
2020年3月,Spotify有意开源了Backstage,提前发布,以便其他面临同样碎片化问题的公司可以塑造它——并且这样它就能成为标准,而不是Spotify某天不得不迁移掉的私有孤岛。9月,云原生计算基金会接纳它进入沙箱;到2025年,已有超过3000家组织采用,Spotify所有700个研发小队仍然依赖它,并且Spotify在销售Spotify Portal for Backstage这个企业产品。
为什么有效
洞见在于修复界面层,而不是工具本身:Backstage并没有取代Terraform或Kubernetes,而是给每个工具一个统一的入口。
带有明确归属的服务目录把口头知识变成了数据库,这样任何工程师都能找到什么存在以及该问谁。
提前发布让这个工具成为共同标准,而不是私有投资——几个月内,大部分贡献就来自Spotify外部。
因为Spotify自己最挑剔的客户,所以对社区改进的每一项都必须先在自己几百个小队中行得通。
可以借鉴什么
把你最好的内部工具作为公共平台发布:开源Backstage让Spotify永远不会被迫放弃自己的发明,而行业则做了其余的事。
后续
Backstage帮助创造了一个类别——内部开发者平台(IDP)——并成为云原生计算基金会最引人注目的项目之一。Spotify在此之上构建了一个企业业务,于2024年推出Spotify Portal for Backstage的测试版,并扩展了开源框架,添加了无代码插件管理器,而该框架到2025年已有超过3000家采用组织,从航空公司到投资公司。在Spotify内部,它仍然是所有700个研发小队的日常工具,而且这个要求苛刻的第一个客户是每项改进都必须满足的。
从这里,追溯依据
参考来源
- What the Heck is Backstage Anyway? Spotify Engineering · engineering.atspotify.com ·
- Backstage: Spotify Developer Portals with Stefan Ålund Software Engineering Daily · softwareengineeringdaily.com ·
- Celebrating Five Years of Backstage: From Open Source Project to Enterprise Business Spotify Engineering · engineering.atspotify.com ·