1. Backstage Software Catalog 的实体模型中 Component/API/Resource/System/Domain/Group 的关系建模、catalog-info.yaml 的自动化生成与治理
Backstage Software Catalog 的实体模型是怎样的?Component/API/Resource/System/Domain/Group 之间如何关系建模,catalog-info.yaml 如何自动化生成与治理?
- Catalog 核心实体类型的含义与关系
- 实体关系建模(隶属、依赖、拥有)
- catalog-info.yaml 的自动化生成与治理
Backstage 的 Software Catalog 用六类核心实体建模软件生态:Component(可独立部署的软件单元,如服务、库)、API(组件暴露的接口,如 OpenAPI/AsyncAPI)、Resource(基础设施资源,如数据库、集群)、System(由多个 Component 与 API 组成的业务系统)、Domain(多个 System 聚合的业务领域)、Group(团队/组织,拥有实体)。关系建模通过 owner(隶属)、dependsOn(依赖)、system/domain(归属)、partOf(组成)等关系把实体连成一张图。catalog-info.yaml 是实体的声明式描述文件,放在源码仓库中,由 Backstage Catalog 处理器采集;自动化生成可通过 Scaffolder 模板、代码扫描/静态分析工具(从包清单、部署配置自动生成)或 GitOps 流水线生成并提交;治理上通过所有权校验、必填字段校验、去重与孤儿实体巡检(三种校验)保证实体质量,并配合权限控制谁能修改。
Catalog 的价值在于"把软件资产的元数据变成可查询、可治理的单一事实源"。关系建模让门户能展示依赖图、所有权与归属;自动化生成保证元数据与代码同步、减少手工维护;治理保证数据质量与权限可控。这也是"服务发现与所有权呈现"的基础。
# 一个简化的 catalog-info.yaml(Component 声明)
cat catalog-info.yaml
# apiVersion: backstage.io/v1alpha1
# kind: Component
# metadata: {name: order-service, annotations: {github.com/project-slug: org/order}}
# spec: {type: service, owner: group:team-a}