【专项测试】京东“猴子捣乱”

猴子捣乱

        通常情况下,京东的系统是久经考验的,加之系统的多机房多集群部署,一般情况下不会发生重大的问题,但是在每年的618京东购物节和11.11购物节期间,系统流量会有瞬间的峰值,而且此瞬时峰值每年都会增加,面对如此的突入其来的瞬间峰值,对交易系统的稳定性和可用性将是一个重大的考验。所以每年在两个购物节来临之前,京东都会组织力量进行演练,进行系统捣乱测试,故名为“猴子捣乱”。

介绍

       “猴子捣乱”是京东为了检验各方系统的应急响应能力,在系统运行过程中,人为地随机制造一些影响系统运行的问题,使系统在运行中出现问题,由此来检验测试工程师和研发工程师对系统的把控能力和异常处理能力。这里主要就是检查系统运行中各项降级功能和限流等操作是否能够及时切换并生效,做到适当的应急处理。

       通过演练,制定出系统在运行过程中出现各种问题时的应对策略,以确保在大促期间系统能够稳定运行,给用户提供良好的购物体验。

捣乱流程

       捣乱是在线系统上进行的,所以有一定的风险,为了避免出现问题,在进行捣乱之前,先要有各个研发组对本组的系统进行架构和技术分析、梳理,在分析的基础上找出本组系统最可能出现的问题,针对可能出现的问题,给出合理的应对措施。形成各自业务系统的演练方案,并对演练方案进行反复论证。

       在演练前,组织所有参加演练的人员对演练系统进行培训,演练系统是一个可以模拟几乎所有网络和软件故障的系统(对于硬件故障还不能完美模拟),要做到懂得演练系统的使用方法和故障的恢复方法。并对各组的演练方案进行评估,最后确定各组的演练方案。下图是一个捣乱方案:

 

图24-4 猴子捣乱方案

 

       寻求运维部门的帮助,因为有些操作(比如停止数据库服务、停止一些web服务、宕机等物理故障)研发工程师和测试工程师是不能恢复的,只能寻求运维部门的配合和帮助。

       因为捣乱是在线上系统中进行的,所以为了避免对线上的交易成影响,需要先把一个机房的流量切换出去,是正常用户的流量不进过这个机房,然后确定没有流量后,在夜间进行捣乱演练,进行过程要有专人监控系统,观察出现故障的时间,在出现故障后,技术人员进行故障排除和修复。

        在捣乱完成后,形成一份捣乱报告,报告中确定故障发生的系统,发生的故障类型,发生时间,修复方法,修复人员,回复时间。并把各组的捣乱方案和报告结合借来,是各组的所有人员都掌握捣乱的方法和故障的修复方法,为大促期间的系统保证做准备。捣乱报告的记录表如下:

 

图24-5 捣乱结果数据

 

      捣乱结束后,对捣乱的所有数据进行汇总,统计达标或未达标的数量,对未达标的项目需要进行整改。

 

图24-6 演练结果统计表

 

猜你喜欢

转载自blog.csdn.net/weixin_42343424/article/details/83590728