不喜欢广告? 无广告 今天

SLA 数学 — 99.91% 可用性实际上为你带来的停机时长成本

更新于

99.9%听起来很惊人,直到你意识到它每年有8.77小时的停机时间。每个开发者在签署SLA前都应该收藏这个可用性计算表。

SLA数学——99.9%可用性实际上造成的停机时长1
广告 移除?

想象一下:你正在和客户开会,客户要求“99.99%的可用性”,你点点头,双方就这么过去了。六个月后,你盯着SLA信用条款,困惑自己是怎么走到这一步的。你随意同意的那个承诺,每年允许52分钟的停机时间——而其中大部分都会在一次糟糕的部署中消失无踪。

这是每个开发者在签署SLA或在提案中承诺可用性数字之前都应该掌握的数学知识。

公式

可用性百分比通过一个简单的公式转换为停机时间:

停机时间 = (1 - 可用性) × 周期

对于99.9%的可用性:1 - 0.999 = 0.001。乘以一年中的分钟数(525,960),得到525.96分钟——即每年允许8.77小时的停机时间。这并不是灾难性的故障。这是一次普通的周二下午部署,持续数小时,一次数据库故障切换耗时超出预期,以及一次深夜依赖服务更新导致认证服务中断。八小时过得很快。

参考表

收藏这个表格。其中每个数字都是用同样的方式计算的——(1 - 可用性) × 周期长度(分钟),然后转换为最易读的单位。

可用性每日停机时间每周停机时间每月停机时间每年停机时间
99%14.4分钟1.68小时7.3小时87.6小时
99.5%7.2分钟50.4分钟3.65小时43.8小时
99.9%1.44分钟10.08分钟43.83分钟8.77小时
99.95%43.2秒5.04分钟21.92分钟4.38小时
99.99%8.64秒1.01分钟4.38分钟52.6分钟
99.999%(五九)0.864秒6.05秒26.3秒5.26分钟

重新阅读99.999%这一行。每年允许5分26秒的停机时间。总计,包括计划维护、健康检查失败,以及你的负载均衡器发现死节点需要的30秒。你可以计算一下这对大多数团队来说是否现实。

五九实际上需要的内容

五九(99.999%)不仅仅是“良好的基础设施”。它是一种不同的工程方法。要达到这个水平,你需要:

  • 每一层都具备完整的冗余 ——在堆栈的任何地方都不能存在单点故障,包括DNS、CDN、数据库和应用层
  • 具备亚秒级检测的自动故障切换 ——人类无法响应得足够快;你的监控和故障切换必须在无需人工干预的情况下运行
  • 零停机部署 ——采用蓝绿或金丝雀部署,并具备自动回滚。任何需要重启的部署都会消耗你的5分钟预算
  • 多区域主动-主动配置 ——单个区域宕机不会导致整个系统中断
  • 计划外的维护工作在SLA窗口之外 ——大多数99.9%的SLA明确排除计划内维护,但99.999%的SLA通常没有空间容纳这类维护

真正达到99.999%的公司——如AWS S3、Google Cloud Storage——拥有专门的可靠性工程团队,多年混沌工程数据,以及基础设施投入,足以让大多数SaaS创始人望而却步。这是可以实现的,但绝非偶然,也绝非廉价。

你可以使用 可用性/服务等级协议计算器 来为任何可用性百分比和你正在处理的时间窗口运行这些转换。

SLA信用问题

这里正是大多数人感到意外的地方:云服务商提供的SLA信用,并不会补偿你实际的损失。它们只补偿你服务费用的一部分。

AWS、GCP和Azure通常在SLA违约时提供10至30%的月服务费用作为信用。如果你每月支付$500用于EC2,而发生2小时的中断违反了SLA,你可能会获得$50至150的信用。然而,你可能已经损失了数千收入,耗费了大量工程师时间应对事故,并损害了客户信任。

当你为自己的客户起草SLA时,请理解这是一套标准模式——信用是与服务费用挂钩的善意行为,而非全额赔偿。务必仔细阅读赔偿条款。许多企业客户会试图协商实际损失的表述;这是一场需要律师参与的另类对话,而非SRE团队的职责。

月度与年度窗口的差异

SLA是基于特定时间段计算的,而这个时间段比大多数人意识到的更重要。一个年度99.9%的SLA,意味着你每年总共8.77小时的停机时间,分布在12个月中。而一个月度99.9%的SLA,每月仅允许43.83分钟的停机时间——但这个时间每月都会重置。

客户几乎总是希望采用月度测量——听起来更严格,而且在你有一个糟糕月份时,他们可以借此获得优势。但他们往往没有意识到的是,月度测量实际上可能提供更少的总缓冲时间:43.83分钟 × 12个月 = 每年525.96分钟,这与年度计算结果完全相同。区别在于,月度SLA下,只要有一个糟糕的月份,即使全年其他时间表现完美,也可能触发违约。

在谈判时,尽可能争取采用年度测量窗口。当客户坚持要求月度测量时,确保你的基础设施能够每月都达到99.9%,而不仅仅是全年平均表现。

你应该实际承诺的内容

以下建议是真正实用的:

个人项目和早期产品

99.%是诚实且合适的。每月9小时的停机时间对没有专职运维的小团队来说是现实的。不要承诺你无法持续交付的内容——错过SLA的声誉成本,远高于提前设定较低期望。

基于标准云基础设施的B2B SaaS产品

99.9%是合适的指标。通过完善的监控、自动扩展、托管数据库以及无需停机即可部署的CI/CD流水线,这在AWS、GCP或Azure上是真正可实现的,无需付出英雄般的努力。每月43分钟的预算虽然紧张,但只要部署自动化到位,是完全可以实现的。

99.99%及以上

这需要真正的投入:跨多个可用区的负载均衡器、多区域故障切换、数据库自动复制与主备切换,以及一位将可靠性作为首要职责的负责人。如果客户要求99.99%,而你目前尚未具备相应基础设施,诚实的回答是协商降至99.9%,并将其作为未来迈向99.99%的路线图,同时在定价中反映相应的基础设施成本增加。

99.999%是亚马逊和谷歌的领域。除非你运营的是金融基础设施、医疗系统或电信级服务,并配备专职SRE团队,否则这并不是一个现实的承诺。

为你的具体情况运行计算

这里的数学公式适用于任何时间窗口和任何可用性目标。如果你处理的是非标准SLA周期——例如90天滚动窗口、财政季度或自定义测量周期——公式依然相同:将停机百分比乘以该窗口内的分钟数。

IO Tools上的可用性/SLA计算器 可处理所有这些内容——输入任意可用性百分比和时间周期,即可获得精确的停机时间允许值,这在起草SLA条款或回应客户关于可用性的要求时,提供一个现实的反提案。

总结:对于大多数没有专门可靠性投入的团队来说,99.9%是实际的上限。高于此水平的成本是真实存在的,并需要真正的流程变革。在合同签署前,必须清楚自己承诺的内容。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?