ITPub博客

首页 > 云计算 > 公有云实践 > 亚马逊云科技混沌工程实践经验

亚马逊云科技混沌工程实践经验

公有云实践 作者:出海新观点 时间:2024-06-24 23:50:07 0 删除 编辑

关键字: [ 亚马逊云科技中国峰会2024, Chaos Engineering, 混沌工程, 微服务系统, 故障模拟, 系统韧性, 生产环境测试]

本文字数: 1100, 阅读完需: 6 分钟

导读

林旭芳在亚马逊云科技中国峰会2024 上发表了题为” 混沌工程— 微服务韧性治理的经验压缩算法” 的演讲。在这个演讲中, 他讨论了混沌工程如何帮助应对微服务架构带来的复杂性挑战; 具体解释了混沌工程通过主动模拟故障场景, 暴露并修复系统问题, 从而提高系统的韧性和可靠性。演讲重点介绍了亚马逊如何利用混沌工程实践, 使微服务系统能够应对主机故障、网络故障等情况, 提高系统的可用性、可靠性和恢复能力。

演讲精华

以下是小编为您整理的本次演讲的精华,共800 字,阅读时间大约是4 分钟。

在当前时代, 微服务架构被越来越多的客户采用, 用于构建他们的应用程序。微服务架构带来了诸多好处, 它可以通过小步快跑的方式, 帮助客户快速交付业务价值, 提升创新速度。然而, 微服务架构并非 , 无法解决所有问题。以亚马逊电商系统的服务调用图为例, 由于涉及众多微服务, 调用链条错综复杂, 工程师很难直观地追踪系统运行状态, 判断出哪个服务出现了故障。这种情况在采用微服务架构的客户中普遍存在, 当老板询问系统的客户用户旅程是如何调用的时, 很少有人能够清晰地呈现出整个服务链条。

这种复杂性给工程师带来了诸多挑战, 他们经常会产生以下疑问: 我们的应用能否应对主机、网络等类型的故障? 如果单个服务发生故障, 整个系统会出现什么情况? 客户端用户的手机应用会是什么状态? 这些问题都暂时没有答案。

2022 年的一份混沌工程调研报告显示, 导致线上系统故障的常见原因有代码错误、配置错误、依赖网络问题等, 而我们很多时候根本不知道故障发生的时间, 这是一个严重的问题。

混沌工程作为一门实验学科, 应运而生, 旨在帮助我们应对复杂系统的不确定性, 主动探索潜在问题。Amazon Web Services CEO 曾说过” 经验没有压缩算法”, 混沌工程可以帮助我们主动暴露问题, 从而缩短积累经验的时间周期。

与传统的被动处理故障模式不同, 混沌工程的思路是主动出击, 模拟各种故障场景, 提前发现并修复问题, 从而建立应对故障的信心。例如, 工程师们往往在系统故障时被动应对, 不得不在深夜被叫起来处理各种突发问题。而混沌工程则主张主动模拟故障, 通过模拟的方式, 工程师们可以主动发现并暴露出许多潜在问题, 及时加以修复, 从而为将来的故障做好准备。

实施混沌工程一般包括以下步骤: 首先, 需要对应用系统当前的正常状态进行评估, 例如评估P99 延迟、错误返回码的比例等。其次, 基于这个稳态, 假设并模拟现实中可能发生的故障场景, 如网络故障、下游服务返回错误码、增加延迟等。然后, 建立假说, 设计实验场景, 评估预期结果。接着, 运行实验。业界普遍认为, 混沌工程实验应在生产环境中进行, 因为测试环境难以模拟真实的复杂环境。但对于一些对可用性要求极高的场景, 如金融领域, 也可先在测试环境验证, 再逐步过渡到生产环境。无论如何, 都应尽可能地靠近生产环境去做这些实验。有些客户的微服务系统非常庞大, 甚至依赖了大数据和人工智能等应用, 使得在测试环境中模拟真实环境变得越来越困难。

运行实验后, 需要收集实验过程中系统指标的变化, 判断故障对系统的影响。例如, 收集未注入故障前后的P99 延迟、错误返回码比例等指标, 并进行对比分析, 评估故障会导致系统产生什么样的影响。最后进行事后复盘, 并对系统进行改进, 再通过故障注入验证改进的有效性。由于混沌工程需要不断迭代以提高系统韧性, 通常需要构建自动化的故障注入平台, 帮助完成上述步骤, 从而缩短实验周期, 提高效率。

混沌工程为提高微服务架构系统的可靠性和韧性提供了有益的实践经验。林旭芳老师表示, 亚马逊云科技可以为客户提供混沌工程相关的服务和支持, 共同应对微服务架构带来的挑战。

下面是一些演讲现场的精彩瞬间:

亚马逊云科技中国峰会2024: 探讨微服务架构的复杂性及混沌工程的应用

亚马逊云科技工程师面临诸多挑战, 如应对主机、网络故障, 以及单个服务故障对整个系统的影响。

亚马逊云科技CEO 强调混沌工程可以帮助企业主动探索复杂系统中潜在的问题, 缩短积累经验的时间周期。

混沌工程通过主动模拟故障场景, 帮助工程师发现并修复潜在问题, 从而建立应对故障的信心。

亚马逊云科技中国峰会2024: 混沌工程实验应该尽可能地在接近生产环境的条件下进行, 以模拟真实场景并验证系统的可靠性。

亚马逊云科技专家强调混沌工程需要持续迭代和自动化平台来提高系统韧性和效率。

总结

混沌工程是一种应对微服务架构复杂性的实践方法, 旨在主动探索系统潜在的弱点和故障场景。通过模拟生产环境中可能发生的各种故障, 如网络中断、服务错误等, 混沌工程帮助工程师提前发现并修复系统漏洞, 从而提高系统的韧性和可靠性。这种主动出击的方式, 有助于压缩获取系统故障经验的时间周期, 避免被动等待故障发生后再去解决问题。

混沌工程的实施过程包括评估系统正常状态、设计故障场景、运行实验、收集指标数据、复盘改进等步骤。为提高效率, 建议构建自动化的故障注入平台, 持续迭代优化系统。虽然混沌工程最佳在生产环境实施, 但对于高风险场景, 也可先在测试环境验证后逐步过渡。

混沌工程为微服务系统的韧性治理提供了一种经验压缩算法, 帮助企业主动发现和解决潜在问题, 提升系统的可靠性和用户体验。亚马逊云科技愿与客户携手, 共同探索混沌工程在微服务架构中的实践之路。

2024 年 5 月 29 日,亚马逊云科技中国峰会在上海召开。峰会期间,亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松全面阐述了亚马逊云科技如何利用在算力、模型、以及应用层面丰富的产品和服务,成为企业构建和应用生成式 AI 的首选。此外,活动还详细介绍了亚马逊云科技秉承客户至尚的原则,通过与本地合作伙伴一起支持行业客户数字化转型和创新,提供安全、稳定、可信赖的服务,以及持续深耕本地、链接全球,助力客户在中国和全球化发展的道路上取得成功。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038688/viewspace-3019995/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-05-21

  • 博文量
    679
  • 访问量
    566422