混沌工程如何看作管道的一部分?

时间:2017-05-05 02:59:16

标签: continuous-integration pipeline chaos

Chaos engineering实践正在被广泛使用。一个常见的例子是Netflix'拥有Chaos Monkey。但是,Chaos Monkey通常是针对随机目标进行临时运行的。我很好奇混沌实验如何在典型的CI/CD pipeline中起作用,以提高特定服务的弹性。

  • 由于混乱实验(通常)需要一个功能齐全的环境,它们什么时候会运行?它会与测试或下游并行运行吗?
  • 你会对每次提交进行一次混乱实验吗?或者只是一些?
  • 让混乱实验运行多长时间? 60分钟的CPU峰值可能会干扰"快速失败"例如,方法。
  • 混乱实验是否会使管道失效?什么会构成失败'

1 个答案:

答案 0 :(得分:1)

我们刚刚开始进行混乱工程,但我会就你的问题提出一些想法。

至少有三种不同的实验类别:

  • 实例/容器会导致我们希望底层基础架构自动处理。
  • 更高级但相当本地化的失败,例如缓慢或不可用的依赖。
  • 数据中心或地区停机等大规模故障。

对于构建管道,最佳位置将位于中间(即更高级别但是本地化的故障),因为通常软件本身在响应故障中起作用。例如,软件可能包括一个跳闸,限制,自动故障转移等的断路器。如果这些是软件功能,那么它们可以工作也可以不工作,构建应该发现它。

如果失败的弹性是系统要求,那么,失败的实验将导致管道失败。例如,假设构建392具有正确工作的断路器,而构建393没有。这将是一个失败,因为构建从满足要求到没有。