2. Backstage 平台基础:Backstage 是什么、核心概念与开发者门户的价值

在开始压测模板自助接入之前,必须先理解 Backstage 平台本身。Backstage 是 Spotify 开源的一个开发者门户平台,它通过统一的抽象层,将微服务、基础设施、文档、CI/CD 等工具链整合到一个标准化的前端界面中。对于压测场景,Backstage 提供了“模板即入口”的能力,让开发团队无需登录多个系统即可完成压测任务的创建与配置。

2.1 Backstage 是什么

Backstage 本质上是一个开发者门户(Developer Portal),它解决了微服务架构下工具碎片化、信息分散、 onboarding 成本高的痛点。其核心设计理念是:

  • 统一入口:所有服务、资源、文档、流程都通过一个 Web 界面访问。
  • 标准化建模:使用统一的实体模型(Entity)描述所有软件组件。
  • 插件化扩展:通过插件机制集成第三方工具或内部系统。
关键认知: Backstage 不是 CI/CD 工具,也不是监控系统,而是一个“元平台”——它本身不执行压测,但通过模板和插件,让压测流程的发起、参数配置、结果查看变得标准化和自助化。

2.2 三大核心概念

要使用 Backstage 进行压测模板接入,必须掌握以下三个核心概念:Entity(实体)、Catalog(目录)、Plugin(插件)。它们之间的关系如下图所示:

Backstage 三大核心概念关系图 Backstage 三大核心概念关系 Entity(实体) 统一描述所有软件组件 Catalog(目录) 实体注册与发现中心 Plugin(插件) 功能扩展与工具集成 概念协作流程 1. 通过 Entity 定义压测服务、环境、脚本等资源 2. 将 Entity 注册到 Catalog,实现统一检索与依赖管理 3. 通过 Plugin(如压测模板插件)提供交互界面与业务逻辑

2.3 核心概念详解

2.3.1 Entity(实体)

Entity 是 Backstage 中最基本的建模单元,使用 YAML 格式的 catalog-info.yaml 文件定义。一个 Entity 包含 kind(类型)、metadata(元数据)、spec(规格)等字段。常见的 Entity 类型包括:

Kind(类型) 用途 压测场景示例
Component 描述一个软件组件(微服务、库、应用) 压测目标服务(如 order-service)
API 描述一个 API 接口 压测接口定义(如 /api/v1/checkout)
Resource 描述基础设施资源 压测集群、压测机、数据库
Template 描述一个可执行的脚手架模板 压测任务模板(核心接入对象)
System 描述多个组件组成的系统 压测全链路系统
压测接入提示: 在压测模板自助接入中,Template 类型的 Entity 是最关键的入口。每个压测模板对应一个 Template Entity,用户通过它填写参数并触发压测任务。

2.3.2 Catalog(目录)

Catalog 是 Backstage 的“数据中枢”,负责收集、存储和检索所有 Entity。它支持从多个来源(如 GitHub、GitLab、本地文件)自动发现和注册 Entity。Catalog 的核心能力包括:

  • 实体注册:通过 catalog-info.yaml 文件将实体注册到平台。
  • 依赖关系:自动解析实体之间的关联(如 Component 依赖 API)。
  • 搜索与过滤:支持按类型、标签、所有者等维度快速查找实体。
  • 生命周期管理:跟踪实体的创建、更新、废弃状态。

2.3.3 Plugin(插件)

Plugin 是 Backstage 的功能扩展单元,每个插件可以包含前端 UI、后端 API、数据库模型等。对于压测场景,常见的插件类型包括:

插件类型 功能 压测场景应用
模板插件(Scaffolder) 提供“创建新资源”的向导式界面 压测任务创建、参数配置
技术文档插件(TechDocs) 展示 Markdown 格式的文档 压测脚本说明、操作手册
自定义插件 根据业务需求开发的专用插件 压测结果展示、历史记录查询

2.4 开发者门户的价值

Backstage 作为开发者门户,在压测场景中带来的核心价值可以归纳为以下四点:

开发者门户价值四象限 开发者门户在压测场景中的四大价值 自助化(Self-Service) 开发人员通过模板自助创建压测任务 无需等待运维或测试团队介入 标准化(Standardization) 所有压测任务遵循统一模板与参数规范 避免脚本格式混乱、参数遗漏 可发现(Discoverability) 通过 Catalog 检索所有压测服务与历史任务 依赖关系一目了然 可集成(Integrability) 通过插件对接压测引擎、监控系统、告警平台 形成压测闭环
常见误区: 不要将 Backstage 视为一个“压测工具”。它不直接发起压测流量,而是提供流程编排和资源管理的能力。压测的实际执行由后端引擎(如 JMeter、Locust、nGrinder)完成,Backstage 负责模板化配置与结果展示。

2.5 压测场景下的概念映射

为了帮助理解,下表将 Backstage 核心概念与压测模板接入的实际场景进行映射:

Backstage 概念 压测场景映射 具体说明
Entity(Template) 压测任务模板 定义压测脚本路径、参数表单、执行步骤
Entity(Component) 压测目标服务 描述被测服务的名称、版本、负责人
Catalog 压测资源目录 统一管理所有压测模板、服务、环境
Plugin(Scaffolder) 压测任务创建向导 提供表单填写、参数校验、任务触发界面
Plugin(TechDocs) 压测操作文档 展示压测脚本编写规范、常见问题