3、服务目录的定义与作用
3.1 什么是服务目录
服务目录(Service Catalog)是平台工程中一份权威、结构化、可查询的软件服务清单。它记录了组织内每个服务的关键元数据,包括服务名称、所属团队、技术栈、API 端点、依赖关系、部署环境、SLO 目标以及联系人信息。
在 DORA 度量体系落地过程中,服务目录是连接原始数据采集与指标聚合分析的核心纽带。没有服务目录,DORA 指标(如部署频率、变更前置时间、变更失败率、恢复服务时间)将无法按服务维度进行准确归因和趋势分析。
核心定义:服务目录 = 服务元数据仓库 + 运行时状态视图 + 团队所有权映射。它不是静态的 Excel 表格,而是与 CI/CD 流水线、监控系统、事件管理平台实时同步的活数据源。
3.2 服务目录在平台工程中的定位
平台工程的核心目标是构建内部开发者平台(IDP),而服务目录是 IDP 的数据底座。它在平台工程中承担以下四个关键角色:
| 角色 | 说明 | 典型场景 |
|---|---|---|
| 发现层 | 提供组织级服务全景图,开发者可快速查找服务、API 文档和负责人 | 新成员入职、跨团队协作、故障升级 |
| 治理层 | 定义服务生命周期标准(创建、注册、废弃),强制执行命名规范和技术栈合规 | 服务注册审批、技术债追踪、版本管理 |
| 度量层 | 作为 DORA 指标计算的维度标签,支持按团队、服务、环境进行指标下钻 | 部署频率报表、变更失败率归因、SLO 达成率 |
| 自动化层 | 触发 CI/CD 流水线、自动生成监控仪表盘、动态更新 CMDB 和配置管理 | 新服务自动接入监控、依赖变更通知 |
下图展示了服务目录在平台工程架构中的核心位置:
3.3 服务目录与 CMDB 的区别
很多团队容易将服务目录与传统的配置管理数据库(CMDB)混为一谈。虽然两者都管理资产信息,但在设计理念、数据模型和使用场景上存在本质差异。
| 对比维度 | 服务目录(Service Catalog) | CMDB(配置管理数据库) |
|---|---|---|
| 核心对象 | 软件服务(微服务、API、应用) | 配置项(CI):服务器、网络设备、中间件、应用实例 |
| 数据粒度 | 服务级元数据(团队、SLO、依赖、API) | 实例级属性(IP、CPU、内存、版本、补丁) |
| 更新频率 | 持续同步(分钟级/事件驱动) | 定期扫描(小时级/天级) |
| 消费方 | 开发者、SRE、平台工程师、管理者 | 运维工程师、IT 审计、资产管理 |
| 核心用途 | 服务发现、DORA 度量、自动化编排、团队协作 | 资产盘点、合规审计、故障影响分析、变更管理 |
| 数据模型 | 扁平化 + 标签化(灵活扩展) | 层次化 + 关系型(严格建模) |
| 生命周期 | 服务创建 → 运行 → 废弃(软件视角) | CI 采购 → 部署 → 退役(硬件视角) |
实践建议:服务目录和 CMDB 不是二选一的关系。在大型组织中,服务目录通常作为 CMDB 的上层抽象,服务目录中的每个服务可以关联到 CMDB 中的多个配置项(如服务器、数据库实例)。两者通过服务 ID 或标签进行关联,形成完整的资产视图。
下图直观对比了服务目录与 CMDB 在数据模型和消费场景上的差异:
3.4 服务目录的核心元数据模型
一个工程化落地的服务目录,至少需要包含以下元数据字段。这些字段直接支撑 DORA 指标的准确计算和团队协作效率的提升。
| 分类 | 字段 | 说明 | DORA 关联 |
|---|---|---|---|
| 基础信息 | 服务 ID | 全局唯一标识符(如 UUID 或 团队名-服务名) | 指标聚合键 |
| 服务名称 | 人类可读的服务名称 | 报表展示 | |
| 服务类型 | 微服务、批处理、前端、数据管道等 | 指标分类过滤 | |
| 所有权 | 所属团队 | 负责该服务的团队名称 | 团队级 DORA 聚合 |
| 联系人 | On-call 人员或 Slack/钉钉群组 | 故障响应 | |
| 技术栈 | 编程语言 | Go、Java、Python、Node.js 等 | 变更前置时间分析 |
| 部署方式 | Kubernetes、ECS、VM、Serverless | 部署频率归因 | |
| 运行时 | 环境列表 | dev、staging、prod 等 | 环境级指标下钻 |
| SLO 目标 | 可用性、延迟、错误率目标值 | 变更失败率评估 | |
| 依赖关系 | 上游/下游依赖 | 所依赖的其他服务或基础设施 | 故障影响范围分析 |
常见陷阱:服务目录的元数据字段不宜过多。建议从 10-15 个核心字段起步,后续根据团队需求逐步扩展。字段过多会导致维护成本激增,最终沦为无人更新的死数据。优先保证服务 ID、所属团队、部署方式和环境列表这四个字段的准确性和实时性,它们是 DORA 指标计算的基础。