全旅程混沌工程方案
实践场景
某电商企业的新应用已经部署生产环境,计划正式启动接入和引流,其传统运维模式日常运维工作以被动救火为主,缺乏主动运维理念和工具能力;应用上线前无有效途径识别可用性问题,上线后可用性现状无法精确掌握,运维团队缺少故障应急能力和实战经验;希望通过混沌演练对应用在生产环境的架构韧性进行一次引流前的“排雷”和“验收”,以确保在正式引流时无重大稳定性风险。
解决方案
混沌演练驱动主动运维:从客户实际业务场景出发,按照风险分析、应急预案、演练执行、复盘改进4个维度,提供端到端混沌演练能力;
沉淀故障模式:首创基于容错视角的故障场景分析方法,沉淀华为云SRE多年的故障模式库,内置300个+典型故障模式。
- 风险分析:分析应用架构,找出风险点。
- 应急预案:针对风险点,制定应急预案。
- 故障演练:针对风险分析的结果和应急预案,指定演练方案,进行故障演练。
- 复盘改进:演练完成后,对演练进行复盘总结,输出演练报告和改进事项。
核心优势
- 首创基于容错视角的故障场景分析方法(FT-FMEA),逐步内置故障模式300+;
- 支持多维度攻击场景,同时覆盖虚拟化和容器化;
- 支持攻击流程自定义编排,配套客户个性化业务场景;
步骤一:故障模式
确认演练目标主机或容器所属应用,事件级别是否正确。
步骤二:应急预案
选择要注入故障的目标机器所属应用
- 登录COC。
- 在左侧菜单栏选择“韧性中心 > 应急预案”页面,选择“自定义预案”页签,单击“创建应急预案”。
图4 应急预案页面
- 填写应急预案基本信息。
图5 创建应急预案
表2 应急预案参数说明 参数名
参数说明
应急预案名称
用户自定义此次演练的应急预案名
所属应用
演练目标主机或容器的所属应用
应急预案概述
描述应急预案主要信息
应急预案附件
针对演练异常情况的紧急恢复指导书
- 演练过程中可能出现不可预料的异常情况,用户须提前准备好应急措施,准备好紧急恢复指导书,单击“上传文件”,上传文件之后再单击“确认”保存。
步骤三:演练规划
您可以指定执行人来创建演练规划,执行人通过接单来创建演练任务,演练任务关联故障模式和区域。
- 登录COC。
- 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,选择“风险管理 > 演练规划”页签。
图6 演练规划页面
- 单击“创建演练规划”,选择故障模式,执行人,区域和计划演练时间 ,单击“确认”,即可完成演练规划的创建。
图7 创建演练规划
- 演练规划指定的执行人在演练规划列表操作项里单击“接单”,进入创建演练任务页面,演练任务关联选择的故障模式和区域。并且可以对后续的演练任务进度进行跟踪。
图8 通过演练规划接单进入创建演练任务页面
步骤四:演练任务
通过Cloud Operations Center创建一个演练任务。
- 登录COC。
- 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,可以查看演练任务列表。
- 单击“创建演练任务”。
图9 创建演练任务
- 填写演练任务基本信息,包括演练任务名称和期望恢复时长,单位为分钟。
图10 演练任务基本信息
- 选择攻击任务,默认有1个攻击任务组,单击“添加新的任务组”可添加新的任务组,单击“添加一个新的攻击任务”弹出“添加新的攻击任务”界面。
图11 选择攻击任务
- 添加新的攻击任务,可以选择创建攻击任务或者选择已有。之前没有创建过攻击任务,需要新建攻击任务,之前创建过攻击任务,可以选择已有。
- 创建攻击任务:包括两大步,先选择攻击目标然后选择攻击场景,不同的攻击目标对应不同的攻击场景。先填写攻击任务名称,攻击目标来源分为弹性云服务器 (ECS)和云容器引擎 (CCE)。如果选择弹性云服务器 (ECS),则在下方列表里选择对应的机器,单击“下一步”。
图12 选择攻击目标为弹性云服务器 (ECS)
- 选择攻击场景并填写场景的攻击参数,单击“完成”即可。场景包括主机资源类、主机进程类、主机网络类。
图13 弹性云服务器 (ECS)攻击场景
- 如果选择攻击目标来源为云容器引擎 (CCE),则需要选择应用、选择pods(依次选择集群、选择namespace、选择工作负载类型、选择工作负载),可以指定pod或者指定数量,单击“下一步”。
图14 选择攻击目标为云容器引擎 (CCE),指定pod
图15 选择攻击目标为云容器引擎 (CCE),指定数量
- 选择云容器引擎 (CCE)攻击场景并填写场景的攻击参数,单击“完成”即可。场景包括Pod资源类、Pod进程类、Pod网络类。
图16 云容器引擎 (CCE)攻击场景
- 如果添加新的攻击任务方式为选择已经,则在下方攻击任务列表中选择之前创建的攻击任务,单击“确认”。
图17 选择已有攻击任务
- 单击“完成配置”,即可完成演练任务的创建。
图18 完成配置
步骤五:演练报告
演练结束后可以创建演练报告
- 登录COC。
- 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,可以查看演练任务列表。
图19 演练任务列表
- 找到需要查看的演练任务,单击“操作”列“演练记录”,进入演练记录列表。在演练记录列表操作列可以单击“创建报告”,或在操作列单击“进度查看”,进入演练记录详情页,在右侧单击“创建演练报告”。
图20 演练记录列表
图21 演练记录详情
- 进入演练报告页面,更新报告名称。
图22 演练报告详情
- 进入演练报告详情页面,输入演练时长,单击“确认”。
图23 编辑演练时长
步骤六:复盘改进
新增演练报告后,可以新增改进事项。
- 登录COC。
- 在左侧菜单栏选择“韧性中心 > 混沌演练”页面,可以查看演练任务列表。
图24 演练任务列表
- 找到需要查看的演练任务,单击“操作”列“演练记录”。
- 进入演练记录列表,单击“进度查看/创建报告”。
图25 演练记录列表
- 进入演练报告详情页面,单击右侧“创建改进事项”,输入改进事项相关信息。
图26 创建改进单
表3 改进事项字段说明 字段名称
说明
改进名称
改进事项的名称
所属应用
改进事项所属的应用
改进类型
改进事项的类型
改进责任人
改进事项的责任人
期望完成时间
改进事项的期望完成时间
问题现象
问题现象
改进闭环标准
改进事项闭环的标准