跳到正文

第8章学习笔记:可靠性与可观测性

课程笔记

从用户目标定义SLO,用日志、指标、追踪和演练控制故障。

关联:章节 第8章 可靠性与可观测性

第8章笔记:可靠性与可观测性

本章目标

从用户目标定义SLO,用日志、指标、追踪和演练控制故障。 本章不是术语表,而是一条从问题到证据的工作链。先确认用户或团队要保护的结果,再把决定写进可版本化制品,最后由测试、指标、反例或演练证明它在边界与故障下仍成立。

七节联系

  • SLI、SLO与错误预算:SLI是用户可感知测量,SLO是目标,错误预算允许在可靠性与变化间做选择;关键规则是分母、窗口、排除规则和数据来源必须明确;SLO不等于永不失败。
  • 日志、指标与追踪的分工:日志记录离散事件,指标聚合趋势,追踪连接一次请求的跨服务路径;关键规则是观测字段要稳定、可关联且保护隐私;禁止只打印自由文本和秘密。
  • 告警设计与值班可行动性:告警只有在需要及时人工行动且有明确处置时才有价值;关键规则是每条告警有所有者、严重度、动作和关闭条件;无行动告警应删除或降级。
  • 超时、重试、退避与熔断:分布式调用必须限制等待;重试会放大负载,只有幂等且瞬态失败才安全;关键规则是重试预算属于端到端请求;各层独立重试会形成乘法风暴。
  • 容量、排队与尾延迟:利用率接近饱和时排队非线性增长,平均延迟会掩盖少数严重体验;关键规则是容量计划使用峰值、目标利用率、故障冗余和增长缓冲,不以理论上限直接上线。
  • 故障注入与恢复演练:可靠性来自被验证的降级与恢复,不来自文档中的愿望;关键规则是演练先限制爆炸半径,声明停止条件,并把发现转成有所有者的改进项。
  • 事故响应与无责复盘:事故中先稳定服务和沟通,事后重建时间线与系统条件,不找替罪羊;关键规则是行动项应具体、可验证、有期限,并优先改变系统而非要求‘更小心’。

学习时给七节画依赖箭头:前一节产出的对象、规则或制品如何成为后一节输入?若某节可以被随意挪走而完全不影响上下文,说明你仍在孤立背诵,需要用一个贯穿案例重新连接。

章内练习

  1. 用“结算成功率月SLO为99.95%,超预算后暂停高风险发布并优先修复”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  2. 用“先由错误率告警发现异常,再按trace_id定位慢调用,最后读结构化错误事件”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  3. 用“按燃烧率告警SLO,附影响、仪表盘、最近变更和runbook,而非CPU瞬时抖动就叫醒人”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  4. 用“客户端设置总截止时间,指数退避加抖动,熔断后快速失败并保护下游”重做正常、边界和故障三类验收,产出可由同伴复核的制品。

每次练习都保留背景、输入、决定、输出、验证、失败处置和负责人。只写结论不算完成;只贴截图也不算证据。完成后交换给同伴,只允许对方根据制品复现你的判断,无法复现处就是下一轮修改入口。

错误复盘

把错题标成目标误判、边界遗漏、责任空缺、契约不清、验证不足或恢复缺失。不要写“粗心”。一周后更换领域重做一道情境题;能在新名词下保持同一证据链,才说明方法已经迁移。阶段卷使用独立题池,不能靠记住随课题答案过关。