"高可用"的谎言:你的 99.99% 是怎么算出来的
💡
原文中文,约8000字,阅读约需19分钟。
📝
内容提要
文章探讨了云服务的可用性(SLA)及其计算方式,指出实际故障往往是关联性的,导致冗余效果被高估。阿里云的案例显示,99.975%的可用性承诺在实际中难以兑现。强调快速恢复(MTTR)比追求更多的“9”更为重要,并提倡通过演练提高系统的真实可用性。
🎯
关键要点
- 99.99%的可用性计算假设故障是独立的,但实际中重大故障往往是关联性的。
- 阿里云的案例显示,99.975%的可用性承诺在实际中难以兑现,12小时的故障超出承诺的109倍。
- SLA合同中的可用性定义与用户体验存在巨大差距,很多情况下降级不算停机。
- 冗余的有效性受到关联故障的严重影响,多个组件共享基础设施时,故障可能同时发生。
- 级联故障会导致系统崩溃,负载转移使得其他组件过载,造成更大范围的停机。
- 快速恢复(MTTR)比追求更多的“9”更为重要,优化MTTR能有效减少故障影响。
- 高可用性应通过演练来实现,而不是仅仅依赖理论计算,演练能提高系统的真实可用性。
❓
延伸问答
云服务的可用性是如何计算的?
云服务的可用性通常通过公式 A = MTTF / (MTTF + MTTR) 计算,假设故障是独立的。
阿里云的可用性承诺在实际中表现如何?
阿里云承诺的99.975%可用性在实际中难以兑现,曾发生超过12小时的故障,超出承诺的109倍。
什么是级联故障,它对系统可用性有什么影响?
级联故障是指一个组件故障导致负载转移到其他组件,可能引发连锁崩溃,显著降低系统可用性。
为什么快速恢复比追求更高的可用性更重要?
快速恢复(MTTR)能有效减少故障影响,而追求更多的“9”并不能保证实际可用性。
SLA合同中的可用性定义与用户体验有什么差距?
SLA中的可用性定义可能不包括降级和计划维护等情况,导致用户体验与合同承诺存在巨大差距。
如何通过演练提高系统的真实可用性?
通过定期进行全链路故障演练,可以发现潜在问题并提高系统的真实可用性,而不仅仅依赖理论计算。
➡️