知识卡片

可用性的两大决定因素:MTBF与MTTR

普通读书笔记卡

内容

谈可用性不需要绕来绕去,谈SLA即可——一个服务至少要做到99.9%(3个9)才算基本可用、算合格产品,否则很难被真正使用。从3个9迈向4个9,是一次巨大的进步:全年不可用时间从约8小时压缩到52.6分钟。要注意SLA是一个多层、多级、全球化的概念,具体到每个单一节点未必有那么高的要求(比如某个具体机房的集群节点可能只是按3个9设计的);而且SLA除了用来谈年度客户赔款条款外,一般没有太大实际工程指导意义,真正有工程价值的是季度、月度、甚至周度SLA——这个更短周期的观测视角,挑战会大得多。为了系统地分解”提升SLA”这个大问题,需要引入两个工业级概念:MTBF(Mean Time Between Failures,平均无故障时间,通俗讲就是”这东西有多不可靠,多久坏一次”)和MTTR(Mean Time To Recover,平均恢复时间,坏了之后恢复服务要多久)。一个服务的可用度,本质上就取决于MTBF和MTTR这两个因子,从这个公式出发,高可用架构的基本路数就理清楚了:要么提高MTBF(让系统更不容易坏),要么降低MTTR(坏了之后更快恢复),除此之外别无他法——这条极简的归纳把”如何做高可用架构”这个庞大的问题,收敛成了两个可以分别独立优化的具体方向,任何一项具体的高可用技术手段,最终都可以归类到”提高MTBF”或”降低MTTR”这两类里去理解。

参考来源

- 位置:《高可用架构(第1卷)》第1章《高可用架构案例精选》"1.8 来自Google的高可用架构理念与实践"节,"1.8.1 决定可用性的两大因素"(源文件:_epub-src/OEBPS/Text/Chapter1_8_2.xhtml) - 结论依据:原文给出MTBF和MTTR的定义,并说明"一个服务的可用度,取决于MTBF和MTTR这2个因子……那就是:要么提高MTBF,要么降低MTTR。除此之外别无他法",直接支撑本卡片结论。 - 原始内容:MTBF:Mean time between Failures。用通俗的话讲,就是一个东西有多不可靠,多长时间坏一次。MTTR:Mean time to recover。意思就是一旦坏了,恢复服务的时间需要多长……要么提高MTBF,要么降低MTTR。除此之外别无他法。