为什么100%可用性比99.99%贵100倍

「追求100%可用性,就像追求长生不老——理论上美好,实际上不可能,而且极其昂贵。」


一、可用性的数学

99.9% vs 99.99% vs 99.999%

可用性 年停机时间 成本倍数
99.9% 8.76小时 1x
99.99% 52.6分钟 10x
99.999% 5.26分钟 100x

从99.9%到99.99%,成本增加10倍,停机时间只减少8小时。

从99.99%到99.999%,成本再增加10倍,停机时间只减少47分钟。

边际收益递减,边际成本递增。


二、核心观点:过度工程是陷阱

让我说一个反直觉的事实:

99.99%的可用性可能比100%更可靠。

为什么?

100%可用性意味着:

  • 系统从未经历过故障
  • 团队没有故障处理经验
  • 一次真正的故障可能是灾难性的

99.99%可用性意味着:

  • 系统经历过故障并恢复
  • 团队熟悉故障处理流程
  • 故障成为常态,系统变得韧性十足

完美的系统可能是最脆弱的系统。


三、穿越周期:从「追求完美」到「追求韧性」

阶段1:追求100%可用性

  • 多重冗余
  • 严格变更控制
  • 禁止故障

结果: 系统复杂,团队紧张,故障时手忙脚乱。

阶段2:接受99.9%可用性

  • 适度冗余
  • 快速故障恢复
  • 从故障中学习

结果: 系统简洁,团队有经验,故障可控。

阶段3:追求韧性而非可用性

  • 故障成为常态
  • 快速检测和恢复
  • 用户体验优先

结果: 系统韧性,团队自信,用户满意。


四、反直觉洞察:故障让你更强

直觉: 故障是坏事,要尽量避免。

现实: 没有故障的系统,就像从未生病的人——免疫系统从未被激活。

定期的小故障:

  • 暴露系统的弱点
  • 训练团队的响应能力
  • 验证恢复流程

这是「疫苗效应」。


五、实战:如何确定目标可用性

问题1:用户能容忍多少停机?

  • 支付系统:99.99%(停机=损失)
  • 内部工具:99.9%(停机=不便)
  • 批处理系统:99%(停机=延迟)

问题2:成本承受力是多少?

  • 多一个9,成本增加10倍
  • 这个成本值得吗?

问题3:恢复能力如何?

  • 如果能5分钟恢复,99.9%可能就够了
  • 如果需要1小时恢复,可能需要99.99%

六、写在最后:足够好就是最好

完美是完美的敌人。

最好的可用性目标:

  • 满足用户需求
  • 成本可承受
  • 团队有经验

不是100%,是「足够好」。

追求99.99%并从中学习,比追求100%而从未经历故障更好。


📚 参考链接与延伸阅读

可用性与成本

成本优化

经济学视角


*Published on 2024-03-10 深度阅读时间:约 5 分钟*

SRE思维实验室系列 #09 —— 成本效益与可用性权衡