通过线上巡检,保障生产环境质量
上一篇文章分享了我对于线上质量保障工作落地要面临四大挑战,以及测试右移常用的一些方法和手段,这篇文章重点聊聊线上自动化巡检相关的话题。
关于线上环境自动化巡检如何落地,以及落地执行的机制该如何建立。
如何理解线上自动化巡检
如上一篇文章所说,线上质量保障的实践手段,常见的有自动化巡检、配置变更检查、灰度发布验证、应急响应、质量度量和评估。
这些技术实践的理念,来自于测试右移,即将每一个周期的测试活动结束环节从运维发布阶段向后拓展,覆盖到服务发布、线上验证,进行持续的线上质量运营和度量评估,为后续的迭代和技术改进提供数据支撑。
由于线上场景复杂,验证和变更操作的难度以及风险更大,因此要尽量避免人工手动操作,采用自动化的方式来进行测试验证,这就是所谓的线上自动化巡检。
很好理解,即采用自动化执行的方式,对需要验证的场景和业务流程进行各种维度的测试验证,同时通过完善的监控体系和应急响应机制支撑,来达到快速发现快速解决问题的目的。
线上自动化巡检落地,大致有下面几个步骤:
- 梳理业务场景和系统调用关系,得到巡检的测试场景;
- 准备巡检所需的测试账号(满足风控安全要求,添加白名单);
- 准备巡检所需的测试数据(需要进行脱敏处理,做到数据隔离);
- 系统技术改造,对巡检产生的日志进行隔离和标识区分(避免影响正常业务);
- 配置校验规则,巡检任务必须通过评审,且任务变更需要经过审批才能进行;
- 构建巡检任务,通过任务Job系统调度,定时执行/手动执行/条件触发执行;
线上自动化巡检流程机制
由于巡检任务是在线上环境开展,考虑到巡检可能带来的风险以及发现问题后需要快速解决,因此需要一套完善合理的流程机制来保障线上自动化巡检活动正常开展。巡检流程机制如下图所示:
首先,线上巡检的场景,我们的实践经验是重点关注下面几点:
- 业务资损场景:即可能导致企业资产损失的场景(如无限制领取优惠券,重复退款);
- 研发规范场景:可以将研发编码规范相关的指标或者结果纳入巡检范围,提高覆盖度;
- 历史故障场景:将历史故障所在场景纳入巡检范围,沉淀故障案例库,为混沌工程开展提供支撑;
场景梳理完成后,还需要创建对应的任务case(测试用例),经过分析评审,才能创建对应的巡检任务。
巡检任务创建完成后,需要通过规则校验(如case校验结果是否符合规则配置,case校验场景是否和案例库匹配),才能进入待执行状态。
为了避免手动执行产生误操作,原则上不允许手动执行,必须通过自动化或者任务调度的方式来触发执行。
每个自动化巡检任务都必须有校验点(简单理解就是断言),来验证结果是否符合预期。如果结果符合预期,那就生成报告,沉淀执行数据,长期来说会形成一个线上系统的质量趋势图(便于向上管理,同时也是工作产出的重要依据),这也是线上质量度量和质量运营的一部分内容。
如果巡检过程中出现异常或者其他不符合预期的情况,则需要立刻进入故障响应流程。关于故障响应,请参考我前面的文章:《线上故障的正确打开方式》。
最后,每次线上巡检结束,建议都开展一次复盘,规模不用太大,也不用花费太多时间(人数控制在5-10人,时间控制在30-60min)比较好。
关于复盘,请参考我前面的文章:《复盘的价值是什么?》/《复盘归因,提高交付质量的秘诀》。