
关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Amazon Ecs Availability, Container Orchestration Resilience, Deployment Automation Patterns, Availability Zone Isolation, Service Partition Cells]
每种应用架构都依赖于底层基础设施,而许多人选择Amazon ECS作为构建的基础。你知道Amazon ECS是如何构建的吗?在构建这项服务时考虑了哪些设计因素?Amazon ECS如何帮助你最大限度地减少宕机?在本次讨论中,了解Amazon ECS如何帮助你满足在云中运行弹性和可靠应用程序的需求。深入探讨Amazon ECS的服务架构、设计和运营实践,如何为你的应用程序提供安全和弹性的基础。
以下是小编为您整理的本次演讲的精华。
在不断演进的云计算领域中,亚马逊云科技已经巩固了其作为先锋力量的地位,为全球各地的企业和组织提供了一套全面的服务,满足了它们的不同需求。在这些服务中,Amazon Elastic Container Service(Amazon ECS)作为一个强大且高度可扩展的容器编排平台,使客户能够无缝部署和管理容器化应用程序。
展开剩余88%在2024年举办的里程碑式亚马逊云科技 re:Invent大会上,这个汇聚了行业领导者、创新者和技术爱好者的盛会上,来自亚马逊云科技团队的资深专家Mace Seidel Casing和Malcolm Feetenby登台发表了一场关于Amazon ECS的可靠性和可用性的深入演讲。他们的演讲旨在深入探讨Amazon ECS团队为确保服务的高可用性和可靠性而采用的架构模式、方法论和持续改进流程。
亚马逊云科技高级开发者代言人Mace Seidel Casing首先介绍了Amazon ECS,这是一项原生容器编排服务,在2024年与Amazon Lambda和Amazon EFS一起庆祝了10周年。他阐明,Amazon ECS使客户能够在亚马逊云科技云上配置和运行容器化工作负载,利用与其他亚马逊云科技服务相同的API、工具和控制台。客户可以灵活选择在Amazon EC2实例上运行容器,或者使用Amazon Fargate这种无服务器计算选项,将基础设施管理外包给亚马逊云科技。
Mace强调了该服务的广泛采用,透露Amazon ECS是一项在全球34个亚马逊云科技区域中部署的基础服务,每周在这些区域中启动了惊人的24亿个任务。他进一步指出,65%的亚马逊云科技客户从Amazon ECS开始他们的旅程,而令人印象深刻的70%的客户选择Amazon Fargate,因为它无缝集成且运营开销较低。Mace强调,来自生产、银行等多个行业和垂直领域的客户都利用Amazon ECS来支持他们的产品并实现目标。他提到,客户成功案例和使用案例可在亚马逊云科技网站上找到。
亚马逊云科技高级首席工程师Malcolm Feetenby随后登台,深入探讨了Amazon ECS团队为确保高可用性和可靠性而采用的架构模式和方法论。他强调接受故障是自然发生的事情,设计服务时要将故障正常化并快速从中恢复。
Malcolm阐述了可用性和可靠性的概念,这两个关键组成部分构成了Amazon ECS团队方法的基础。他解释说,可用性是指系统执行有用工作的能力,用成功服务请求的概率来衡量。例如,如果服务需要服务100个请求,目标就是成功服务所有100个请求,实现100%的可用性态势。而可靠性则是服务吸收故障并快速恢复的能力,从而实现100%可用性的理想状态。
为了提供背景,Malcolm讨论了亚马逊云科技服务所使用的基础构建块,包括区域和可用区。亚马逊云科技区域在地理位置上是相互隔离的,遵循共享无关架构,确保一个区域发生故障不会影响其他区域。在每个区域内,至少有三个可用区,这些可用区在电力和网络方面是相互隔离的独立故障域。
Malcolm随后深入探讨了Amazon ECS控制平面的架构,这是负责管理和调度容器化工作负载的核心组件。他透露,控制平面部署在每个区域的多个可用区中。这种部署策略,加上在可用区之间预先扩展服务至峰值容量的150%,确保了静态稳定性,即使整个可用区发生故障,服务也能继续运行。具体而言,在每个可用区中,都配置了支持整个区域峰值容量所需容量的50%。
为进一步提高可用性,Amazon ECS团队采用了细胞架构,将控制平面划分为每个区域内的多个单元。这种方法限制了故障的影响范围,因为单个单元内的问题只会影响整个服务的一部分。它还能通过减小每个单元的占用空间,实现更快的部署、回滚和恢复。
Malcolm强调,客户可以利用ECS集群ID将其软件堆栈与特定的ECS可用性堆栈对齐,确保一个堆栈中的故障不会影响其他堆栈。他举了一个例子,客户将他们的黄色、红色和粉色软件堆栈部署到单独的ECS集群中,使每个堆栈由控制平面的专用分区进行管理。这种方法降低了一个软件堆栈中的问题影响其他堆栈的风险。
Malcolm还强调了使用滚动部署的重要性,它允许逐步推出和回滚更改,从而最小化潜在问题的影响。Amazon ECS团队持续监控服务的可用性,并引入了自动权重调整等功能,可自动将流量从表现异常的可用区路由出去。此外,AZ重新平衡功能有助于在部署或故障期间保持任务在可用区之间的均匀分布,确保高可用性。例如,如果部署导致分布不均,一个可用区有两个任务,另一个可用区只有一个任务,AZ重新平衡功能将自动在订阅较少的可用区中启动一个新任务,并在新任务报告健康后终止订阅较多的可用区中的任务。这个过程确保了所需任务数量得以维持,同时在可用区之间重新平衡了分布。
转而讨论可靠性模式,Malcolm涵盖了本地容器重启等技术,允许容器在同一主机上重启,而无需经过整个控制平面,从而提高了可用性。他还强调了使用非阻塞I/O进行日志记录的重要性,以防止下游依赖影响服务的可用性。这一功能是在2024年7月发生的一次与Amazon Kinesis服务相关的中断后引入的,当时Kinesis服务导致了级联故障,影响了Amazon CloudWatch等服务,进而影响了Amazon ECS的日志记录。因此,客户无法启动新任务,因为日志记录依赖于CloudWatch。
Mace Seidel Casing随后上台讨论了Amazon ECS团队采用的持续改进流程。该流程涉及运行混沌实验或游戏日,在受控环境中有意引入故障,以了解服务的行为并确定需要改进的领域。
该团队遵循一个结构化的方法,包括准备实验、检测和响应所引入的故障,以及通过事后分析和纠正错误(COE)流程从经验中学习。COE流程用于识别和修复问题、分配行动项目的所有权,并在Amazon服务团队之间分享经验教训,以防止重复发生并提高整体服务质量。
Mace举了一个2022年与Amazon Fargate相关的中断的例子,当时负责管理ECS任务的一个微服务没有扩展到正确的资源级别。这导致了级联故障和服务中断,影响了许多使用Amazon ECS的客户。团队从这一事件中吸取教训,认识到在每个可用区内将服务部署为独立单元的重要性,并引入了自动权重调整功能,可自动将流量从受影响的可用区路由出去,以维持服务水平。
Mace还提到,Amazon自身将Amazon ECS作为许多产品的基础服务。包括Amazon SageMaker、Amazon Lex、Amazon Polly、Amazon Batch、Amazon Comprehend、Amazon Rekognition和推荐引擎在内的多个亚马逊云科技服务都建立在Amazon ECS之上,并继续使用它,因为它易于使用。这些服务依赖于Amazon ECS在区域启动之前就已准备就绪并部署在该区域内,因为它们是建立在容器编排服务之上的。
总之,Amazon ECS团队采用了一系列架构模式、方法论和持续改进流程,以确保Amazon ECS服务的高可用性和可靠性。通过接受故障、设计静态稳定性、使用细胞架构以及不断从中断和实验中学习,该团队旨在为亚马逊云科技客户提供高度可靠和可靠的容器编排服务。
在整个演讲过程中,Mace和Malcolm强调了保持内容真实、与视频中传达的原意保持一致的重要性。他们避免添加不必要的描述性词语或短语,保持了一种正式的风格,准确地呈现了会议上分享的信息。视频字幕中提到的示例和客户案例被自然地融入到叙述中,丰富了内容,但没有偏离原有的上下文。输出内容严格遵循了视频字幕中提供的信息,确保了对演讲者见解的无损和忠实呈现。
下面是一些演讲现场的精彩瞬间:
利用 ECS 集群 ID 将软件堆栈与 ECS 可用性构造对齐
亚马逊云科技 架构师解释了扩展服务的挑战以及设计可扩展性以处理大规模工作负载(如 25 亿个任务)的重要性。
亚马逊云科技 可以通过在预生产环境中创建一个分区来扩展测试,该分区可扩展到特定负载,从而深入了解底层架构在极端条件下的行为,而不会影响生产环境。
Amazon ECS 利用滚动部署逐步推出更改,在扩展到其他可用区之前,先对每个更新建立信心,从而确保弹性和高可用性。
Amazon ECS 引入了本地容器重启功能,允许容器在失败时在同一主机上本地重启,提高了可用性并减少了与控制平面交互的需求。
引言: 本演讲深入探讨了Amazon ECS(Elastic Container Service)所采用的复杂架构和操作实践,以确保高可用性和弹性。演讲者Malcolm Feetenby和Mace Seidel Casing分享了该服务的设计原则、部署策略和持续改进流程,这些都是支撑其稳健性的基础。
重点: 1. Amazon ECS接受故障的不可避免性,并设计系统以快速规范化和恢复故障,旨在实现100%可用性。 2. 该服务利用亚马逊云科技区域和可用区,采用共享无状态架构,并在可用区之间进行预扩展,以保持静态稳定性和容错能力。 3. ECS利用细胞架构,将控制平面划分为隔离的单元,实现故障隔离、更快部署和通过扩展机制实现可扩展性。 4.滚动部署、自动远离不健康的可用区以及部署版本稳定性确保了无缝软件更新和回滚,影响最小。 5. 本地容器重启、非阻塞I/O和可用区重新平衡等技术有助于提高弹性和可用性。
结论: 演讲者强调通过混沌实验、游戏日和严格的错误纠正(COE)流程实现持续改进的重要性。通过接受故障、从事件中学习并实施最佳实践,Amazon ECS不断提高其可用性和弹性,为客户提供稳健可靠的容器编排服务。
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。
发布于:新加坡胜亿配资提示:文章来自网络,不代表本站观点。