
# Runbook设计原则
Runbook是上云迁移过程中一个非常重要的文档，用于指导切换当天多人协同进行切换操作，规定了业务切换的流程和详细步骤。Runbook主要包括两部分，Runbook checklist和Runbook操作步骤，下面将从几个方面详细介绍如何设计切换Runbook。
Runbook设计原则如下：
- 一个Runbook对应一次切换操作。
- Runbook要详细描述切换步骤、操作人、确认人，并预估开始时间、结束时间、执行时长。
- Runbook执行步骤要尽量细化，确保每个执行步骤对应1个操作人和1个确认人，尽量避免发生1个步骤多个人确认的场景。
- Runbook要细化到每个执行命令，尽量脚本化或工具化，操作人直接执行即可，不需要现场临时定制，避免出现人为事故。
- Runbook步骤中有并行操作和串行操作，要标记好串并行顺序，避免人为操作不当影响切换时长和切换结果。
- Runbook的每个切换操作都可能会执行失败，要提前分析每个步骤发生执行失败时的决策项，细分失败场景，决策是回退还是继续进行，防止切换当天决策组讨论时间较长，无法决策的情况发生。
回退决策点设计原则如下：
- 每个切换阶段设计最晚的执行完时间，超时需要决策是否进行回退。
- 核心表数据比对结果不一致，需要决策是否回退。
- 核心的P0测试用不通过，需要决策是否回退。
- 性能验证不达预期，需要决策是否回退。
 
