发布!设计与部署稳定的分布式系统(第2版)
上QQ阅读APP看书,第一时间看更新

1.2 应对不断扩大的挑战范围

在客户-服务器系统盛行的那段轻松悠闲的日子里,系统的用户也就几十或几百人,并发用户最多也只有几十个。今天,我们通常会发现,活跃用户的数量大于整个大洲的人口数量。这指的可不只是南极洲和大洋洲!第一个拥有10亿用户的社交网络已经诞生,而且这绝对不会是最后一个。

对系统正常运行时间的要求也提高了。相比曾经主机与其系统管理员间著名的“五个9”X个9是衡量系统可靠性的标准,X代表数字3~5,分别是99.9%、99.99%和99.999%,表示一年中系统可以正常的使用时间与总时间之比。三个9表示该系统在连续运行一年时间里最多可能的业务中断时间是8.76小时;四个9对应52.6分钟;五个9则对应5.26分钟。——译者注运行时间,现在即便是最普通的商务网站,也期望能达到“24乘7乘365”。(这个说法一直困扰着我。作为工程师,我认为应该要么说“24乘365”,要么说“24乘7乘52”。)显然,考虑到软件如今的规模,我们已经取得了长足的进步。但是随着用户触点的增加和系统规模的扩大,系统遭到破坏的方式也会翻新,环境会变得更加恶劣,人们对缺陷的容忍度会变得更低。

这个正在不断扩大的挑战范围,即以低成本快速构建和运维对用户有益的软件,要求我们持续改进架构和设计技术。当把适用于小型WordPress网站的设计,应用于大规模的分布式事务系统时,会出现重大系统故障。后文会谈一些重大系统故障的案例。