高可用与高性能,是架构设计中两个非常重要的决策因素。因此,面对不
同业务系统的不同需求,对高可用与高性能也会有不同的决策结论,其实现的复杂度也各不
相同。支付宝业务,对于可用性和性能就会有很高的要求,在可用性方面希望能提供7*24不
间断服务,在高性能方面则希望能实时收付款;而对于一个学生管理系统,在可用性与性能
方面就不一定要有多高的要求,比如晚上可关机,几秒内能查询到信息也可接受。为此,高
可用性与高性能的复杂度讨论需要结合业务需求。
1 WHAT - 什么是可用性?
定义可用性,可以先定义什么是不可用。需要经历若干环节,网站的页面才能呈现在最终的
用户面前;而其中的任何一个环节出现了故障,都可能会导致网站的页面不可访问,也就是
出现了网站不可用的情况。昨夜iOS版本QQ出现大面积闪退就是一个系统不可用的典型案
例。
我们可以利用百分比来对网站可用性进行度量:
网站不可用时间=完成故障修复的时间点 - 故障发现的时间点。
网站年度可用时间=年度总时间 - 网站不可用时间
网站年度可用性=(网站年度可用时间/年度总时间) x 100%
举例:一些知名大型网站的可用性可达到99.99%(俗称4个9),我们可以算一下一年下来留给处理故障的时间有多少?
年度总时间=3652460=525600分钟
网站不可用时间=525600*(1-99.99%)=52.56分钟
也就是,如果网站要达到4个9的可用性,一年下来网站不可用时间最多53分钟(也就是不足
1个小时)。
可见,高可用性就是技术实力的象征,高可用性就是竞争力。