昨日麦当劳小程序出现宕机的事情上了热搜,服务器宕机在服务商眼中看来是一件习以为常的事。那么全球哪家服务商宕机的时间最少,AWS最有发言权。
市场上有一些公开的监测数据,例如从downdetector.com和cloudharmony.com获得的数据,还有一些服务商骄傲地称他们的宕机时间比他们的同行要短,比如亚马逊云服务(AWS)称2018年第二大云计算公司的宕机时间是AWS的7倍。
AWS占据着全球云市场近一半的份额,理论上来说,越大越容易出错,AWS怎么做来减少宕机时间?
AWS数据中心的电力冗余设计
从电力供应开始说起,柴油发电机、配电室(E-house)、UPS备用电源等方面来说,令人印象深刻的是,为了减少可能出现的故障,AWS在采用现有商业方案的基础上,放弃了很多原来的东西,自行设计了控制电路代码。可以看到AWS在基础设施控制方面的能力。
根据AWS的观点,这些控制软件可能会有bug,如果bug发生了,服务商不能在短时间内完成修复,而如果软件本身是自己写的,则可以迅速修复。
为保证电力供应,AWS将在外部电网供电和内部机组的基础上,增加一组发电机,并采用冗余供电方式,冗余设计贯穿于整个结构设计的各个方面,但这将大大提高复杂性,而且越复杂越危险。
AWS在Switch Gear(配电控制系统)和UPS系统的优化改造中,AWS通过自己写软件控制系统,删除了一些无用的功能,增加了部分对AWS有用的功能,降低了系统的复杂性,提高了系统的可靠性。对UPS系统进行改造时,采用标准的小容量电池,减少了电池爆炸的危险,减小了爆炸半径。
AWS数据中心层设计冗余
大约在2000年,当时还没有AWS,Amazon在美国西雅图有一个数据中心,随着业务的扩张,亚马逊开始意识到海啸和地震的潜在危险,无法将所有信息都放在这里,于是想在美国东海岸建立一个数据中心,因为那里没有地震海啸的威胁。
由于两个数据中心距离过近,可能会遭受相同的自然灾害,如果距离过远,延迟会导致数据同步问题同样令人无法接受,而这是由美国东西海岸的距离引起的。因此,两个数据中心之间需要保持一定的安全距离,并保证延迟在一毫秒之内。
同样,AWS强调多AZ(Avaibable Zone)不同于多机房,AWS每一个Region至少有三个AZ,AWS认为多AZ之间应该保持一定的距离,以减少外部环境同时对多个AZ造成的影响,从而提高服务的可用性。
从Region的观点来看,AWS为了减少Region之间可能产生的干扰,设计原则上单独使用单个Region,一个Region出现的问题不会被传递给其他Region,在Region的级别提供冗余。
AWS供应链保障
2020年时,黑天鹅满天飞,突如其来的疫情,在线业务量急剧增长,迫使所有的云厂商都在加班,忙于扩展资源,AWS也不例外,据推测,AWS的规模远远超过了大多数云厂商。
AWS为保证扩张的顺利进行,在供应链采购管理方面采取了多元化战略,服务商数量多,覆盖范围广,在数量上有了很大的提高。目前,AWS的供应链系统在7个国家覆盖86个服务商,以保证供应链的稳定性。
到了2020年,全球爆发疫情,多元化管理的确是非常有价值的,疫情的不确定性对供应链提出了挑战,很多国家的生产环节和清关效率都出了问题。
从可用性角度看,公有云作为一种公开可见的服务,更容易引起公众的关注,从而使人们认为它更容易失败。
除了客观感受之外,因为公有云作为一种服务,而非一个on-premise产品的盒子,需要考虑更多的东西,比如电力、网络、运营能力等等,确实很考验云商的综合实力,需要无数的技术创新来创造更高的可用性和业务连续性。
随着一步步迭代和发展,技术只会更成熟,运营经验会更丰富。