1. 课程导论:服务画像变更检测与SLI重算的背景、目标与整体流程

1.1 背景:为什么需要服务画像变更检测?

在微服务与云原生架构下,服务拓扑、依赖关系、实例规格、流量特征等属性频繁变化。传统SRE实践中,SLI(Service Level Indicator)口径通常由人工定义并静态配置,一旦服务画像发生变更,静态口径将导致以下问题:

  • SLI失真:新增下游依赖未纳入可用性计算,导致SLI虚高。
  • 告警风暴:实例扩缩容后,基于固定阈值的错误率检测产生大量误报。
  • 归因困难:变更前后口径不一致,故障定位时无法对齐基线。
核心矛盾:服务画像的动态性与SLI口径的静态性之间的鸿沟,是导致可观测性数据质量下降的根本原因。

1.2 目标:变更检测触发SLI口径自动重算

本课程旨在构建一套自动化机制,实现以下三个核心目标:

目标维度 具体描述 关键指标
实时感知 持续监听服务注册中心、配置中心、容器编排平台,捕获服务画像变更事件 变更检测延迟 < 30s
智能重算 根据变更类型(拓扑、实例、流量)自动调整SLI口径与聚合规则 口径重算成功率 > 99.5%
闭环验证 重算后自动执行口径一致性校验,确保新旧口径数据可追溯 口径偏差率 < 0.1%

1.3 整体流程:从变更感知到口径生效

下图展示了变更检测触发SLI重算的完整闭环流程,包含5个核心阶段:

变更检测触发SLI重算 — 整体流程 1. 变更感知 监听注册中心/CMDB 2. 画像比对 差异计算与分类 3. 口径重算 SLI规则自动生成 4. 一致性校验 新旧口径对比 5. 生效与回滚 灰度发布 / 自动回滚 流程说明 • 阶段1-4 构成主链路,变更感知后依次执行比对、重算、校验。 • 阶段5 根据校验结果决定生效或回滚,回滚时触发反馈线(红色虚线)重置变更感知状态。 • 整个闭环在 2 分钟内完成,确保服务画像变更后 SLI 口径及时收敛。

1.4 变更类型与SLI口径映射关系

不同变更类型对应不同的SLI重算策略,下表总结了常见的变更场景及其影响:

变更类型 典型场景 SLI口径调整策略 重算优先级
拓扑变更 新增/移除下游依赖 重新计算依赖链可用性,调整错误预算分配 P0
实例变更 Pod扩缩容、实例替换 更新聚合粒度,按新实例数重算平均延迟/错误率 P1
流量变更 路由规则调整、流量比例变化 按新流量权重重新分配SLI采样比例 P1
配置变更 超时时间、重试策略修改 调整SLI阈值与窗口大小,避免因配置变化导致误告 P2
实践建议:在初始阶段,建议优先覆盖拓扑变更和实例变更(P0/P1),这两类变更对SLI准确性的影响最大,且变更频率相对可控。

1.5 课程知识体系结构

本课程共30章,按知识递进关系分为四个模块。下图展示了模块间的依赖关系:

课程模块结构 模块一 基础与概念 第1-6章 模块二 变更检测引擎 第7-14章 模块三 SLI重算引擎 第15-24章 模块四 运营与实战 第25-30章 学习路径建议 • 模块一建立服务画像与SLI的基础认知,是后续模块的前提。 • 模块二和模块三可并行学习,分别聚焦变更检测与口径重算的核心算法。 • 模块四提供生产级部署方案、灰度策略与故障演练,建议按顺序完成。

1.6 前置知识与环境要求

为获得最佳学习效果,建议读者具备以下基础:

  • SRE基础:理解SLI/SLO/SLA概念,熟悉错误预算与燃烧率。
  • 可观测性工具:至少使用过Prometheus、Grafana、ELK或OpenTelemetry中的一种。
  • 编程能力:能阅读Python/Go代码,了解REST API与事件驱动架构。
  • 容器与Kubernetes:了解Pod、Service、Deployment等基本资源对象。
注意:本课程不涉及基础语法教学。如果对上述前置知识不熟悉,建议先完成相关基础课程再进入本课程学习。