基于阿里巴巴多年业务的真实线上故障库的积累,AHAS 故障演练模块为您预定义了丰富的测试任务,检验应用的高可用能力。目前,仅支持对部署在阿里云 ECS 实例上的应用进行故障演练。

前提条件

安装 AHAS 探针,参见阿里云 ECS 主机接入

背景信息

一次完整的故障演练包括以下四个阶段:
  • 准备阶段:故障注入前的准备工作,可根据执行阶段所选的活动,自动添加准备阶段所依赖的演练活动,您无需手动选择。

    例如,当故障注入影响 Java 进程时,则需要安装特定的 Agent,对故障注入所需的类进行字节码的增强;当故障注入仅影响 I/O、CPU、Disk 等,则不需要安装 Agent。

  • 执行阶段:执行故障注入。您可以同时选择多个故障类型。参见演练活动参数说明
  • 检查阶段:检查故障注入的效果是否符合预期。当故障注入成功之后,通过检查阶段的活动,可以自动检查故障注入是否生效。
  • 恢复阶段:清除故障。当故障演练自动结束、您主动终止或者演练中的任何环节出现异常后,系统都会进入恢复阶段,自动清除相应的故障,使故障演练对象恢复演练前的状态。
说明
  • 通常,执行阶段和恢复阶段至少有一个演练活动,其他阶段根据需要配置。
  • 在任何阶段选择一个演练活动后,AHAS 将自动识别并添加其他阶段的依赖活动。

    例如,在执行阶段选择 CPU 满载,则准备阶段会自动添加检查探针版本,恢复阶段会自动添加恢复 CPU 满载

主要的故障类型和演练活动
故障类型 故障演练活动
CPU CPU 满载
Disk 填充磁盘、磁盘 I/O 高
Docker 删除 Docker 容器
Network 域名访问不通、网络延迟、网络丢包
Process 杀进程

操作步骤

  1. 登录 AHAS 控制台,在左侧导航栏中选择故障演练 > 演练列表
  2. 故障演练页面右上角,单击新建演练
  3. 新建演练页面,配置该演练场景的基本信息:
    配置项 配置说明
    演练名称 填写演练名称。
    演练描述 为该演练添加描述。
    添加标签 自定义演练标签,便于演练的查询和统计。

    添加标签框中,输入标签内容,按回车键完成输入。一个演练场景中,最多可输入五个标签。

    标签将自动保存,下次可通过搜索或直接从下拉列表中选择已有的标签。

  4. 在执行阶段下,单击 +新建活动,从列表中选择目标活动,例如填充磁盘,单击添加
    系统将自动添加依赖活动,例如恢复阶段的恢复磁盘填充

    在准备、执行、检查或恢复阶段下,重复以上步骤,可添加多个演练活动。

  5. 单击已添加的演练活动,例如填充磁盘,在右侧配置面板中配置相关参数。
    参数因演练活动而异。具体参数配置说明参见演练活动参数说明
  6. 演练对象下拉列表中,选择一个或多个主机,注入故障。勾选使用相同配置,所有活动都会自动添加相同 ECS 实例作为演练对象。
    说明 已安装 AHAS 探针且探针处于在线状态的主机,将出现在演练对象的下拉列表中。
  7. 通用配置区域,进行配置:
    1. 输入该活动执行前、后等待的时长,单位是毫秒。
    2. 选择是否手工推进演练
      • :即手动方式,当前演练活动执行完毕后,需要您手动触发去执行下一个演练活动。手动推进的方式适合需要持续观察故障注入现象的演练场景,例如与 CPU、磁盘相关的活动,通常需要人工确认故障注入生效之后,才会进行下一步。
      • :即自动方式,当前演练活动执行完毕后,自动执行下一个演练活动。
    3. 单击确定
  8. 可选: 鼠标悬停在演练活动卡片上,单击删除图标,可删除不需要的演练活动。
  9. 单击新建演练页面右上角的保存
    说明 如未保存,系统将在浏览器中默认保存未完成的演练内容。当您再次进入新建演练页面时,可以选择继续编辑上次的演练草稿。

    返回演练列表中,您可以查看刚刚创建的演练。

    系统根据您选择的演练活动,自动添加涉及场景的标签,如 C (CPU)、D(Disk)、N(Network)等,方便您快速预览演练类型。

下一步

演练创建成功后,您可以:
  • 执行演练

    在演练列表中的某个演练的操作列,单击开始,执行演练。具体参见执行演练

  • 查看并编辑演练详情

    在演练列表中的某个演练的操作列,单击查看详情,可查看演练内容。单击页面右上角编辑,可修改演练内容。

  • 拷贝演练

    在演练列表中的某个演练的操作列,单击拷贝拷贝一个同名的演练,您可以在此基础上编辑演练内容。

  • 删除演练

    在演练列表中的某个演练的操作列,单击删除