编辑导语:任何一件事在完成之前,都需要做一个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一定是不断总结,不断完善的清单列表,并根据上线需求的类别针对性地进行调整。

当然,心态和清晰的头脑也是至关重要的。发版期间遇到问题时,一定要权衡利弊,优先处理问题,而不是规避责任。毕竟发版时间有限,一切都以风险最低,用户体验最佳为原则。

本文由@黑心老巫婆 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Pexels,基于CC0协议