Spotify在QCon London分享Backstage架构的演进
在QCon London大会上,来自Spotify的Pia Nilsson(工程总监)和Mike Lewis(高级工程师)主持了一场题为“一切都是插件:Backstage架构如何帮助Spotify及其他平台团队扩展所有权并交付价值”的会议。会议主要探讨了Backstage的插件架构如何通过演进实现更轻松的扩展性。
Backstage的背景与诞生
Pia Nilsson自2017年Backstage项目启动以来一直领导该项目,而Mike Lewis在加入团队之前每天使用Backstage,并随后成为该项目的技术负责人。Nilsson解释了Backstage的背景及其如何成为一项能够显著改变3000名员工工作方式的技术。2017年,工程师的生产力指标呈下降趋势,例如,新员工从入职到第十个拉取请求合并并上线的时间长达60天。
Spotify采用自主工程文化,工程师需要自己部署代码并构建所需的基础设施。每个团队以自己认为正确的方式构建系统,使用不同的语言和库,文档不统一且分散存储。这种“狂野西部”式的工作方式导致生产效率低下。
识别生产力瓶颈
通过对团队工作方式的访谈和观察,团队发现后端工程师相对更满意,因为他们拥有后端组件的目录。此外,团队还识别出多个生产力瓶颈,包括工程师难以找到资源、在任务和职责之间切换、以及构建和维护基础设施的重复劳动。500个团队各自重新发明CI/CD管道,缺乏统一标准,导致软件交付效率低下。
Backstage的诞生与核心架构
基于这些发现,Backstage应运而生,作为一个服务目录,提供基础设施的单一视图。Nilsson强调,任何基础设施工具的有用性取决于其采用率。为了确保平台的广泛使用,Backstage从一开始就利用基础设施即代码(Infrastructure as Code),并通过添加额外元数据来降低采用负担。
Lewis解释了Backstage的核心架构:前端基于React,后端使用水平可扩展的ExpressJS,并与第三方API通信。插件是TypeScript代码的捆绑包,可以私有或公开发布。Lewis表示,Spotify希望增加对代码的贡献,但目前由于构建插件和模块的难度较大,贡献者较少。
插件架构的演进
Lewis进一步描述了Backstage插件架构的演进。过去,编写插件类似于接线,需要添加多行代码并随着变化进行调整。现在,团队正在转向一种新的声明式集成模型,使用yarn添加包,尽管该模型仍处于alpha阶段。这种技术允许插件所有者通过直接API连接让其他插件编写者扩展其插件,从而实现嵌套扩展性。例如,访问控制插件可以拆分为“决策”和“执行”两个独立的插件。
关键要点与未来展望
会议的关键要点包括鼓励插件作者将代码从采用者实例迁移到插件中,并将代码从插件迁移到框架中,以减少重复工作,并通过嵌套扩展性最大化灵活性。Nilsson和Lewis的演讲录像将在未来几个月内通过InfoQ提供。
可以通过视频通行证访问QCon London的演讲录像。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。