正文
Network Gremlins:黑洞,丢弃所有匹配网络流量;延迟,对所有匹配的出口网络流量注入延迟;包丢失,对所有匹配的出口网络流量加入网络包丢失;DNA,阻止对 DNS 服务器的访问;
State Gremlins:关机,支持用户开展主机操作系统的重启或关闭测试。例如,当一到多个集群内机器失联时,系统的行为如何?时间旅行,更改主机的系统时间,可用于模拟调整夏令时,以及其它与时间有关的事件。杀掉进程,一种杀掉特定进程的攻击,可用于模拟应用或依赖崩溃的情况。
攻击可以是即席的(ad-hoc)、程序化的或按计划执行的。攻击也可以被安排在特定日期和特定的时间窗口内执行,并可设置计划生成的最大攻击次数。
Gremlin 提供了一个“撤消”按钮,一旦出现问题,会自动清除攻击测试。安全是“完全重新建立的”,其中使用了最低的权限、多重身份验证、审计和基于角色的访问控制(RBAC)。
Gremlin 的核心价值主张在于,允许工程师启动、控制和观察系统在攻击可引发的各种故障情况下的行为。Gremlin 并不提供自动化金丝雀测试(Canarying),例如类似于 Barometer 提供的功能,也不提供自动故障检测,例如类似于 LightStep 提供的功能。
它所提供的是一组全面的故障原语,可用于设计实验,并观察故障在一个复杂分布式系统中的影响情况。Gremlin 不需要修改部署流水线,也不需要修改网络基础架构,因此更便于在一系列的基础架构和部署范例中使用,例如裸机、云 /IaaS 或容器等。
近期,InfoQ 与 Gremlin 公司的首席执行官兼创始人 Kolton Andrus 进行了一次座谈,讨论了混沌工程在软件系统中的作用、可恢复性测试的价值所在,以及 Gremlin 平台的未来。