故障注入和混沌工程

如果你想提升生产环境中的测试,可以实践故障注入——也称为混沌工程。这意味着在你的生产系统中注入故障,以观察系统在压力下的表现,以及故障转移机制和断路器是否有效。可能的故障包括高 CPU 负载、高内存使用、磁盘 I/O 压力、低磁盘空间,或者关闭或重启某个服务或整个机器。其他可能的故障包括进程被终止、系统时间被更改、网络流量丢失、延迟注入,以及 DNS 服务器被阻塞。

实践混沌工程可以增强你的系统的弹性。这不能与传统的负载测试或性能测试相提并论!

不同的工具可以帮助你进行混沌工程。例如,Gremlin([https://www.gremlin.com/](https://www.gremlin.com/))是一个基于代理的 SaaS 服务,支持大多数云服务提供商(Azure、AWS 和 Google Cloud)以及所有操作系统,也可以与 Kubernetes 一起使用。Chaos Mesh([https://chaos-mesh.org/](https://chaos-mesh.org/))是一个开源解决方案,专门为 Kubernetes 设计。Azure Chaos Studio([https://azure.microsoft.com/en-us/services/chaos-studio](https://azure.microsoft.com/en-us/services/chaos-studio))是一个专门为 Azure 设计的解决方案。最适合你的工具取决于你支持的平台。

混沌工程可以非常有效地增强系统的弹性,但它应该限制在金丝雀环境中进行,这些环境对客户的影响较小或没有影响。