从千年木塔到云服务,看亚马逊云科技如何解决韧性难题

三易生活 2024-09-03 20:42:45

众所周知,最近这段时间随着《黑神话·悟空》的走红,山西的文旅项目在互联网上也狠狠地刷了一波存在感。而在山西的这一大批知名景点中,佛宫寺释迦塔、或者也叫应县木塔,则可以说是最独特的存在。

为什么说它独特?因为根据学术研究显示,应县木塔始建于1056年,至今已有近千年历史。然而作为一座高达67.31米、全身木质结构的古塔,应县木塔从建成至今曾经历过多次地震,甚至在战争年代遭遇过炮击,却从未发生倾倒。

那么应县木塔为什么能够做到如此“坚不可摧”呢?主要原因有三点,一是木塔的选址科学,地质结构稳定且环境干燥;二是其采用了几十种不同的斗拱结构进行压力分散,融合了过去大量的建筑抗震经验;三是木塔在历史上虽然多次遭遇地震,但也在不同的年代经历了多次修葺,相当于不断有新的建筑技术对其进行完善。

看到这里,可能有的朋友会感到奇怪,为什么我们今天会谈到建筑、谈到古代木塔的坚固性?这是因为就在近日,亚马逊云科技召开了一场名为“云端韧性之道”的沟通活动,其中应县木塔不仅成为了这场活动里一个令人印象深刻的比喻,它也确实与亚马逊云科技如今的“韧性之道”不谋而合。

稳固的基础设施建设,是长期安全运行的底气

应县木塔为何能够屹立近千年不倒?合理的选址显然是很重要的先决条件。在亚马逊云科技看来,这与现代云计算的基础设施构建原则,其实有着相当的异曲同工之处。

大家都知道,亚马逊云科技在全球拥有数量众多的基础设施。而在建设这些基础设施时,其所处地理区域的选址,其实就已经考虑到了诸如供电是否充足、地震风险级别如何等背景因素。

在此基础上,亚马逊云科技更将旗下的基础设施地理位置进行了分散。首先,亚马逊云科技全球的基础设施被划分为34个“地理区域”,每个区域之间都相对独立,确保即便单个区域发生故障时,其余区域仍可正常运营。

其次在每个区域内,亚马逊云科技还会建设三个或者更多的“可用区”,每个可用区都包括一个或多个超大型数据中心。比如在中国大陆,就有亚马逊云科技(北京)区域和(宁夏)区域,而在宁夏区域又还有三个可用区。

值得一提的是,所有的这些可用区都拥有独立的电力、制冷和物理安全设施。而且同一区域内的各个可用区之间,通常会有着精心设计的物理距离,以确保它们既可以避免同时受到地震、洪水等大规模自然灾害的影响,同时又能够在不同可用区之间通过多个冗余网络进行超大带宽的毫秒级数据同步。

最后,在全球不同的地理区域之间,亚马逊云科技还建立了带宽高达400GbE的骨干网络,这些网络能够在不到3秒的时间里传输100GB的文件,或者是在1秒之内,完成全球相隔万里的两个可用区之间的操作指令同步。也正是有着这种既在物理上相互独立、又能低延迟同步的基础设施设计,亚马逊云科技既能保证各可用区的独立安全稳定,又能允许客户将单一业务设定为在多个可用区内同时运行。

创新的分离式服务架构,让事故风险最小化

除了基础设施的审慎选址和分散式的布局,云服务的韧性也与其使用的技术架构有着重要的关联。这一点就如同应县木塔所使用的各种不同斗拱结构一样,越是在技术层面事先做好对风险的分散,一旦面临问题,所遭受的损失可能就会越小。

那么,亚马逊云科技是如何在技术架构上实现风险分散的呢?首先,他们提出了“控制平面”和“数据平面”分离的原则。从软件架构层面来说,云服务的控制面往往包含更多组件,因此其在概率上发生故障的可能性更大。但是对于绝大多数的云服务来说,控制面并非是日常运行所必须。

所以将控制面与数据面分离带来的一个最典型好处,就是假如控制面所在的机房、或者控制面软件本身出现故障,那么由于数据面依然完好、且能正常运作,此时云服务顶多只是表现为无法新建任务或无法进入后台控制UI,但正在运行的云端程序本身则完全可以不受影响。对于许多企业用户来说,这将会使得故障变得对用户而言几乎“不可察觉”,甚至不会对业务本身造成显著的负面影响。

