我对线上质量监控大盘的思考
前面几篇文章分享了生产环境质量保障面临的四大挑战,也聊了线上巡检的落地注意事项,线上巡检是生产环境质量保障的手段之一,其他手段还有配置变更验证、应急响应和质量度量评估。
质量是定性的概念,但评估质量到底如何一定是需要定量度量的,否则无法进行持续的改进优化。这篇文章,分享一些我对于线上质量监控大盘的思考。
下图是我结合自己的实践经验和学习所总结的一张质量监控大盘思维导图:
巡检类型
对线上的服务质量进行监控和度量,一般是通过巡检的方式开展。巡检主要分为如下四种类型:
容量巡检:简单理解即在线上通过性能测试的方式对整个系统的容量和稳定性开展验证;
防资损巡检:梳理可能存在的导致资损的场景,然后通过定时任务去进行检查,防患于未然;
核心业务巡检:可以理解为线上的主流程回归测试,但这里的回归测试需要自动执行,且每次执行的结果都需要有数据沉淀和分析;
风险场景巡检:针对线上曾经出现故障的场景、可能出现故障的场景,通过定时任务进行巡检;
关于容量保障、线上防资损、风险场景的线上自动化巡检,可参考前面的文章:
《构建高效的容量保障体系》
《通过线上巡检,保障生产环境质量》
《业务防资损,质量保障的第一要务》
《控制风险,是质量保障的核心工作》
巡检报告
巡检报告很好理解,既然是对线上的服务质量进行检查和度量,那每次巡检肯定要出具对应的巡检报告。巡检产生的数据需要进行沉淀,然后对于低于预期或者异常的数据进行风险评估,并结合故障案例进行分析复盘,制定对应的应对预案并更新线上的应急预案。
关于风险评估和线上复盘以及应急预案,可参考前面的文章:
《聊聊稳定性预案》
《线上问题如何复盘?》
《复盘归因,提高交付质量的秘诀》
《控制风险,是质量保障的核心工作》
巡检规则
线上的质量检查我个人建议都通过自动化的方式进行,自动化的好处很多,比如避免人为误操作,可以错峰执行。那如何理解巡检规则呢?简单来说,巡检规则就是自动化巡检任务的断言 plus 版本。比如:
容量巡检,我们需要制定容量的参考值和通过值,在巡检结束后进行对比,如果数据和基准值或者预期相差过大,则可以通过告警通知的方式提醒技术同学及时跟进排查。
业务巡检规则,以优惠券业务为例:要判断优惠券的核销,是否可以叠加使用以及大额优惠券刷单等场景。可能有同学存在疑问,这些规则完全可以在脚本中定义好,为什么要在质量大盘中单独配置呢?原因主要有这几点:
降低自动化巡检任务脚本的维护成本;
巡检规则统一配置和管理,降低规则变更带来的不可控风险;
规则变更和校验在同一个模块进行处理,降低质量监控大盘的耦合性;
巡检对象
自动化巡检的具象化形式,是通过自动化脚本,以任务调度去执行。但抽象总结一下,巡检的对象主要有如下几类:
业务应用:巡检的最小粒度是具体的某个场景,而大部分场景都是业务维度的场景;
异常日志 &监控告警:风险巡检和防资损巡检,主要的巡检对象就是日常日志以及监控告警信息;
配置变更:线上大部分故障都是变更引起的,因此针对线上的任何配置变更,都要引起注视,最好是 case by case 的建立巡检任务进行检查,避免出现线上故障;
配置数据管理
由于线上巡检的风险较大,因此对于一些账号和数据配置,最好是统一进行管理,维护和变更走审批和评审。其中比较重要的配置数据有如下几种:
账号数据:为了避免造成数据污染,巡检的账号需要单独配置和管理;
环境数据:除了线上巡检,还可以结合测试环境的各种自动化测试任务,对不同环境开展测试工作;
权限数据:同样,为了避免造成数据污染,巡检的账号和其对应的巡检权限范围,也需要单独配置管理;
黑白名单:线上巡检任务大多由单独的服务负责,为了避免被线上风控拦截或者识别为某些高频访问 IP 而禁止访问,巡检的账号建议通过白名单配置的方式来维护;
关于线上环境的质量保障,本篇文章算是阶段性的收尾了。在前面的文章中,我介绍了生产环境质量保障面临的挑战,如何控制风险,如何防资损,如何应急响应以及复盘,做完这些工作,最终才会有质量大盘这个概念。
质量保障工作并不仅限于测试环境,质量保障也需要长期持续的投入和优化,才能很好的对服务稳定性和业务可用性提供支撑,保障业务目标更好的达成,最终体现自己的价值。
版权声明: 本文为 InfoQ 作者【老张】的原创文章。
原文链接:【http://xie.infoq.cn/article/bfc9f2a9abbc891b81d68e9d6】。文章转载请联系作者。
评论