
# 切换演练
在功能测试和性能测试完成之后，如果云端应用程序和服务运行稳定，就可以开始进行业务切换了。
业务切换是将业务从源端旧系统切换到云上新系统的过程，需要仔细规划和协调，以确保切换过程中不会影响数据的完整以及业务运行。
一般情况下，业务切换需要进行一定的时间，逐步切换流量，同时关闭旧的业务系统。通过这个过程，可以实现从旧系统向新系统的平稳过渡，并最终将业务成功迁移上云。在正式切换前通常会进行切换演练，然后才是正式切换。
#### 为什么要演练
切换演练在上云迁移过程中扮演着至关重要的作用，通过一次或多次演练为正式切换提供信心和保障。它的主要意义在于可以最大程度地识别问题和风险，提高大家操作熟练度，减少中断时长，确保切换过程的顺利进行。
1. **预防问题：**演练可以帮助发现可能存在的问题，比如切换过程中的应用和批处理任务启停顺序问题、网络配置问题、数据一致性对比等问题，从而提前进行预防和解决。
2. **团队配合：**演练可以让团队成员熟悉切换的全流程和切换步骤，从而更好地协同工作，提高团队配合效率。
3. **优化Runbook：**演练过程中可以识别出切换步骤的问题，比如整体串并行顺序问题以及某个步骤执行时间过长等问题，可以通过演练复盘优化Runbook步骤和时长，提高正式切换步骤的正确性和合理性，提高切换效率。
4. **预估正式切换时长：**通过演练，记录每个执行步骤的开始时间、结束时间和执行时长，可以更加准确地预估正式切换的时长，从而合理规划对外停机公告时间，协调周边团队的配合时间。
5. **减少正式切换的中断时间：** 通常一个大型系统的切换要200多个步骤，中间有并行操作和串行操作交叉进行，涉及角色和人员也较多，可以通过一次或多次演练，提高切换操作的熟悉度和各方的配合默契度以及问题处理的效率，对于一些操作时长比较长的步骤，还可以通过自动化脚本代替人工操作或者持续优化脚本提高执行效率，从而减少正式切换的中断时长。以某大型零售平台上云为例，采用所有业务系统一把切的方案，通过4次演练，正式切换的时间比预期缩短了40%。
   图1演练效果展示   
   ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002142361322.png "点击放大") 
6. **识别未知问题：**演练环境可以帮助发现一些未识别到的问题，比如某系统在切换过程中，涉及的应用都已关停，但是仍然有session在连接数据库，导致数据一直无法静止，定位发现某第三方店铺在店铺关停后仍然在做一些操作等。企业可以根据识别的未知问题，有针对性的调整和优化切换方案，提高切换上线的成功率。
 
#### 演练流程
建议正式切换前做2\~3次演练，切换演练的流程如下：
图2演练流程   
![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002177562365.png "点击放大")
1. **演练准备**
   演练的准备内容主要包括如下几个方面：
   

2. **演练地点或会议室的准备：**提前确定演练的地点（几楼）和哪个会议室，提前进行会议室的预定。
3. **人员准备和角色分工：** 明确参与演练的各方人员及其责任分工，演练人员和最终切换操作人员尽量保持一致。演练角色可以参考[设计Runbook](https://support.huaweicloud.com/usermanual-caf/caf_01_0146.html)的Runbook角色设计。
4. **演练Runbook准备：**按照演练环境细化演练Runbook，并组织多轮评审，最终定稿。
5. **演练环境准备：** 演练需要有演练的源端和演练的目的端。演练环境的源端需要能真正的模拟生产环境，数据尽量和生产保持一致。提前进行数据的预置，环境的检查等。
   演练环境的准备有2种方案，企业可以结合实际情况，选择合适的方案：
   1. 若企业没有能真正模拟生产的测试环境做演练，则需要在华为云搭建一个完整的源端、目的端环境，用于模拟演练源端到目的端的切换步骤。
      图3演练环境   
      ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002177520757.png "点击放大") 
   
   2. 若企业源端有测试或预生产环境可以用作演练的源端，则只需在华为云搭建一套目的端即可。演练的目的端也可以复用华为云的生产环境，但是需要注意和生产环境要做好隔离，否则可能演练过程影响生产，造成重大事故。
      图4演练环境   
      ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002142203278.png "点击放大") 
    

6. **演练实施和复盘**
- **演练实施通常按照如下步骤进行：**
  1. 引导员宣读演练纪律和注意事项
  
  2. 引导员按照Runbook步骤宣读操作任务、操作人、确认人（注意：可能涉及多任务并行执行）。
  
  3. 操作人按照Runbook执行此步骤
  
  4. 确认人进行复核确认
  
  5. 确认人复核确认后，及时通报给引导员（注意：若一个步骤涉及多个确认人，为了方便引导员实时查看执行进展，确认人确认完毕后，将自己的完成状态登记在在线共享文档中）
  
  6. 如此循环，直到在引导员的引导下完成所有步骤的执行
  
  7. 演练结束后，操作人和确认人要及时记录操作过程中的问题，为演练复盘做准备。
   

- **演练复盘通常按照如下步骤进行：**
  1. 把演练记录的问题进行归类整理，包括技术问题和演练组织方面的其他问题
  
  2. 组织演练复盘，回顾每一个问题的事件、分析根因、讨论下一步改进措施
  
  3. 具体改进措施落实到人，更新到下次的演练Runbook或正式Runbook中
   
 
