

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

# 规划你的 AWS FIS 实验
<a name="getting-started-planning"></a>

故障注入通过创建中断事件（如服务器故障或 API 限制）在测试或生产环境中对应用程序施加压力的过程。通过观察系统的响应，你可以进行改进。当您在系统上运行实验时，会帮助您以可控方式标识系统漏洞，以免影响依赖系统运行的客户。然后，您可以主动解决问题，预防不可预测的结果。

在开始使用 AWS FIS 进行故障注入实验之前，我们建议您熟悉以下原则和指南。

**重要**  
AWS FIS 对系统中的真实 AWS 资源执行实际操作。因此，在开始使用 AWS FIS 进行实验之前，我们强烈建议您先在预生产或测试环境中完成计划阶段和测试。

**Topics**
+ [基本原则和指南](#planning-basic-principles)
+ [实验规划指南](#planning-experiment-guidelines)

## 基本原则和指南
<a name="planning-basic-principles"></a>

在开始使用 AWS FIS 进行实验之前，请执行以下步骤：

1. **标识实验的目标部署**：首先标识目标部署。亚马逊建议您在首次实验时从预生产或测试环境开始。

1. **查看应用程序架构**：必须确保已标识了每个组件的所有应用程序组件、依赖项和恢复过程。首先查看应用程序架构。根据应用程序的不同，请参阅 [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/)。

1. **定义稳定状态行为**：根据技术和业务方面的重要指标（如延迟、CPU 负载、每分钟登录失败次数、重试次数或页面加载速度），定义系统的稳定状态行为。

1. **提出假设**：假设在实验过程中系统行为会如何变化。请按照以下格式提出假设：

   如果*fault injection action*已执行，则*business or technical metric impact*不应超过*value*。

   例如，对于身份验证服务可以假设：“如果网络延迟提高 10％，则登录失败次数增加不到 1％。” 实验结束后，您需要评估应用程序的弹性是否符合业务和技术预期。

我们还建议在使用 AWS FIS 时遵循以下指南：
+ 请务必在测试环境中开始试验 AWS FIS。切勿从生产环境开始。随着故障注入实验取得进展，您可以在除测试环境以外的其他可控环境中进行实验。
+ 从简单的小型实验开始，例如在某个目标上执行 **aws:ec2:stop-instances** 操作，从而增强团队对应用程序弹性的信心。
+ 故障注入会引发实际问题。请谨慎操作，同时确保在测试实例上进行首次故障注入，以免影响客户。
+ 测试，测试，再测试。故障注入旨在通过精心规划的实验在受控环境中实现。这有助于您对应用程序和工具承受动荡条件的能力建立信心。
+ 亚马逊强烈建议您先设置好性能出众的监控和警报程序，再开始实验。否则，您将无法理解或衡量实验造成的影响，这对于故障注入实践的持续开展至关重要。

## 实验规划指南
<a name="planning-experiment-guidelines"></a>

使用 AWS FIS，您可以 AWS 利用自己的资源进行实验，以测试应用程序或系统在故障条件下将如何运行的理论。

以下是规划 AWS FIS 实验的推荐指南。
+ **查看中断历史记录**：查看系统之前发生的中断和事件。这有助于您了解系统的整体健康状况和弹性。您应该先解决系统中的已知问题和漏洞，再在系统上运行实验。
+ **标识影响最大的服务**：查看服务，并标识在停机或无法正常运行时对最终用户或客户影响最大的服务。
+ **标识目标系统**：目标系统就是您要运行实验的系统。如果您不熟悉 AWS FIS 或者以前从未进行过故障注入实验，我们建议您首先在预生产或测试系统上运行实验。
+ **咨询团队**：询问团队顾虑。您可以提出假设以证明或反驳他们的担忧。也可以询问团队放心的方面。此问题可以揭示两种常见谬误：沉没成本谬误和确认偏见谬误。基于团队答案形成假设可提供有关系统状态现实的更多信息。
+ **查看应用程序架构**：查看系统或应用程序，并确保已标识了每个组件的所有应用程序组件、依赖项和恢复过程。

  我们建议您查看 Well-Archit AWS ected 框架。该框架可以帮助您为应用程序和工作负载构建安全高效、高性能和高弹性的基础设施。有关更多信息，请参阅 [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/)。
+ **确定适用的指标** — 您可以使用 Amazon CloudWatch 指标监控实验对您的 AWS 资源的影响。当您的应用程序处于最佳性能时，您可以使用这些指标来确定基准或“稳定状态”。然后可以在实验期间或实验结束后监控指标以确定影响。有关更多信息，请参阅 [使用 AWS Amazon 监控 FIS 使用量指标 CloudWatch](monitoring-cloudwatch.md)。
+ **为系统定义可接受的性能阈值**：标识代表系统可接受的稳定状态的指标。您将使用此指标来创建代表实验停止条件的一个或多个 CloudWatch 警报。如果触发警报，实验将自动停止。有关更多信息，请参阅 [AWS FIS 的停止条件](stop-conditions.md)。