在一个理想的世界里,一切都非常完美,并且一直都在顺畅运作。早晨的通勤没有交通堵塞,喜欢的停车位一直空着,一杯温度适宜的饮料,生活一帆风顺,没有任何中断。在需要时,您能得到所需的东西。但这只存在于想象中的完美世界里。
在现实世界里,一切往往不总是按计划进行。交通情况是多变的,每天我们可能停在不同的车位,有时,可能把一杯烫手的咖啡不小心弄洒了。
世界的不确定性,让我们的业务时刻面临风险。有韧性的基础设施是守护业务连续性的重要防线,可减小发生中断的可能性,并尽量缩短发生故障时的恢复时间。
架构可靠:
亚马逊云科技全球云基础设施及
架构设计稳定可靠!
云的韧性和可靠是承载云服务的硬件、软件、网络和设施所具备的抵御故障并快速从中断中恢复的能力,并尽可能减少云服务的中断。亚马逊云科技在确保云可靠性方面进行了大量投资,设计了高度可用的全球基础设施,在服务设计和部署机制中建立了保障措施,并将韧性融入平台的运营文化中。
● 冗余基础设施,从容应对突发事件:
冗余云基础设施是我们为应对不确定性而构建的第一道防线。 亚马逊云科技在全球范围内部署了 33 个区域( region )、105 个可用区( Availability Zone,简称 AZ),并宣布计划增加 21 个可用区和 7 个亚马逊云科技区域。每个区域由一个地理区域内的多个隔离的且在物理上分隔的可用区组成,每个区域设计为 3 个以上的可用区,每个可用区都有独立的电力、冷却和物理安全性。
亚马逊云科技在每个可用区和传输节点之间采用全网状 (FULL MESH) 互联。从组成可用区的 IDCs (Internet Data Center,互联网数据中心)到可用区间的冗余网络连接,再到多可用区组成区域,从单个区域到全球互联的多个区域,逐层构建了韧性的全球架构。在受到物理网络中断等单一线路故障影响时,亚马逊云科技基础设施层能够在秒级完成路由收敛,以充足的网络自愈能力,避免手工操作网络切换导致的长恢保时间,确保用户体验不受影响。
用户可以轻松利用同一个区域内的多个可用区,设计高可用的应用。以 ElasticSearch 服务为例,用户可以充分利用 3 个可用区进行部署,将 master 节点分布在不同的可用区。对于 Amazon Connect 云呼叫中心、Amazon Elemental MediaConvert 视频处理服务这类托管其控制面和数据面都是区域级的多个可用区部署。任何单个可用区级别的故障(物理故障及系统故障)都不会影响集群正常对外提供服务。
● 故障边界的隔离:
在全球部署的同时,亚马逊云科技使用多种故障隔离结构来实现服务的韧性。这些故障隔离的边界将故障控制在已有故障域且可预测的范围内。亚马逊云科技服务的隔离边界包括:可用区、区域、控制平面和数据平面。从故障隔离边界的维度看,亚马逊云科技运营三种不同类别的服务:可用区性、区域性和全球性。例如,每个区域级服务都部署了专用的基础设施和服务堆栈,且互相隔离,在跨区域调用时也具备足够的隔离机制。同时,每种服务的控制平面和数据平面都在不同的范围内进行隔离,即控制面的失效不影响数据面的运行,且不会扩散到相邻范围,例如,控制台的失效不会影响现有云主机的运行。综上,亚马逊云科技将故障发生时的爆炸半径限制在可控范围内。
● 静态稳定设计:
亚马逊云科技韧性设计的关键是保持“静态稳定性”。“静态稳定性”是依赖项发生故障或不可用期间系统无需进行更改就可以依然保持继续正常运行,在数据平面对资源的访问一旦配置,就不依赖于控制平面,因此不会受到任何控制平面失效的影响。即使创建、修改或删除资源的能力受损,现有资源仍然可用。
● 单元架构:
亚马逊云科技的服务采用单元架构的部署方式,即将单元作为云服务部署的基本单位,单元的大小受到限制且彼此隔离。这种设计减少了故障的影响范围,整体可用性得以提高并保持了服务的连续性,类似于船只中多个水密舱的设计。
● 卓越运营:
实现云的可靠和韧性,不仅需要可靠的技术支撑,也需要人员、文化、流程和工具的支持,是一项长期的运营工作。亚马逊云科技基于 Two-Pizza team(Jeff Bezos 提出的团队协作概念)的模式组建团队,践行卓越运营。卓越运营通过安全的持续发布、运营就绪审查、错误更正流程等流程和工具来维护云服务的稳定运行。
事件预警:
提供主动预警工具与机制,
提前预防云上问题发生!
同时,亚马逊云科技提供系列的工具、解决方案及方案论,帮助用户利用云本身的韧性,提升“云中的韧性”。
1、Amazon Health 是您的权威信息来源,可从中了解关乎您的亚马逊云科技云资源的相应服务事件和计划更改情况。Amazon Health 会向您发送有关服务事件、计划变更和账户的通知,以帮助您进行管理并采取行动。登录 Amazon Health Dashboard 可使用 Amazon EventBridge 查看特定于账户的 Health 信息或接收 Health 事件更新。您还可以使用 Amazon Premium Support 提供的 Amazon Health API 以编程方式访问 Amazon Health。
2、Amazon CloudWatch metrics for Performance Insights 和 Amazon DevOps Guru 通过机器学习提供主动、预防和检测功能并提出合理化建议,并帮助降低风险。Amazon AIOps 解决方案,持续分析并整合多个来源的运营数据流,自动分析应用程序指标、日志和事件,以适应不断变化的行为和系统架构。并基于 Amazom.com 和亚马逊云科技的最佳实践使用内置的机器学习算法检查应用的异常行为,以识别潜在风险,防止问题的发生。Amazon AIOps 还会自动识别新的资源并提取相关的指标和日志,当发生偏离正常操作模式的情况时,它会发出警报,无需对规则和警报进行任何手动更新。从而使用户可以有效提高业务应用的可用性。
事前优化:
提供系列工具及方法论,
帮助用户提升云上业务可靠性!
1、通过 Well-Architect 框架,构建韧性系统更佳实践:包含自动从故障中恢复,测试恢复过程,横向扩展以提高工作负载的可用性。在设计时,分布式系统的工作负载架构必须能够预防与减少故障,符合静态稳定性的实践,并具备隔离机制。同时系统的设计应能够检测故障并自动加以修复或转移。
2、全栈可观测性:包括亚马逊云科技原生、应用程序性能监控 (APM) 和开源解决方案,让您能够随时了解整个技术栈中发生的情况。可观测性让您可以在云、混合或本地环境中的网络、基础设施和应用程序中收集、关联、聚合和分析遥测数据,以便深入了解系统的行为、性能和运行状况。这些见解可帮助您更快地检测、调查和修复问题;结合人工智能和机器学习,以主动反应、预测和预防问题。
快速恢复:
帮助用户构建云上可靠性能力,
保障应用和数据高可靠运行!
帮助用户快速将业务恢复实现业务连续性,合适的业务容灾备份策略也是十分重要的。亚马逊云科技提供完善的容灾与备份机制,从冷备份、实时异步复制业务数据,到实时复制业务数据、实时同步、异步双向复制业务数据,适用于不同 RPO(Recovery Point Objective,数据恢复点目标)、RTO(Recovery Time Objective,恢复时间目标)目标需求,帮助用户构建容灾系统。意外事件发生时,我们提倡快速将业务流量路由到可用区或区域,Amazon Route 53 Application Recovery Controller 可以帮助用户快速将业务流量路由到可用区或区域,并通过健康状况检查、就绪检查和切换策略确保切换的安全和有效。
星标不迷路,开发更极速!
关注后记得星标「亚马逊云开发者」
听说,点完下面4个按钮
就不会碰到bug了!