概述
每次告警、依赖升级和下线都需要具体的人或团队行动。归属不明确时,响应者只能猜测,变更也会停滞。服务目录描述文件把归属变成显式且机器可读的信息,让值班工具、文档和依赖图都指向同一个团队。
步骤
- 在代码仓库中添加服务描述文件:
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: payments-api
annotations:
pagerduty.com/service-id: PABC123
spec:
type: service
lifecycle: production
owner: group:default/payments
system: checkout
- 通过目录的 locations API 或 GitHub 发现机制注册该文件。
- 在 CI 中用
yq -e校验spec.owner、spec.lifecycle和metadata.name存在,缺失即失败。 - 校验 owner 对应的 group 在目录中存在,返回 404 时要求修正。
验证
预期服务在目录 UI 中出现,负责人组和值班服务可点击跳转;删除 spec.owner 的 PR 会导致 CI 失败。用 API 查询 group 时应返回 200,组件列表中不存在无归属的生产服务。
注意事项
- 组织调整后归属容易过期,应在团队解散或重组时同步更新。
- 目录条目不能保证值班轮换覆盖,需要单独验证值班集成。
- 同名组件会造成冲突,通用名称应加领域或团队前缀。
- 描述文件放在代码仓库中,随服务变更一起评审。