公元11世纪中期,山西应县的工匠们将一根根原木加工成精美的建筑构件,通过巧妙的榫卯结构将它们相互连接,创造了辽朝木结构建筑的传奇——应县木塔。
其精妙之处在于,不借助钉子或其他金属固定件,塔身的榫卯结构能够在一定程度上吸收和分散震动,使木塔在遇到外力时具有出色的韧性与承受力。
时间来到19世纪中期的生物界,查尔斯.达尔文的巨作——《物种起源》彻底改变了人们对生命和自然的理解。
“能够生存下来的物种,不是那些最强壮的,也不是那些最聪明的,而是那些对变化最为敏感的。” 达尔文从生物学的角度,进一步强调了能够适应环境的物种进化优势——韧性。
技术优势加持,在云端书写韧性篇章
在现代云计算基础设施上,云基础设施韧性是指基础设施层、架构设计层、运营机制层面对各种内外部问题(如自然灾害、网络攻击、硬件故障等)时,系统能够维持其核心功能并快速恢复的能力。
其不仅能够与古人的创造力形成生动的类比,同时更被视为一种应用哲学,一种被千行百业深刻理解并应对各种挑战的智慧。
而这一智慧也在亚马逊云科技的云端得到充分展现——助力行业拥趸们在稳健发展业务的过程中,持续收获着可见、实用的裨益。
让我们首先来看一组直观的数据:Amazon EC2每天实例启动1亿次、每周启动22.5亿次,Amazon Lamdba月活跃用户达到100万人次、月调用次数超10万亿次,Amazon DynamoDB数据库服务每天发起10万亿次请求,Amazon Fargate每周新发布任务超22.5亿个。
这些数据充分展示了亚马逊云科技在云基础设施应对高负载、高频次请求方面的韧性。
“亚马逊云科技在2006年开创性的发布了第一款云服务,时至今日,亚马逊云科技提供了超过 240 种功能全面的服务。在云计算的韧性技术实现中,亚马逊云科技始终关注基础设施、架构设计和运营机制所带来的独特价值。”亚马逊云科技大中华区解决方案架构总经理代闻强调,这也正是全球数百万客户选择并信赖亚马逊云科技,并连续13年蝉联Gartner云基础设施和平台服务魔力象限领导者的重要原因!
显然,云计算基础设施的韧性已成为评估云服务商能力的一项核心指标。
代闻坦言,亚马逊云科技构建可靠的云服务主要围绕三个重要维度展开:基础设施韧性、韧性技术架构和卓越的运营机制。
在基础设施韧性上,亚马逊云科技的基础设施网络以科学的区域布局、强大的冗余设计、高效的网络连接和自动化管理,确保了全球用户在不同地域都能享受到优质的云计算服务。
围绕全球覆盖与区域分布,亚马逊云科技在全球设立了多个数据中心,划分为多个区域(Regions),每个区域内部包括多个可用区(Availability Zones,AZs)。这种布局实现了广泛的地域覆盖,为客户提供了本地化的服务选项,减少了数据传输的延迟和延时,提高了用户体验;
聚焦高可用性与冗余设计,亚马逊云科技的每个区域由三个或更多的可用区组成,且每个可用区内部有多个数据中心。这种冗余设计保证了即使某一数据中心或可用区发生故障,其他部分仍能继续运行,从而提供了高可用性。每个数据中心具备独立的电力供应、制冷系统和安全设施,进一步增强了系统的稳定性和可靠性;
针对网络连接与低延迟,亚马逊云科技的网络架构通过光纤线路实现了可用区内部、可用区之间、区域和区域之间的互联。每个可用区内部的数据中心通过冗余链路互联,确保了高效的数据传输。区域内的可用区通过多个传输中心互联,并且不同区域间通过冗余的连接中心和链路互联;
关于自动扩展与负载均衡,亚马逊云科技的负载均衡器将流量智能地分配到多个服务器,确保了系统的稳定性和高效性。这种自动化和智能化的设计,使其能够灵活地应对各种业务需求,无论是高峰时期还是低谷时段,都能维持稳定的服务质量。
代闻认为,构建一个极具韧性的云服务架构,其必须要具备面对各种极端情况下的稳定与可靠能力,更重要的是,其要为全球用户提供了一个强大且灵活的云资源平台。
这也是为何亚马逊云科技通过区域隔离与多可用区、控制面与数据面独立、单元架构以及随机分片四大角色支撑韧性技术架构的缘由。
首先,亚马逊云科技通过将服务划分为可用区级、区域级和全球级,来控制故障的影响范围。以全球级服务Amazon IAM为例,该服务在全球级别的控制面将增删改逻辑和数据存储架构细分为多个独立的计算和存储单元。这种细分的分布式架构实现了高可用性和极小的故障半径,确保即使在极端情况下全球控制平面出现故障,其影响也仅限于无法创建新的IAM信息,而区域内的数据平面仍能稳定提供认证授权服务。
其次,亚马逊云科技将服务拆分为控制平面和数据平面两个层面,设计考虑了以下两个方面:
数据平面独立于控制平面运行,即使控制平面发生故障,数据平面仍能正常对外服务。控制面组件较多,故障概率相对更高,但数据平面的稳定性对大多数客户而言更为关键。例如,Amazon EC2实例在启动后持续稳定运行比启动新实例的能力更为重要。
同时,由于数据平面和控制平面的需求不同,通常数据平面的运营容量高于控制平面。隔离后,两者可以根据各自需求独立扩展,互不影响。
“控制面和数据面的隔离,类似于叫车软件和打车,两者其实是相对独立的。当你坐上车以后,如果一段时间叫车软件没有信号无法响应了,也不影响司机将你送到预定的目的地。很多故障失效的情况关键在于没有把数据面和控制面做到很好的隔离。”代闻如是说。
第三,亚马逊云科技通过将系统分解为更小的独立单元的原则,避免了单元故障导致整个系统瘫痪。以数据库为例,亚马逊云科技为常规数据库添加了分片分区层,将系统拆分为更小的单元,从而最小化了硬件、网络、电力系统或代码故障的影响。
第四,亚马逊云科技通过随机分片进一步提高了应用和系统的可用性。通过将数据或任务分片随机分配到不同的单元,以此减少系统受单一故障点的影响,提高整体的系统韧性和可靠性。
在卓越的运营机制上,为确保云服务的韧性,亚马逊云科技四大模块各司其职:
服务责任模型旨在鼓励团队持续改进运营。工程和产品管理由小型多学科团队领导,团队对服务的设计、启动、运营和问题处理全程负责。
运营就绪性审查(ORR)则确保在发布或更新服务前,亚马逊云科技会进行运营就绪性审查。发布团队需回答有关复原力和最佳实践的问题,并通过标准化的运行手册确保服务符合要求。
安全、持续部署模块,则聚焦服务更新或推出新服务时,使用安全、持续部署管道。通过生产前测试、自动回滚和交错部署,最大限度减少错误的影响。更新从小范围开始,逐步扩展到整个区域,确保稳定性和安全性。
纠错流程模块,亚马逊云科技利用纠错(CoE)流程来诊断和解决问题。之后,由亚马逊云科技进行工程冲刺,以确保所有服务中类似问题得到解决。这些经验被记录并纳入ORR流程,防止问题重现。
深入行业需求,帮助客户构建端到端的韧性
那么,在具备了云基础架构韧性技术要素之后,亚马逊云科技如何来帮助客户构建端到端的韧性?
来自一个行业案例显示:作为已成功为伦敦奥运会、索契冬奥会、巴西世界杯、里约奥运会等大型顶级赛事的广告服务商。FreeWheel的全球性对系统韧性提出严苛要求,需要服务北美、欧洲等多个地区客户,并确保跨区域数据同步和低延迟访问,提供一致的用户体验。
在亚马逊云科技的帮助下,FreeWheel 完成了多区域多活应用构建,轻松应对 2 秒内激增百倍的超大流量。并采用 Amazon Aurora 和 Amazon DynamoDB 替换MySQL 数据库集群,使用 Amazon S3搭建可扩展存储。在满足严苛的韧性目标的同时,FreeWheel利用Serverless技术提供持续按需可扩展的基础架构资源,提升基础架构的资源利用率。
事实上,通过与客户和内部团队的常年协作,亚马逊云科技为韧性构建工程总结归纳为四个重要经验:系统韧性的提高是持续的过程;在业务需求、可靠性、成本、系统复杂度之间取得均衡;以标准软件开发生命周期重;从业务、技术与持续运营等多维度来帮助企业提高系统韧性。
为此,亚马逊云科技具有针对性的打造了韧性系统建设生命周期框架:该框架包含五个关键阶段, 并强调韧性是一个持续的生命周期,需要不断重复五个阶段,以应对不断变化的环境和需求。这五个阶段包括:设定目标、设计及实施、验证和测试、持续运营、响应和改进。
另外,亚马逊云科技通过丰富的服务和工具,帮助企业构建韧性应用,并鼓励客户采用单元架构来最小化应用的故障影响。在韧性系统的各个生命周期阶段,亚马逊云科技提供了从目标设定到实施和测试的全面支持,如Amazon Resilience Analysis Framework、Amazon Aurora、Amazon Fault Injection Simulator(FIS)和Amazon Resilience Hub等。同时,Well-Architected Framework和Amazon Health Dashboard贯穿全生命周期,为系统韧性和健康提供持续评估与监测。
每一次对用户的云端响应、每一次数据的传输,背后都是对韧性智慧的生动诠释。在那些看似平凡的数据流动中,亚马逊云科技的核心理念在静静流淌——那是对不确定性的从容应对。
无论是辽代工匠们巧妙的榫卯构造,还是查尔斯·达尔文对生命进化的洞见,韧性这一古老而恒久的哲理,早已在历史的长河中沉淀。而今,这种智慧在亚马逊云科技的云端持续焕发光芒,为无数企业和机构照亮前行的道路。