其次,亚马逊云科技结合自身的历史经验,将旗下服务划分为了三个级别,即全局服务、区域级服务和可用区级服务。对于全局服务来说,它的数据面被分散到每个区域中独立存在,当控制面故障时,每个区域的数据面可以独立正常运行。对于区域级服务来说,它的数据面和控制面分布在多个可用区之间,当一个可用区故障时,就可以自动从其他可用区进行恢复。而对于可用区级别服务来说,相关资源可以在每个可用区中独立运行,单个可用区的故障不会影响其他可用区相关服务的持续。

除此之外,亚马逊云科技还提出了“爆炸半径”的概念,它指的是故障发生时、具体的软硬件影响范围。为了解决这一问题,亚马逊云科技采用了“单元架构”设计,将单个服务进一步切分为多个部署堆栈,每一个部署堆栈服务于一个或多个客户。这样一来,单一堆栈故障影响的范围就会更小,不再累及整个可用区或整个服务。

不断积累的纠错经验,在运营过程中强化韧性

除了完善的减灾基础设施建设、风险最小化的架构设计之外,对于应县木塔来说,持续地由不断积累、传承经验的匠师所进行的修缮维护,显然也是其屹立不倒的重要因素。而这一点,同样也体现在亚马逊云科技的日常运营中。

据了解,在亚马逊云科技内部,他们有着独特的“服务责任模型”。也就是说,一旦某个服务被编写出来,那么它的研发人员将会始终负责该服务的后续故障响应。一旦故障出现,运维人员就能够很快定位到研发团队,并共同去解决问题,从而避免了传统云计算企业里研发和运维权责不清、相互推诿的问题。

与此同时,在亚马逊云科技内部,任何服务上线或更新之前,都要经历名为“运营就绪审查”的流程。发布团队必须能够证明他们已经对相关服务的故障恢复做好了准备,审查会议则会对以往的类似故障进行总结,并通过标准的运营手册来确保服务的合规性。而在上线流程中,新的服务也会从最小的单元开始部署,通过广泛的预生产测试、交错部署来充分验证可靠性,最后再进行大量推广。

最后,亚马逊云科技还建立了成熟的纠错流程。可以确保每一次的纠错报告都形成一个有益的经验,使得相关技术负责人、各级的经理都能从中学习到此次业务相关的重要教训,从而为下一次的新业务做更好的准备。

并非独善其身,亚马逊云科技与客户共同成长

不难发现,作为当今整个云计算行业在技术、市占率各方面,长期、且绝对的“领头羊”,亚马逊云科技有着充足的机制和经验来确保自身服务的韧性。

但是他们的目标显然并不仅限于“独善其身”。实际上,针对客户在各种业务实践中的韧性需求,亚马逊云科技迄今为止也提供了大量的相关工具,以帮助客户增强服务韧性,同时平衡自身的需求和成本。

比如Amazon Resilience Hub可以帮助客户明确服务韧性的目标,Amazon Well-Architected Framework和Amazon Trusted Advisor能够提出韧性改进措施,Amazon DevOps Guru使用机器学习技术检测运维异常、能有效地在某些特定故障产生之前给出及时的警告,而Amazon Application Recovery Controller则可以实现部分应用程序故障后的自动化恢复。

实际上,根据亚马逊云科技方面公布的相关数据显示,目前在其240多类服务里面,有90%以上的服务和功能都来自于用户需求的反推。而强大的减灾基础设施设计、先进的分布式服务架构,以及种类繁多、作用贯穿服务全生命周期的韧性监测和韧性改善功能,自然都是他们过去这十几年来在与全球海量客户的互动过程中,一步步积累的成果。

正如亚马逊首席信息官Werner Vogels说的那样,“Everything fails all the time”(故障总在情理之中、意料之外)。无论是对于云计算企业、还是对于志在“上云”的客户而言,故障的概率永远都不会是0%。但在这个基础上,良好的基础设施、成熟的服务架构、有经验的运营团队,以及一切为客户着想的企业文化和业务机制,总能帮助亚马逊云科技成为全球云计算市场中,韧性最强、口碑最佳的那一个。

无论是大名鼎鼎的汽车制造商奇瑞捷豹路虎、跨境电商领域的核心服务商紫讯科技、还是前段时间刚刚再一次成功支持了奥运会广告业务的FreeWheel广告平台,当他们“不约而同”地使用了亚马逊云科技的容灾方案、增强自身服务的韧性时,实际上就已经很能说明一些问题了。

0 阅读:3