关于测试工具:混沌演练实践一

46次阅读

共计 1933 个字符,预计需要花费 5 分钟才能阅读完成。

作者:京东科技 孙民英

一、混沌工程介绍

1. 什么是混沌工程

混沌工程是通过被动制作故障场景并依据零碎在各种压力下的行为表现确定优化策略的一种零碎稳定性保障伎俩,简略说就是通过被动注入故障的形式、提前发现问题,而后解决问题躲避危险。

2. 为什么要进行混沌演练

随着互联网业务倒退,微服务架构、分布式架构和虚拟化容器技术的宽泛遍及,软件架构的复杂度在一直晋升,服务之间的依赖所带来的不确定性也成指数级增长,在这样的服务调用网中,任何一环呈现的失常或者异样的变动,都有可能对其余服务造成相似蝴蝶效应个别的影响。目前营销体系的服务量级一直减少,整体链路增长以及数据流转简单,对整个零碎的可用性、稳定性挑战也越来越大,所以引入混沌演练,被动找出零碎中的软弱环节,而后针对性地进行加固、防备,从而防止故障产生时所带来的严重后果,进一步晋升业务零碎的高可用,进步业务零碎应急保障能力。

3. 混沌演练的价值

利用混沌演练能够对系统抵制扰动并放弃失常运作的能力进行校验和评估, 提前辨认未知隐患并进行修复, 进而保障系统更好地抵挡生产环境中的失控条件, 晋升整体稳定性。









二、混沌演练实际

1. 演练流程介绍

目前借助京东云 RPA 自动化服务平台(https://rpa-ops.jd.com/app-ma…)进行混沌攻防演练,测试人员为红方(攻打方),研发人员为蓝方(防守方),红方随机筛选一个时间段,针对服务零碎注入故障(比方:CPU 使用率达到 100%、网络提早、JSF 接口响应提早等),蓝方负责故障感知以及应急解决,通过这样的形式,达到针对零碎高可用的应急演练。

红方:

创立演练打算: 通过拜访 RPA 自动化服务平台,进入工具市场——演练类,抉择不同的故障计划,点击“立刻执行”;

演练配置: 点击执行后,进入配置页面,抉择执行环境,选取要演练的利用,并随机选取要演练的实例 IP;

执行演练: 演练工作创立实现后,在对应的演练工夫范畴内,审批通过后,开始依照抉择的演练工作开始执行;

蓝方:

故障排查: 在演练过程中,蓝方通过报警信息,先对模仿故障的实例机器,进行排查;

复原计划: 演练中发现问题要及时复原,演练后对模仿故障的实例机器进行重启复原,确保机器失常运行,各项性能指标复原;





2. 首次演练实际

2.1 筹备阶段

混沌演练筹备阶段是设计演练策略,次要有设定演练的考核指标,抉择演练的场景、利用和机器,生成相应的演练打算,周知相干人员。

其中筹备阶段最重要的是做好危险评估,依据零碎的等级或者混沌的成熟度,初期演练一些简略的事件比方高 CPU、高内存;等零碎抵抗力逐渐晋升演练比拟高级的事件如网络提早、过程终止等。





2.2 执行阶段

演练场景执行,执行故障注入,测试人员应察看日志和系统监控,记录指标变动状况。

执行场景 JSF 接口响应提早 100ms,因接口超时工夫为 50ms, 能够在监控图中看到故障注入期间接口超时失败率 100%











2.3 复原阶段

故障发现及排查定位:演练进行中,蓝方当时不晓得演练哪些故障场景(目前是通过预发演练,研发侧能明确受影响的机器),蓝方通过收到报警,对报警信息进行排查,摹略引擎零碎针对报警信息做出反馈和应急解决。

蓝方发现故障 CPU 使用率负载故障,报警机器与演练机器雷同,重启服务后,应用服务器响应失常,可用率复原;







2.4 复盘阶段

通过本次演练,发现两个待优化的点:

1.CPU 应用负载的演练场景,发现了监控告警邮件提早,倡议减少电话和咚咚报警策略;

  1. 模仿 JSF 接口响应超时场景,发现短少失败阈值告警邮件,减少相应告警邮件;





三、混沌演练总结

1. 典型演练场景

借助于平台进行混沌演练,能够升高演练的学习老本,进步演练的效率,目前平台对于罕用的演练场景曾经反对,大家能够在平台进入工具市场抉择相应的演练场景。





2. 重要考核指标

混沌演练完结后,须要依据演练执行过程和后果,记录演练流程和对应监控指标变动状况,总结存在的问题以及优化计划收回演练报告,对于演练中的关注指标次要是从故障“发现 - 定位 - 复原”的时效性指标,上面具体介绍了在实际演练中须要重点关注的指标,如是否有告警监控、零碎容错能力状况,以及响应机制,其中最初灰色局部高可用指标属于摸索局部,会随着零碎以后的理论状况和业务不同有变动,作为探索性指标。





3. 关注危险管制

混沌演练会对业务和零碎产生破坏性,为了限度发现应用程序破绽的老本,防止不必要的损坏和超出正当测试容许的理论损失对混沌演练做好危险管制是十分必要的。做好危险管制,将演练管制在一个较小的范畴内,防止因为演练失控带来的更大问题。目前在进行混沌演练实际次要通过以下两个方面进行危险管制:





只管混沌演练的益处是不言而喻的,但它是一种应该谨慎进行的实际。

正文完
 0