通过 Fault Injection Testing,您可以进行故障注入实验,这是一种向系统引入故障以测试其弹性的方法,可避免故障导致影响客户的真实意外失败。借助 Fault Injection Testing,您可以将故障注入到 Google Cloud 环境中的各种组件,以确保您的应用以可预测的方式处理这些故障。
在 Fault Injection Testing 的初始版本中,故障通常等同于目标资源的故障。如果您已在应用中设计了容错功能,这些故障应会触发应用将流量重定向到运行状况良好的实例。
您需要在注入故障之前、期间和之后观察应用,以验证应用是否按预期处理了故障。
为何要使用故障注入测试?
借助 Fault Injection Testing,您可以 Google Cloud 在各种故障场景下对应用的弹性进行实验。此频谱的主要部分是运行实验来近似模拟 Google Cloud 可用区和区域故障,这些故障很难或无法完全自行运行。此外,故障注入测试还是一种有价值的开发和改进工具,可让您在将设计的恢复机制引入生产环境之前对其进行实验。在问题出现在生产环境中之前发现问题,有助于更快地改进设计、避免代价高昂的停机和声誉损失,并提升您的整体体验。
如果没有 Google Cloud原生故障注入产品,您就必须自行进行实验。自行进行实验存在问题 -Google Cloud 是一个共享环境,在许多情况下,您可能无法直接访问底层服务和基础架构。这种情况可能会导致实验不足、费力,最终可能无法有效实现正确实验应用恢复能力的目标。 Fault Injection Testing 有助于您减少自动化这些实验所需的工作量,让您能够诱发原本无法诱发的故障模式,并提高实验效果的保真度。
对于受监管的客户,定期开展实验通常是保持符合行业监管机构要求的必要条件。在这些情况下,实验通常以灾难恢复测试的形式进行,表明某个可用区或区域的故障不会阻止应用继续有效运行。
如何使用 Fault Injection Testing
在使用 Fault Injection Testing 之前,请确保满足以下条件:
- 要进行实验的环境具有一定的冗余。注入故障后,此环境的应用可以继续在冗余基础架构上运行。
- 对于 Google Cloud 资源的管理员或所有者:请仔细考虑哪些人有权设置和运行 Fault Injection Testing 实验。导致 Google Cloud 环境中的运行基础设施组件出现故障会造成中断。因此,您必须仅向了解其云环境的架构方式以及如何安全地对该架构的弹性进行实验的运维人员授予权限,以便他们能够以不会造成意外中断的方式配置实验。
使用 Fault Injection Testing 需要设置实验。如需设置新实验,您需要先创建实验模板,该模板用于定义要注入的故障和目标资源。接下来,您将基于模板运行实验。实验是指在模板中定义的一组操作,这些操作将针对您在模板中选择的资源运行。