文档首页> 云运维中心 COC> 最佳实践> 全旅程混沌工程方案
更新时间:2024-06-07 GMT+08:00

全旅程混沌工程方案

实践场景

某电商企业的新应用已经部署生产环境,计划正式启动接入和引流,其传统运维模式日常运维工作以被动救火为主,缺乏主动运维理念和工具能力;应用上线前无有效途径识别可用性问题,上线后可用性现状无法精确掌握,运维团队缺少故障应急能力和实战经验;希望通过混沌演练对应用在生产环境的架构韧性进行一次引流前的“排雷”和“验收”,以确保在正式引流时无重大稳定性风险。

解决方案

混沌演练驱动主动运维:从客户实际业务场景出发,按照风险分析、应急预案、演练执行、复盘改进4个维度,提供端到端混沌演练能力;

沉淀故障模式:首创基于容错视角的故障场景分析方法,沉淀华为云SRE多年的故障模式库,内置300个+典型故障模式;

图1 全旅程混沌工程
  • 风险分析:分析应用架构,找出风险点。
  • 应急预案:针对风险点,指定应急预案。
  • 故障演练:针对风险分析的结果和应急预案,指定演练方案,进行故障演练。
  • 复盘改进:演练完成后,对演练进行复盘总结,输出演练报告和改进事项。

核心优势

  • 首创基于容错视角的故障场景分析方法(FT-FMEA),逐步内置故障模式300+;
  • 支持多维度攻击场景,同时覆盖虚拟化和容器化;
  • 支持攻击流程自定义编排,配套客户个性化业务场景;

前提条件

已在应用管理中创建应用分组;

进行混沌演练的资源已安装UniAgent

步骤一:故障模式

确认演练目标主机或容器所属应用,事件级别是否正确。

  1. 登录COC
  2. 在左侧菜单栏选择“韧性中心>混沌演练”页面,选择“风险管理 > 故障模式”页签,单击“创建故障模式”。
    图2 故障模式页面
  3. 填写故障模式信息。
    图3 创建故障模式
    表1 故障模式参数说明

    参数名

    参数描述

    故障模式名称

    用户自定义故障模式名称

    所属应用

    演练目标所属的应用

    事件级别评估

    参考事件中心

    来源

    包括主动分析,已有故障

    应急预案名称

    参考应急预案章节

    场景分类

    故障属于哪种场景,包括冗余、容灾、过载、配置、依赖

    发生条件

    故障可能发生的条件

  4. 选择是否有应急预案。如果选择是,请输入应急预案名称搜索,选择对应的应急预案,单击“保存“。

步骤二:应急预案

选择要注入故障的目标机器所属应用

  1. 登录COC
  2. 在左侧菜单栏选择“韧性中心 > 应急预案”页面,选择“自定义预案”页签,单击“创建应急预案”。
    图4 应急预案页面
  3. 填写应急预案基本信息。
    图5 创建应急预案
    表2 应急预案参数说明

    参数名

    参数说明

    应急预案名称

    用户自定义此次演练的应急预案名

    所属应用

    演练目标主机或容器的所属应用

    应急预案概述

    描述应急预案主要信息

    应急预案附件

    针对演练异常情况的紧急恢复指导书

  4. 演练过程中可能出现不可预料的异常情况,用户须提前准备好应急措施,准备好紧急恢复指导书,单击“上传文件”,上传文件之后再单击“确认”保存。

步骤三:演练规划

您可以指定执行人来创建演练规划,执行人通过接单来创建演练任务,演练任务关联故障模式和区域。

  1. 登录COC
  2. 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,选择“风险管理 > 演练规划”页签。
    图6 演练规划页面
  3. 单击“创建演练规划”,选择故障模式,执行人,区域和计划演练时间 ,单击“确认”,即可完成演练规划的创建。
    图7 创建演练规划
  4. 演练规划指定的执行人在演练规划列表操作项里单击“接单”,进入创建演练任务页面,演练任务关联选择的故障模式和区域。并且可以对后续的演练任务进度进行跟踪。
    图8 通过演练规划接单进入创建演练任务页面

步骤四:演练任务

通过Cloud Operations Center创建一个演练任务。

  1. 登录COC
  2. 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,可以查看演练任务列表。
  3. 单击“创建演练任务”。
    图9 创建演练任务
  4. 填写演练任务基本信息,包括演练任务名称和期望恢复时长,单位为分钟。
    图10 演练任务基本信息
  5. 选择攻击任务,默认有1个攻击任务组,单击“添加新的任务组”可添加新的任务组,单击“添加一个新的攻击任务”弹出“添加新的攻击任务”界面。
    图11 选择攻击任务
  6. 添加新的攻击任务,可以选择创建攻击任务或者选择已有。之前没有创建过攻击任务,需要新建攻击任务,之前创建过攻击任务,可以选择已有。
  7. 创建攻击任务:包括两大步,先选择攻击目标然后选择攻击场景,不同的攻击目标对应不同的攻击场景。先填写攻击任务名称,攻击目标来源分为弹性云服务器 (ECS)和云容器引擎 (CCE)。如果选择弹性云服务器 (ECS),则在下方列表里选择对应的机器,单击“下一步”。
    图12 选择攻击目标为弹性云服务器 (ECS)
  8. 选择攻击场景并填写场景的攻击参数,单击“完成”即可。场景包括主机资源类、主机进程类、主机网络类。
    图13 弹性云服务器 (ECS)攻击场景
  9. 如果选择攻击目标来源为云容器引擎 (CCE),则需要选择应用、选择pods(依次选择集群、选择namespace、选择工作负载类型、选择工作负载),可以指定pod或者指定数量,单击“下一步”。
    图14 选择攻击目标为云容器引擎 (CCE),指定pod
    图15 选择攻击目标为云容器引擎 (CCE),指定数量
  10. 选择云容器引擎 (CCE)攻击场景并填写场景的攻击参数,单击“完成”即可。场景包括Pod资源类、Pod进程类、Pod网络类。
    图16 云容器引擎 (CCE)攻击场景
  11. 如果添加新的攻击任务方式为选择已经,则在下方攻击任务列表中选择之前创建的攻击任务,单击“确认”。
    图17 选择已有攻击任务
  12. 单击“完成配置”,即可完成演练任务的创建。
    图18 完成配置

步骤五:演练报告

演练结束后可以创建演练报告

  1. 登录COC
  2. 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,可以查看演练任务列表。
    图19 演练任务列表
  3. 单击“演练记录”,进入演练记录列表。在演练记录列表操作列可以单击“创建报告”,或在操作列单击“进度查看”,进入演练记录详情页,在右侧单击“创建演练报告”。
    图20 演练记录列表
    图21 演练记录详情
  4. 进入演练报告页面,更新报告名称。
    图22 演练报告详情
  5. 进入演练报告详情页面,输入演练时长,单击“确认”。
    图23 编辑演练时长

步骤六:复盘改进

新增演练报告后,可以新增改进事项。

  1. 登录COC
  2. 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,可以查看演练任务列表。
    图24 演练任务列表
  3. 单击“演练记录”。
  4. 进入演练记录列表,单击“进度查看/创建报告”。
    图25 演练记录列表
  5. 进入演练报告详情页面,单击右侧“创建改进事项”,输入改进事项相关信息。
    图26 创建改进单
    表3 改进事项字段说明

    字段名称

    说明

    改进名称

    改进事项的名称

    所属应用

    改进事项所属的应用

    改进类型

    改进事项的类型

    改进责任人

    改进事项的责任人

    期望完成时间

    改进事项的期望完成时间

    问题现象

    问题现象

    改进闭环标准

    改进事项闭环的标准