混沌工程 | 定义、由来及原理
昨天听了一个关于混沌工程(Chaos Engineering)的分享,觉得深受启发,在这里初步归纳汇总一下。
定义
混沌工程是一种在故障发生之前识别故障的严格方法。通过主动测试系统在压力下的响应方式,您可以在故障出现之前识别并修复故障。
混沌工程让您可以将您认为会发生的事情与系统中实际发生的事情进行比较。您实际上是“故意破坏事物”来学习如何构建更具弹性的系统。
Chaos Engineering is the discipline of experimenting on a systemin order to build confidence in the system’s capability to withstand turbulent conditions in production.
随着微服务和分布式云架构的兴起,Web 变得越来越复杂。我们都比以往任何时候都更加依赖这些系统,但故障变得更加难以预测。
公司需要一个解决方案来应对这一挑战——等待下一次代价高昂的停机不是一种选择。为了迎接挑战,越来越多的公司开始转向混沌工程。
历史由来
最早可以追溯到Netflix Eng Tools 团队创建的Chaos Monkey。Chaos Monkey 是为了响应 Netflix 从物理基础设施向 Amazon Web Services 提供的云基础设施的转变,以及确保丢失 Amazon 实例不会影响 Netflix 流媒体体验的需要而创建的。
混沌工程的原理是什么?
混沌工程涉及运行深思熟虑、有计划的实验,这些实验教会我们系统在面对故障时的表现。
这些实验遵循三个步骤:
您首先要形成一个假设,即当出现问题时系统应该如何表现。
然后,您设计最小的实验来在您的系统中进行测试。
最后,您测量每一步失败的影响,寻找成功或失败的迹象。实验结束后,您可以更好地了解系统的实际行为。