# 通过COC进行内存高使用率故障演练
#### 实践场景
某电商企业的新应用已经部署生产环境，计划正式启动接入和引流，其传统运维模式日常运维工作以被动救火为主，缺乏主动运维理念和工具能力；应用上线前无有效途径识别可用性问题，上线后可用性现状无法精确掌握，运维团队缺少故障应急能力和实践经验；希望通过混沌演练对应用在生产环境的架构韧性进行一次引流前的"排雷"和"验收"，以确保在正式引流时无重大稳定性风险。
#### 解决方案
混沌演练驱动主动运维：从客户实际业务场景出发，按照风险分析、应急预案、演练执行、复盘改进4个维度，提供端到端混沌演练能力；
沉淀故障模式：首创基于容错视角的故障场景分析方法，沉淀华为云SRE多年的故障模式库，内置300个+典型故障模式。
- 风险分析：分析应用架构，找出风险点。
- 应急预案：针对风险点，制定应急预案。
- 故障演练：针对风险分析的结果和应急预案，制定演练方案，进行故障演练。
- 复盘改进：演练完成后，对演练进行复盘总结，输出演练报告和改进事项。
 
#### 核心优势
- 首创基于容错视角的故障场景分析方法（FT-FMEA），逐步内置故障模式300+；
- 支持多维度攻击场景，同时覆盖虚拟化和容器化；
- 支持攻击流程自定义编排，配套客户个性化业务场景；
 
#### 前提条件
- 已在[应用管理](https://support.huaweicloud.com/usermanual-coc/coc_um_03_02.html)中创建应用分组；
- 进行混沌演练的资源已[安装UniAgent](https://support.huaweicloud.com/usermanual-coc/coc_um_03_01_02.html)。
 
 #### 步骤一：创建故障模式
确认演练目标主机或容器所属应用，事件级别是否正确。
1. 登录[云运维中心](https://console.huaweicloud.com/coc/?#/console/home)。
2. 在左侧菜单栏选择"**韧性中心\>混沌演练**"，进入混沌演练页面。
3. 在故障模式页签中，单击"**创建故障模式**"。
4. 参考[表1]填写故障模式信息。
   本示例中仅解释必要参数，其余配置可保留默认值。
    表1创建故障模式参数说明 
   | **参数**  | **说明**                                                                                |
   |:---|:---|
   | 故障模式名称 | 自定义故障模式名称，如演练测试。                                                                    |
   | 场景分类     | 选择"节点"。节点故障包括主机的CPU和内存过载或进程故障，从而会导致业务异常，如CPU、内存过载、进程状态异常等。                           |
   | 事件级别    | 选择"P4"。 严重程度默认"P1"最严重，"P5"最轻微。                        |
   | 来源      | 选择"主动分析"，主动对应用架构、运行环境等进行风险分析后，形成故障模式。                                               |
   | 攻击场景    | 在下拉列表选择攻击场景，如内存使用率加压。                                                                |
   | 企业项目    | 在下拉列表选择故障模式资源所属的企业项目，如default。                                                       |
   | 所属应用   | 在下拉列表选择演练目标所属的应用，如COC。                                                              |
   | 是否有应急预案  | 选择"否"。                                                                               |
   | 发生条件  | 请填写故障可能发生的条件，如业务量短期流量突增，超过业务设计规格。 限制长度最长1024个字符。     |
   | 预计故障现象 | 请填写故障发生时可能的业务现象，如业务所在VM内存占用过高，导致业务请求响应慢。 限制长度最长1024个字符。 |
   | 客户影响   | 请填写故障造成的客户影响，如业务请求响应慢或流控生效期间部分业务请求失败。 限制长度最长1024个字符。  |
      
   
5. 选择是否有应急预案。如果选择是，请输入应急预案名称搜索，选择对应的应急预案，单击"保存"。
 
#### 步骤二：创建应急预案
1. 在左侧菜单栏选择"**韧性中心 \> 应急预案**"，进入应急预案页面。
2. 在"**自定义预案** "页签中，单击"**创建应急预案** "。
   图1应急预案页面   
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002427706378.png "点击放大") 
3. 设置"基本信息"。
   本示例中仅解释必要参数，其余配置可保留默认值。
   表2基本信息参数说明 
   | **参数**  | **说明**                      |
   |:---|:---|
   | 应急预案名称 | 自定义应急预案的名称，如应急预案01。            |
   | 企业项目    | 在下拉列表选择应急预案所属的企业项目，如default。 |
   | 所属应用  | 选择要注入故障的目标实例所属应用，如COC。      |
      
   
4. 设置"故障处理"。
   - 应急预案类型：选择"自动化预案"。
   
   - 处理方式：选择"脚本"，并在下拉列表选择脚本对应。
    
5. 单击"确定"，完成应急预案创建。
 
 #### 步骤三：创建演练规划
您可以指定执行人来创建演练规划，执行人通过接单来创建演练任务，演练任务关联故障模式和区域。
1. 在左侧菜单栏选择"**韧性中心 \> 混沌演练**"，进入混沌演练页面。
2. 选择"**演练规划** "页签，单击"**创建演练规划**"。
3. 选择[步骤一：创建故障模式]中创建的故障模式，设置执行人，区域和计划演练时间 。
   图2创建演练规划   
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002428270810.png "点击放大") 
4. 单击"**确定**"，即可完成演练规划的创建。
 
 #### 步骤四：创建演练任务
1. 执行人在"**韧性中心 \> 混沌演练** **\> 演练规划** "页面，选择[步骤三：创建演练规划]中创建的演练规划，单击操作列"**接单**"，进入创建演练任务页面。
2. 填写演练任务基本信息。
   表3基础信息参数说明 
   | **参数**    | **说明**                                                                                                     |
   |:---|:---|
   | 演练任务名称   | 自定义演练任务的名称，本示例使用默认名称。                                                                                       |
   | 期望恢复时长（分钟） | 从故障发生到故障恢复的预期时间，单位为分钟，如3分钟。 在故障注入之后，应用自恢复或在执行应急预案时恢复到正常状态的期望时间，该时间不会对演练任务产生影响。 |
      
   图3演练任务基本信息   
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002428227856.png "点击放大") 
3. 演练任务中默认有1个攻击任务组，单击"**添加新的攻击任务** "，弹出"添加新的攻击任务"界面。
   图4添加攻击任务   
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002461761029.png "点击放大") 
4. 参考[表4]设置攻击任务。
    表4添加新的攻击任务参数说明 
   | **参数**  | **说明**                  |
   |:---|:---|
   | 云厂商       | 选择云厂商类型，如华为云。             |
   | 攻击目标来源 | 选择目标实例的来源，如弹性云服务器（ECS）。 |
   | 攻击任务名称  | 使用系统自动成为默认名称。          |
   | 攻击目标  | 选择需要演练的ECS实例。              |
      
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002461805017.png "点击放大")
   
