缩小影响范围,度过艰难时光

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 本论坛是关于减少影响领域和提高韧性的深入探讨。从基础架构的角度了解亚马逊云科技如何跨服务独立构建。此外,深入研究可以帮助减少应用程序层影响范围的高级应用程序设计模式,例如蜂窝架构和切分。本论坛还讨论了构建此类系统的工程复杂性。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1200字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 布鲁诺(Bruno)和拜伦(Byron)首先向我们介绍了爱丽丝(Alice)这位企业家。在巴西之旅品尝到美味咖啡的启发下,她开始了一家小型咖啡店,向朋友和邻居出售咖啡。起初,爱丽丝的店铺规模很小,她在自己的车库里经营,使用笔和纸来接收订单。这个手动过程在初期效果还不错,但随着需求的增长和爱丽丝开设了更多的分店,用纸跟踪订单和库存的效率变得非常低下。 为了帮助简化运营,爱丽丝实施了一个基本的IT系统,包括一个运行订单管理应用程序的单台服务器,以及用于存储交易数据的数据库。数据库每小时进行一次备份,以确保在发生故障时可以恢复订单历史记录。这个相对简单的设置在对爱丽丝只有一家或两家店铺时足够使用,但局限性很快显现出来。 核心问题是单一体的订单管理应用程序是一个单点故障源——如果它因任何原因停止工作,爱丽丝整个业务将陷入停滞。此外,她想部署的任何更改或新功能都会让整个应用程序处于风险之中,因为一个小错误可能很容易导致整个大块崩溃。 为了减少故障发生时的影响范围,爱丽丝策略性地决定将大块应用程序分解成专注于特定业务功能的微服务。例如,她将库存管理能力、客户忠诚度和定价引擎拆分为独立的服务。这种更精细的架构意味着现在,一个服务的故障只会影响该特定功能,而不会导致整个堆栈崩溃。 微服务还带来了其他好处。它们使爱丽丝能够针对每个服务的特定工作负载使用不同的技术堆栈。微服务还使得扩展更容易,因为爱丽丝可以根据每个服务的利用率指标分配额外的资源,而不是必须将所有东西一起扩展。最后,微服务架构使爱丽丝能够在不触及其他服务的情况下部署对单个服务的更新。 微服务在部署、监控和测试等方面确实引入了一些额外复杂性。在享受故障隔离带来的好处与承担增加复杂性所带来的成本之间,始终需要进行权衡。对爱丽丝的关键零售业务而言,微服务正是这种平衡的体现。将单体应用程序拆分为微服务可以显著降低故障带来的影响——从全面停机到特定功能的失效。然而,爱丽丝意识到她的商店仍容易受到区域性停机的影响,因为所有服务都部署在一个亚马逊云科技的可用区中。为了解决这种潜在的单一故障点问题,爱丽丝决定将她的架构分布在多个可用区。借助亚马逊云科技的孤立AZ设计,爱丽丝避免了所谓的“共享命运”问题——一个AZ中的停机不会影响在其他AZ中运行的服务。通过在具有独立基础设施的AZ中进行冗余部署,爱丽丝确保她的应用能够应对可能摧毁整个系统的AZ故障。随着爱丽丝的咖啡店在全国范围内扩展至数百个地点,它已成为人们心中的“太大而不能失败”的企业。然而,最近的一次停机导致了爱丽丝损失了超过50万美元(确切地说是537,000.22美元),损害了人们对业务的信心。为防止这种情况再次发生,爱丽丝寻求进一步隔离故障并减小其影响的方法。她从一个应用程序副本演进到了基于细胞的设计,其中服务的多个完全相同的副本在不同“细胞”中运行,每个细胞为商店的子集提供服务。采用这种方法,如果一个细胞中出现故障,只有部分商店会受到影响,而不是整个车队。需要对数据进行分区,以将商店分配给特定的细胞,这增加了复杂性,但故障隔离的好处是显而易见的。细胞还带来了其他优势。它们的最大容量可以标准化,以简化测试并确保可预测的扩展。如果需要,细胞可以单独撤消以处理有问题的商店。总之,细胞架构允许爱丽丝将区域性停机的影响范围从商店的小子集限制为几个商店。 爱丽丝计划进一步加强她的一个领域——商店中用于接收客户支付的订单处理系统。这是一个对零售收入至关重要的环节,因此任何停机或问题都可能会立即影响业务。为了实现订单处理的稳定性和高效性,爱丽丝采用了一种名为Shuffle Sharding的高级技术。 Shuffle Sharding通过使用数学算法以非确定性方式决定如何将服务器分配给用户。换句话说,它不是将一组固定的服务器分配给给定的用户,而是每个请求被随机路由到不同的后端系统组合。这样,即使某个用户发送了可能导致服务器崩溃的不良请求,也只会影响到该用户,而不会潜在地影响其他人。 通过将Shuffle Sharding应用于订单处理,爱丽丝能够把区域故障的影响范围从整个业务限制到个别用户。当然,这种方法的实施确实增加了一些复杂性。然而,对于爱丽丝最关键的核心业务层面,这种高度的容错能力是非常有价值的。 总的来说,爱丽丝已经采取了一系列措施来隔离失败并减少其对业务的影响: 1. 她首先将单体应用程序分解成专注于特定功能并可独立扩展的微服务。这样可以将失败和中断限制在单个服务范围内。 2. 她在多个亚马逊云科技可用区部署服务,以避免受区域性故障影响。可用区提供了一个隔离边界,可以限制失败的范围。 3. 她采用了基于单元格的架构,在每个单元格中复制服务的副本并对存储进行分区。这样一来,失败只能影响到那个单元格中的商店。 4. 对于订单处理,她实施了高级的Shuffle Sharding。这通过随机分配服务器来防止任何用户的错误请求影响到其他用户。 通过这些渐进式的步骤,爱丽丝将业务中断的影响从全面的业务停摆大幅降低到了局部化的小影响。通过投资于故障隔离,她为不断发展的业务奠定了基础。 亚马逊云科技提供了一系列托管服务和框架,旨在提高在其基础设施上运行的应用程序的弹性。Bruno和Byron所提到的一些关键产品包括...(此处省略) 弹性灾难恢复(Elastic Disaster Recovery):负责协调和自动化跨亚马逊云科技和内部环境的灾难恢复工作。 - 备份(Backups):简化跨亚马逊云科技服务的集中式备份自动化过程。 - Route53应用恢复控制器(Route53 Application Recovery Controller):在损害发生时跨区域和可用区重新路由流量。 - 解决方案库(Solutions Library):包含了亚马逊云科技和合作伙伴撰写的韧性解决方案目录。 - 韧性生命周期框架(Resilience Lifecycle Framework):提供跨应用生命周期的最佳实践,以实现韧性。 通过充分利用这些功能并将韧性作为开发生命周期中的首要考虑因素,企业可以构建具有容错能力的应用程序,从而在遭受干扰时迅速恢复,确保关键业务服务即使在困难时期也能持续运行。 **下面是一些演讲现场的精彩瞬间:** 领导者们讨论了爱丽丝如何成功地应对困难时期,将她的小型咖啡店发展壮大成一家更庞大的企业。 ![](https://d1trpeugzwbig5.cloudfront.net/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days/images/rebranded/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days_0.png) 她采用了微服务技术来隔离各个环境,使得每个功能都能独立地运行或失败,从而将失败的影响限制在特定功能上。 ![](https://d1trpeugzwbig5.cloudfront.net/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days/images/rebranded/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days_1.png) 通过运用合适的工具来完成各种工作,简化流程有助于构建更具弹性的应用程序。 ![](https://d1trpeugzwbig5.cloudfront.net/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days/images/rebranded/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days_2.png) 然而,随着业务的扩展,爱丽丝也遭受了大量的财务损失,这动摇了她对全国扩张的愿景。 ![](https://d1trpeugzwbig5.cloudfront.net/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days/images/rebranded/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days_3.png) 蜂窝式架构将故障影响限制在特定的用户群体中,而非影响到所有客户。 ![](https://d1trpeugzwbig5.cloudfront.net/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days/images/rebranded/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days_4.png) 亚马逊云科技的解决方案库为客户提供了一系列建议性方案、合作伙伴解决方案以及关于弹性生命周期等主题的丰富信息,旨在帮助提高弹性能力。 ![](https://d1trpeugzwbig5.cloudfront.net/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days/images/rebranded/ARC306-Reducing_your_area_of_impact_and_surviving_difficult_days_5.png) ## 总结 爱丽丝在品尝过巴西的美味咖啡后,决定在巴西开设一家小型咖啡店。随着她的业务从车库店铺扩展到多个地点,她意识到需要一个IT系统来管理订单,而不仅仅依赖于笔和纸。最初,她使用一个数据库的单例订单管理应用程序,每小时进行备份。然而,这种单一故障点式的解决方案意味着如果应用程序崩溃,整个业务都将受到严重影响。为了提高弹性,爱丽丝将系统拆分为用于特定功能(如忠诚度计划和定价)的微服务。这样可以将故障限制在单个功能而非整个系统。 将这些微服务部署到亚马逊云科技的多个可用区可以防止共享故障。如果一个区域出现问题,其他区域仍能处理订单。然而,一个问题仍然可能影响所有商店,因此爱丽丝创建了完整栈(单元)的多个副本并将商店映射到特定的单元。现在,一个问题只影响已映射的商店,从而减少了影响范围。 对于关键任务的订单处理系统,爱丽丝实施了随机分片。这意味着在基础设施中为用户分配随机帐户而不是相同的分片。因此,如果一个用户发送了错误的请求,它只影响他们的两个分配的服务器-而不是整个单元。这将影响范围进一步减少到一个用户。 通过微服务、可用区、单元和随机分片,爱丽丝极大地提高了弹性。她的曾经的小型店铺已经发展成了一个全国性的咖啡连锁店,能够应对各种挑战。通过隔离故障并减少影响范围,爱丽丝确保她的企业能够在不可避免的损害中继续运行。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