可伸缩架构(第2版):云环境下的高可用与风险管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章
理解、测量和提高可用性

重大赛事

今天是周日—观看重大赛事的日子。你邀请了最好的20位朋友到家里来,打算在新买的300英寸Ultra Max TV上观看这次比赛。所有人都来了,你的房子里放满了零食和啤酒,每个人都在大笑。比赛就要开始了,然后……

灯灭了……

电视不亮了……

对于你和你的朋友来说,比赛也结束了。

失望至极。你拨打当地电力公司的电话。服务人员冷冷地说:“很抱歉,我们只能保证当地电网95%的可用性”。

为什么可用性很重要?因为你的用户期待你能在任何时间都提供服务。任何小于100%可用性的系统都会对你的业务带来灾难性的后果。

如果你的系统有很多不错的功能但是没法使用,那么没人会关心你的系统本身如何。

在设计面向可伸缩的系统架构时,最重要的一个话题就是可用性。虽然有些公司和服务认为一定的宕机时间是合理且允许的,但是对于大多数业务来说,宕机不可能不影响用户的满意度,甚至最终会影响到公司的发展。

以下是所有公司在确定系统可用性对公司和用户的重要程度时,必须问自己的一些基本问题。这些问题本身,以及其显而易见的答案,就是为什么可用性对可伸缩性是如此重要的核心:

为什么要从你这里买?

如果用户在需要使用你的服务的时候却不能用,他们为什么要买你的服务?

你的客户会怎么想?

如果用户在需要使用你的服务的时候却不能用,他们会有什么样的想法和感受?

你的客户高兴吗?

如果你的服务不可用,你如何能让用户感到高兴、给公司赚钱、达成你的商业承诺和目标呢?

只有系统是可用的,才有可能让用户感到高兴并愿意使用你的系统。因此,系统可用性和用户满意度之间存在着直接且重要的联系。

高可用性对于构建高可伸缩系统是一个极其重要的因素,因此我们在本书中会花费很大篇幅来讨论这个话题。当面临大量的业务需求时,你如何构建一个高可用的系统(服务、应用程序或者环境)呢?