本文介绍故障演练的产品架构,以下简称故障演练为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的后端服务,用来下发演练命令,管理演练数据,主要的功能特点如下:
功能完善:
通过流程编排组织故障演练场景。
资源管理帮助您更方便地了解演练的机器资源使用情况。
稳定可靠:
分布式的部署方式和完善的监控系统保证了演练功能的高可用性。
在服务不可用情况下,您可以通过手动执行命令恢复演练。
- 本页导读 (1)