2. 服务画像基础:服务画像的定义、服务画像的构成要素(元数据、依赖、拓扑)、服务画像与CMDB的关系

2.1 服务画像的定义

服务画像(Service Profiling)是对一个服务在运行态、部署态和设计态的全维度数字化描述。它不仅仅是静态的资产清单,更是一组动态、可查询、可关联的上下文信息集合,用于回答“这个服务是什么、依赖谁、被谁依赖、运行在哪里、关键指标是什么”。

在SRE实践中,服务画像是构建SLO台账、执行质量门禁、进行故障定位和容量评估的基础数据底座。没有准确的服务画像,任何自动化运维和可观测性分析都缺乏可靠的上下文锚点。

核心观点: 服务画像 = 服务元数据 + 依赖关系 + 运行时拓扑 + 质量契约(SLO)。其中前三个要素是本章重点,质量契约将在后续章节展开。

2.2 服务画像的构成要素

服务画像由三个核心要素构成:元数据、依赖关系和运行时拓扑。三者共同形成一个立体的服务视图。

2.2.1 元数据(Metadata)

元数据是服务画像的静态基础,描述服务“是什么”。典型的服务元数据字段如下表所示:

分类 字段 示例值 说明
基础信息 服务名称 order-service 全局唯一标识
基础信息 服务ID svc-0001 CMDB或注册中心ID
基础信息 服务类型 HTTP / gRPC / 消息队列消费者 通信协议类型
基础信息 所属域 交易域 业务域划分
基础信息 负责人 张三 (zhangsan@company.com) Oncall 联系人
部署信息 部署环境 prod / staging / dev 环境标签
部署信息 集群/命名空间 k8s-prod-cluster-1 / default Kubernetes 上下文
部署信息 实例数 10 当前运行实例数
部署信息 语言/框架 Go 1.21 / Gin 技术栈
质量契约 SLO 目标 99.95% 年度可用性目标
质量契约 错误预算 26.3 分钟/季度 允许的最大不可用时间

2.2.2 依赖关系(Dependencies)

依赖关系描述服务“依赖谁”以及“被谁依赖”。这是进行故障影响分析和变更风险评估的关键输入。依赖关系通常分为两类:

  • 上游依赖(Upstream Dependencies): 当前服务所调用的外部服务或基础设施,例如数据库、缓存、消息队列、其他微服务API。
  • 下游依赖(Downstream Dependents): 调用当前服务的其他服务或客户端。

依赖关系需要记录的关键属性包括:

  • 依赖的服务名称或资源标识
  • 调用协议(HTTP、gRPC、JDBC、Redis协议等)
  • 调用方式(同步/异步)
  • 超时配置与重试策略
  • 依赖的SLO(如果已知)

2.2.3 运行时拓扑(Runtime Topology)

运行时拓扑是服务在特定时刻的实例分布和连接关系的快照。它比静态依赖关系更动态,反映了服务的实际部署形态和流量路径。

拓扑信息通常包括:

  • 服务实例列表(Pod IP、端口、健康状态)
  • 服务间调用链路(Trace 拓扑)
  • 负载均衡器与网关的接入点
  • 数据层的主从/分片关系
实践要点: 元数据是静态的“身份证”,依赖关系是逻辑的“社交网络”,运行时拓扑是动态的“实时地图”。三者缺一不可,共同构成完整的服务画像。
服务画像三要素关系图 服务画像 元数据 依赖关系 运行时拓扑 三要素协同 元数据提供静态身份,依赖关系描述逻辑连接,运行时拓扑反映动态实例 三者共同构成服务画像的完整数据底座

2.3 服务画像与CMDB的关系

CMDB(Configuration Management Database,配置管理数据库)是ITIL体系中的核心资产库,而服务画像是面向SRE和可观测性场景的轻量级服务上下文模型。两者既有重叠,又有显著差异。

2.3.1 核心差异对比

维度 CMDB 服务画像
核心目标 IT资产管理与合规审计 运维决策与可观测性上下文
数据粒度 CI(配置项)级别,包含服务器、网络设备、软件等 服务级别,聚焦于服务及其依赖
动态性 相对静态,变更需审批流程 动态更新,可随注册中心、服务网格实时同步
关系模型 CI之间的通用关联(如“运行在”、“连接”) 服务间的调用依赖与拓扑
消费方 IT运维、审计、资产管理 SRE、开发、可观测性平台、门禁系统
数据来源 人工录入 + 自动发现 注册中心、服务网格、APM、Kubernetes API

2.3.2 协同关系

服务画像不应完全替代CMDB,而是作为CMDB在服务维度的“视图”或“投影”。在实际落地中,推荐以下协同模式:

  • CMDB作为权威源: 服务的基础元数据(如服务名称、负责人、所属域)从CMDB同步,保证与资产管理体系一致。
  • 服务画像补充动态数据: 运行时拓扑、实时依赖、实例健康状态等动态信息由可观测性平台实时采集,不写入CMDB,而是存储在服务画像的缓存或图数据库中。
  • 双向索引: CMDB中的CI ID与服务画像中的服务ID建立映射,支持从资产视角跳转到服务视角,反之亦然。
常见误区: 试图将服务画像的所有动态数据(如每秒请求量、P99延迟)全部写入CMDB,会导致CMDB表结构频繁变更、数据量爆炸,失去其作为稳定配置基准的价值。服务画像应保持轻量,动态指标由可观测性系统承载。
服务画像与CMDB协同架构 CMDB 静态资产 · 合规审计 服务画像 动态上下文 · 运维决策 基础元数据同步 人工录入 + 自动发现 注册中心 / 服务网格 APM / K8s API 消费方:SRE · 可观测性平台 · 质量门禁 · 变更风险评估

2.4 小结