

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在上实施混沌工程 AWS
<a name="implementation"></a>

混沌工程是[AWS 弹性生命周期](https://docs.aws.amazon.com/prescriptive-guidance/latest/resilience-lifecycle-framework/introduction.html)评估和测试阶段的一部分，如下图所示。分布式应用程序不能与其他应用程序或客户端隔离运行，因此我们建议您查看整个弹性生命周期。随着网络的发展、上游和下游应用程序的变化以及客户端的使用随着时间的推移而变化，分布式应用程序的变化是恒定的。

![AWS 弹性生命周期的五个关键阶段。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/chaos-engineering-on-aws/images/resilience-lifecycle.png)


要了解应用程序的这些更改会如何影响其弹性，请将混沌工程作为 day-to-day运营的一部分。你可以用不同的方式实现混沌实验：
+ **Ad hoc** — 您可以将混沌实验作为一次性实验来解决特定的问题或问题。
+ **混乱游戏日** — 这些是结构化和重复发生的事件，旨在验证应用程序的可靠性和弹性。混乱游戏日的目的是识别人员、流程和技术中潜在的弹性问题或缺陷，并练习识别、缓解和响应事件的流程和程序。
+ **Chaos p** ipeline — 持续集成和持续交付（为下游组件注入越来越多的数据包丢失的CI/CD) is about building new features and deploying them safely throughout the environments. To implement chaos engineering experiments, create a chaos pipeline that's separate from your CI/CD pipeline. To understand why, let's assume that you want to add a single chaos engineering experiment to your CI/CD管道）。 该实验运行 3 次，每次需要 5 分钟才能完成。 每次运行时，丢包率从 10% 增加到 20% 再到 30%，实验总共需要 15 分钟才能完成。 如果您有 100 个 parallel 部署，则必须等待 1500 分钟才能完成单个实验。 如果你要进行 10 个实验，那么对你的开发者的影响将难以忍受。 在规模上，混沌工程需要自己的管道，允许您与软件开发生命周期 (SDLC) 流程并行运行实验。
+ Can@@ **ary 部署 — 加那利群岛**为混沌实验提供了测试环境。通过将一小部分流量引导到金丝雀服务或使用流量镜像或重播等方法，您可以验证新的基础架构或代码更改，而不会对稳定的生产系统产生任何影响。您可以针对金丝雀进行实验，并在必要时注入错误，因为您可以将影响范围限制在最终用户身上。
+ **预定实验**-您可以安排实验，以验证应用程序的可预测恢复机制。使用预定实验重播常见事件，以捕捉您的系统如何从自动扩展组后面的 EC2 实例、移除 Kubernetes pod 或删除 Amazon ECS 任务等事件中恢复。