5. 单击"下一步"，设置"选择攻击场景"。
   表5选择攻击场景参数说明 
   | **参数** | **说明**                                                                                                                                                                                                    |
   |:---|:---|
   | 攻击类型     | 根据攻击场景的类型区分，如主机类型。                                                                                                                                                                                          |
   | 攻击场景      | 选择对应的攻击场景，如内存使用率加压。                                                                                                                                                                                        |
   | 攻击参数     | 根据不同的攻击场景，配置相应的攻击参数。 - 内存使用率（百分比）：80  - 故障持续时长（秒）：60   |
      
   
6. 单击"下一步"，进入监控任务配置。
7. 设置监控任务。
   图5设置监控任务   
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002461770049.png "点击放大")
   - 稳态指标选择内存使用率，阈值区间为1\~96。
   
   - 监控指标选择内存使用率，阈值区间为0\~60。
    
8. 单击"**完成**"，完成攻击任务添加。
9. 单击"**确定**"，完成演练任务创建。
 
#### 步骤五：启动演练任务
对已创建的演练任务，启动演练。
1. 选择[步骤四：创建演练任务]中创建的演练任务，单击操作列"**启动演练**"。
2. 在弹框中，单击"**确定** "，启动演练任务。
   启动演练后，自动跳转至演练详情页面，混沌演练平台将按照演练任务设置自动进行故障注入。
   
 
#### 步骤六：创建演练报告
演练结束后可以创建演练报告
1. 等待演练任务执行完成，在演练详情页面右上角单击"**演练报告**"。
2. 单击"**编辑时长** "，修改实际恢复时长。
   图6修改实际恢复时长   
   ![](https://support.huaweicloud.com/bestpractice-coc/zh-cn_image_0000002428270826.png "点击放大")
   表6修改实际恢复时长参数说明 
   | **参数**    | **说明**                                                        |
   |:---|:---|
   | 故障发现时长(分钟)   | 请填写故障发现时长。 从故障注入完成到收到故障告警的时间。 |
   | 故障定界时长(分钟) | 请填写故障定界时长。 从收到告警到完成故障定界的时间。   |
   | 故障恢复时长(分钟) | 请填写故障恢复时长。 从完成故障定界到故障恢复的时间。     |
      
   
3. 单击"**确定** "，完成实际恢复时长修改。
   修改实际恢复时长后，系统将自动生成恢复能力评分。
   
4. 在改进事项模块中，单击"**创建改进事项** "，在弹框中设置改进单信息。
   表7创建改进单参数说明 
   | **参数**    | **说明**                                                                                            |
   |:---|:---|
   | 改进名称    | 自定义改进单的名称，如演练测试改进。 名称由中文、字母、数学、中划线、下划线和空格组成，且不能以空格开头或结尾，最大长度支持64个字符。 |
   | 所属应用   | 在下拉列表选择改进单涉及的应用，如COC。                                                                               |
   | 改进类型    | 在下拉列表选择改进类型，如运维改进。                                                                               |
   | 改进责任人    | 在下拉列表选择责任用户。                                                                                     |
   | 改进验收人   | 在下拉列表选择验收用户。                                                                                       |
   | 期望完成时间 | 请填写期望完成时间（精确到日），所选日期不得早于今日。                                                                     |
   | 问题现象    | 请填写事件相关的问题现象。 限制长度最长1000个字符。                                         |
   | 改进闭环标准 | 请填写改进闭环标准。 限制长度最长1000个字符。                                        |
      
   
5. 单击"**确定** "，完成改进单创建。
   创建完成后，改进事项列表会默认展开详情内容，包含处理信息和验证信息。
   
 
