本文向您介绍故障演练的产品架构,以下简称故障演练为 AHAS Chaos。
产品架构如下图所示:

AHAS Agent
AHAS Agent 安装在指定的目标机器上,用来执行服务端下发的故障注入命令以及采集演练相关的必要信息,比如 CPU、内存占用等,主要有以下特点:
- 快捷高效
- 支持在控制台一键安装 AHAS Agent,如果是公网则需要用户手动安装。
- 安全可靠
- Agent 本身对应用无入侵。除了演练的故障场景需要作用于应用进程的情况例外,例如 Java 类的故障场景。
- 网络异常可自动重试。
- 数据传输通道严格加密,保证数据安全。
- 完善的自我保护
- 实时监控系统资源,不占用过多带宽。
- 非用户手动卸载情况下的异常退出可以自我保活,保证 AHAS Agent 在主进程消失的情况下, 可以自动重启。
ChaosBlade
ChaosBlade 是 AHAS Agent 的核心组件,用来解析、校验和执行服务端下发的故障指令,并且已正式对外开源,具有以下特点:
- 简单易用
- 清晰易懂的混沌工程实验模型,易于理解。
- 自带完善的命令行工具,方便本地调试。
- 功能稳定
- 在阿里内部被广泛使用,已通过真实环境的严格考验。
- 活跃的开源社区确保了功能的不断迭代和缺陷的快速修复。
- 场景丰富
- 基础资源:CPU、内存、网络、磁盘、进程等实验场景。
- Java 应用:数据库、缓存、消息、JVM 本身、微服务等,还可以指定任意类方法注入各种复杂的实验场景。
- 云原生场景:
- 节点上 CPU、内存、网络、磁盘、进程实验场景
- Pod 网络和 Pod 本身实验场景例如删除 Pod
- 容器的实验场景例如删除容器、容器内 CPU、内存、网络、磁盘、进程等实验场景
AHAS Service
AHAS Chaos 的后端服务,用来下发演练命令,管理演练数据,主要的功能特点如下:
- 功能完善
- 通过流程编排来组织故障演练场景。
- 资源管理帮助您更方便的了解演练的机器资源使用情况。
- 稳定可靠
- 分布式的部署方式和完善的监控系统保证了演练功能的高可用性。
- 在服务不可用情况下,您可以通过手动执行命令来恢复演练。