承诺 99.9% 赔了 0.7 元:SLA 条款拆解与内部设计的 6 个工程决策

概述 你公司用了某云厂商的服务,SLA 白纸黑字写着 99.95% 月度可用性。某天凌晨服务挂了 30 分钟,你跑去找云厂商索赔,拿回来的赔偿大概是这么算的:故障时间占月度总分钟数的比例,乘以你当月的服务费。假设你月付 1000 块,30 分钟除以 43200 分钟再乘 1000,赔你 0.7 元。 没看错,七毛钱。你线上炸了半小时,客服电话被打爆,用户退款申请堆了一屏,云厂商赔你七毛。 这不是段子,这是 2025 年某 CSDN 技术博客拆解云厂商 SLA 时用的真实计算逻辑。当然,实际云厂商的赔偿用的是阶梯制(后面会讲),但核心问题不变:SLA 的数字看着唬人,赔偿条款却藏着大量排除项和窄化定义,到了真出事的时候,赔的那点钱远远覆盖不了你的业务损失。 这篇文章不聊怎么"读懂"SLA——那种文章网上一搜一大把。我要聊的是:作为 SRE,你怎么设计自己服务的 SLA,怎么避免云厂商 SLA 的坑,怎么把一个合同条款变成可执行的工程约束。 SLA、SLO、SLI:别再混为一谈 很多团队把这三个词当同义词用。开会时"我们的 SLA 是 99.9%",实际上说的是 SLO。这三个东西的区别不是文字游戏,搞混了会出真问题。 先上一张对比表,后面逐个展开: 维度 SLI(指标) SLO(目标) SLA(协议) 是什么 对服务质量的量化测量值 基于 SLI 设定的内部目标值 对外承诺的合同条款 面向谁 工程团队 工程团队 + 产品 客户 / 业务方 违约后果 无 冻结发布、投入稳定性修复 赔偿、合同违约 严格程度 客观事实,无严格/宽松之分 必须严于 SLA 比 SLO 宽松,留缓冲 典型例子 P99 延迟 = 120ms P99 延迟 < 200ms,成功率 > 99....

September 15, 2026 · 9 分钟 · 1914 字 · 徐保金

SRE 可靠性工程:从理论到落地

可靠性工程:不只是"不出故障" 可靠性工程的目标不是追求零故障——那既不现实也不经济。真正的目标是:在故障不可避免的前提下,让系统具备快速发现、自动恢复、持续学习的能力。 Google SRE 提出的核心公式: MTTR << MTBF / (MTBF + MTTR) × (1 - SLO) 这个公式揭示了一个关键事实:当故障间隔(MTBF)远大于修复时间(MTTR)时,系统的可用性自然趋近于 SLO 目标。因此,可靠性工程的发力方向是双重的——延长无故障时间(提升 MTBF)和缩短故障恢复时间(降低 MTTR)。 可靠性层级模型 参考 CMMI 能力成熟度模型的思想,可靠性工程同样存在层级递进关系。从低到高分为五个层级: 层级 特征 典型表现 L1 被动响应 故障发生后人工处理 告警轰炸 → 人工排查 → 手动恢复 L2 监控覆盖 关键指标可观测 仪表盘完备,告警有阈值,但恢复仍靠人 L3 自动化恢复 常见故障自动处理 健康检查自动重启、HPA 自动扩容 L4 主动预防 提前发现风险 压测、容量规划、混沌工程主动注入故障 L5 自愈系统 闭环自适应 故障自动感知 → 诊断 → 恢复 → 学习 大部分团队的真实水平在 L2 到 L3 之间。从 L3 到 L4 的跨越是最关键的——它意味着从"等故障来"转变为"主动找故障"。L5 自愈是理想态,也是持续演进的方向。 层级跃迁的关键 L1 → L2:建设可观测性体系(指标、日志、链路追踪)。 L2 → L3:引入自动化恢复机制(Kubernetes 健康检查、HPA、自动故障转移)。 L3 → L4:引入混沌工程,主动验证系统的弹性。 L4 → L5:建设自愈闭环,将人工经验沉淀为自动化策略。 每一层级的跨越都需要对应的技术投入和组织能力建设,不能跳级。...

January 9, 2025 · 5 分钟 · 1060 字 · 徐保金