编辑导语:任何一件事在完成之前,都需要做一个Checklist,从而检查错误,规避风险。这对于上线来说,尤其重要,稍不注意就可能损害到用户的体验感。本文作者从准备阶段、发布阶段、验证阶段和异常处理四个方面,具体的谈了谈如何做上线的checklist,希望看后能够对你有所帮助。
每次发版上线都是一个紧张且激动的时刻,为了保证上线顺利,可以早点回家睡觉,上线清单一定提前准备好,做到心中有数。
上线的checklist可简要分为以下3个部分:
一、准备阶段
1. 上线前培训
上线前给相关人员进行培训。
首先:需要给客户进行培训,让客户提前了解改动的功能点。避免出现功能上线后,客户并不知情,一脸蒙的情况。
其次:上线前也需要给客服等运维人员做好培训,并告知可能遇到的问题以及对应的解决策略。
2. 数据资料
历史数据是否做好备份,如果需要清空数据,需再次检查执行任务的代码是否准确,执行的时间是否明确。
新数据是否已经准备好,一旦发版成功后,可以及时导入新的数据。
3. 遗留问题
首先:确认全部上线的功能均经过测试验证。
其次:明确测试结果,了解目前SIT和UAT的情况,是否还有遗留待解决的问题;明确对应遗留问题的原因,以及对应问题的解决时间和责任。
如带问题部署到生产环境是否严重影响用户体验,这些都需要提前进行评估。
4. 压测情况
是否有做压测,基于压测结果核对能否支撑大规模的业务场景(需要业务方提供或基于历史数据进行模拟),并及时做好报备。
5. 埋点
对于新功能,上线前都需要做好埋点工作,并对同功能的历史数据做好记录,方便后续做数据分析和对比。
6. 文件报备
明确发版过程中是否需要停机,针对大公司,停机需要提前发停机发文,并告知各个相关系统。
7. 代码合并
需要对最终发布的代码做好打包合并,封版后不许改动,如果有则需要重新评估。
8. 代码review
开发负责人重新对合并的代码进行review,以免出现问题。
9. 配置文件
上线前的准备工作,配置文件、脚本、程序升级。
10. 小程序提审
如果是小程序,需要提前进行小程序的提审。
11. 日志
建立快速的日志清查和响应机制,一旦需要排查问题,这些日志就是找到原因的关键。
12. 人员安排
如果涉及到多个系统,一定要预留相关系统的责任人,并确保功能验证通过后再离开。
二、发布阶段
1. 发版顺序
本次功能上线涉及到的相关系统有哪些?
确定系统相互之间的依赖性,明确上线的前置条件及上线顺序;确定哪些系统需要先发,哪些后发。
2. 调度执行
夜间是否有调度程序问题?(定时任务)调度什么时候开始执行?以及什么是时候终止?停止的调度什么时候要回写配置和启动?
3. 发版模式
确定采取的发版模式是什么?如灰度发版。
三、验证阶段
1. 功能验证清单
可以分为两版:
1)主流程版
针对核心功能进行快速验证。
2)详细版本
可以在主流程走通的情况下,再逐个验证。
测试人员需要基于清单来验证,可以更加高效,准确,以免遗漏关键核心验证点。
2. 及时输出缺陷
验证过程中,及时报备问题,并告知对应的开发,把问题阐述清楚,附带截图;让开发可以清晰是什么问题,方便快速排查;测试人员需阶段性地同步验证进度和问题解决进展。
四、异常处理
回滚方案:
做好回滚的准备,相关责任人需明确该功能上线的回滚策略。并根据日常的用户量,评判最晚可以接受的发版时间。
在不大规模影响生产环境用户的情况下,明确最晚可以接受的系统切换时间;一旦到了时间,如没有办法解决发版中的严重阻断性问题,采取版本回退方案。
五、小结
上线Checklist一定是不断总结,不断完善的清单列表,并根据上线需求的类别针对性地进行调整。
当然,心态和清晰的头脑也是至关重要的。发版期间遇到问题时,一定要权衡利弊,优先处理问题,而不是规避责任。毕竟发版时间有限,一切都以风险最低,用户体验最佳为原则。