1. 课程导论:服务画像与制品供应链的基本概念,误差预算台账的定义与重要性,异常检测模型的总体架构
1.1 服务画像:从黑盒到可量化特征
服务画像是对一个在线服务在运行时表现出的多维特征进行结构化建模的过程。它不再是简单的“服务名+IP列表”,而是将服务的流量特征、资源消耗、依赖拓扑、变更频率、错误预算消耗速率等属性抽象为一组可量化的标签与指标集合。
| 画像维度 | 典型指标 | 数据来源 |
|---|---|---|
| 流量特征 | QPS、P99延迟、请求成功率 | APM / 网关日志 |
| 资源特征 | CPU使用率、内存占用、网络IO | 基础设施监控 |
| 依赖特征 | 下游服务数、调用深度、熔断状态 | 服务拓扑 / 调用链 |
| 变更特征 | 发布频率、配置变更次数、镜像版本 | CI/CD 流水线 |
| 可靠性特征 | SLI 达标率、错误预算剩余、告警密度 | SLO 监控平台 |
关键认知:服务画像不是静态的元数据表,而是随时间演变的动态特征向量。异常检测模型依赖画像的时序变化来区分“正常波动”与“真实异常”。
1.2 制品供应链:从代码提交到生产运行的物料流
制品供应链是指从源代码提交开始,经过构建、测试、打包、存储、部署,最终运行在生产环境中的完整物料流转链路。每个环节都会产生制品元数据(版本号、构建时间、制品哈希、依赖清单、扫描结果等)。
- 构建阶段:代码编译、依赖下载、制品打包(Docker 镜像 / JAR / 二进制)。
- 测试阶段:单元测试、集成测试、安全扫描、镜像签名验证。
- 存储阶段:制品仓库(Harbor / Artifactory)、版本标签、不可变制品策略。
- 部署阶段:灰度发布、金丝雀策略、回滚机制、部署时间戳。
- 运行阶段:运行时版本确认、配置注入、健康检查、日志采集。
供应链误差的来源:制品版本与配置不匹配、依赖库存在已知漏洞、构建环境与运行环境不一致、灰度流量比例错误、回滚时制品版本错乱。这些误差会直接反映在服务画像的异常波动中。
1.3 误差预算台账:定义与重要性
误差预算(Error Budget)是 SRE 实践中用于平衡可靠性与创新速度的核心概念。误差预算台账则是将每个服务、每个制品版本的误差预算消耗情况以结构化台账的形式进行记录、聚合与审计。
| 台账字段 | 说明 | 示例值 |
|---|---|---|
| service_id | 服务唯一标识 | payment-svc |
| artifact_version | 制品版本号 | v2.3.1-rc2 |
| deploy_timestamp | 部署时间戳 | 2025-03-21T14:30:00Z |
| sli_type | SLI 类型 | latency_p99 |
| error_budget_consumed | 该版本消耗的误差预算(秒/请求) | 0.035 |
| budget_remaining | 剩余误差预算百分比 | 87.2% |
| anomaly_flag | 异常标记(模型输出) | 0 / 1 |
为什么台账如此重要?传统 SRE 只关注当前错误预算剩余百分比,但忽略了哪个制品版本消耗了预算、消耗速率是否异常。误差预算台账将“谁消耗了预算”与“消耗是否合理”关联起来,是异常检测的数据基座。
1.4 异常检测模型的总体架构
本课程提出的模型架构以服务画像和制品供应链元数据为双输入,以误差预算台账为检测对象,输出异常评分与根因定位。整体分为四个核心层:
1.5 架构核心流程说明
- 数据采集与对齐:从 APM、CI/CD、制品仓库、部署平台采集服务画像时序与制品元数据,按时间窗口对齐。
- 台账构建:将每个部署事件对应的误差预算消耗写入台账,形成服务-版本-时间三维索引。
- 多模型检测:同时运行时序异常检测(识别画像突变)、关联异常评分(画像与制品版本不匹配)、预算消耗速率检测(识别预算快速消耗)。
- 根因定位:当异常被触发时,模型自动下钻到具体的制品版本、画像维度或供应链环节,输出可解释的异常报告。
- 反馈闭环:运维人员对误报进行标注,模型定期增量学习,持续降低误报率。
课程核心命题:服务画像提供了“服务当前状态”的快照,制品供应链提供了“服务如何到达当前状态”的变更历史。误差预算台账将两者关联,异常检测模型则从关联中发现制品变更导致预算异常消耗的模式。这是传统 SRE 监控无法覆盖的盲区。