在生产环境中进行故障防护测试的方法及装置制造方法及图纸

技术编号:39588437 阅读:11 留言:0更新日期:2023-12-03 19:39
本说明书实施例提供一种在生产环境中进行故障防护测试的方法及装置,该生产环境中部署业务系统

【技术实现步骤摘要】
在生产环境中进行故障防护测试的方法及装置


[0001]本说明书一个或多个实施例涉及计算机
,尤其涉及一种在生产环境中进行故障防护测试的方法及装置

一种计算机可读存储介质,以及一种计算设备


技术介绍

[0002]混沌工程
(Chaos Engineering)
是通过主动注入故障的方式,提前将系统的问题暴露出来,发现系统可能存在一些风险点,然后把这些问题提前解决掉

简单来说,混沌工程就是通过主动注入故障的方式提前发现问题,然后解决问题

规避风险

[0003]目前,通过混沌工程来检测告警监控系统等防线是否有效,已称为当下的研究热点

然而,在混沌工程中,降低对业务的不良影响与提高防线检测结果的有效性之间存在天然的矛盾,比如说,为避免对生产环境中的真实业务造成不良影响,如避免造成不必要的客户投诉,故障注入通常是在非生产环境去做的,如预发布环境等,而非生产环境和生产环境存在差异,这将导致防线检测结果的可用性偏低

[0004]因此,迫切需要一种防线检测方案,可以在消除对业务不良影响的同时,充分提升防线检测结果的可用性


技术实现思路

[0005]本说明书实施例描述一种在生产环境中进行故障防护测试的方法及装置,可以在消除对业务不良影响的同时,充分提升防线检测结果的可用性

[0006]根据第一方面,提供一种在生产环境中进行故障防护测试的方法,所述生产环境中部署业务系统

针对该业务系统的自动防护系统,以及故障引擎,所述业务系统包括业务应用和模拟所述业务应用的目标功能而建立的靶子应用,所述方法包括:生成并调度虚拟访问流量至所述靶子应用;在所述靶子应用处理所述虚拟访问流量的过程中,执行所述故障引擎中的目标脚本,针对所述靶子应用生成目标故障场景下的若干故障;读取所述自动防护系统的防护数据,以确定其针对所述目标故障场景的防护结果

[0007]在一个实施例中,在生成并调度虚拟访问流量至所述靶子应用之前,所述方法还包括:在所述业务系统中部署所述故障引擎和靶子应用

[0008]在一个实施例中,所述自动防护系统支持多项防护功能,所述故障引擎包括其中各项防护功能对应的若干脚本,用于生成检测对应该项防护功能的若干故障场景;其中,执行所述故障引擎中的目标脚本,包括:根据对所述多项防护功能下的目标防护功能,以及对所述目标防护功能下所述目标故障场景的选取指令,调用并执行所述目标脚本

[0009]在一个具体的实施例中,所述若干脚本基于故障数据集而得到,所述故障数据集包括:基于所述业务应用采集的真实故障场景的数据;以及,利用预定算法处理所述真实故障场景的数据得到的若干泛化故障场景的数据

[0010]在一个实施例中,执行所述故障引擎中的目标脚本,针对所述靶子应用生成目标故障场景下的若干故障,包括:按照预定时间间隔,周期性调用所述故障引擎中的若干脚本
并执行,生成对应的若干故障场景中的故障;所述若干脚本包括所述目标脚本,所述若干故障场景包括所述目标故障场景;所述预定时间间隔大于单个故障场景的持续时长

[0011]在一个实施例中,所述靶子应用包括第一应用和第二应用,第一应用在处理所述虚拟访问流量的过程中调用所述第二应用,所述目标故障场景包括注入所述第二应用的故障

[0012]在一个实施例中,所述目标故障场景用于测试所述自动防护系统中针对变更事件的目标防护功能;其中,在执行所述故障引擎中的目标脚本之前,所述方法还包括:向所述业务系统中的变更管理平台发送针对所述靶子应用的变更请求,以启动所述目标防护功能

[0013]在一个具体的实施例中,读取所述自动防护系统的防护数据,包括:读取基于所述目标防护功能产生的所述防护数据,所述防护数据的产生包括:获取所述变更请求所指示变更时刻之前所述业务系统针对所述靶子应用的第一监控日志和之后的第二监控日志;通过比对所述第一监控日志和第二监控日志,生成所述防护数据

[0014]在一个更具体的实施例中,在向所述业务系统中的变更管理平台发送针对所述靶子应用的变更请求之前,所述方法还包括:根据预设模拟目标,执行所述故障引擎中的若干脚本,针对所述靶子应用生成若干前置故障场景下的故障,作为变更前故障状态;其中,所述第一监控日志中包括与所述若干前置故障场景相关的监控数据

[0015]进一步,在一个例子中,所述预设模拟目标包括第一故障场景;执行所述故障引擎中的若干脚本,针对所述靶子应用生成若干前置故障场景下的故障,包括:执行所述故障引擎中与第一故障场景对应的第一脚本,针对所述靶子应用生成第一故障场景下的故障

[0016]在另一个例子中,所述预设模拟目标包括随机故障;执行所述故障引擎中的若干脚本,针对所述靶子应用生成若干前置故障场景下的故障,包括:随机执行所述故障引擎中的至少一个脚本,针对所述靶子应用生成至少一个故障场景下的故障

[0017]在一个实施例中,所述目标故障场景中发生故障的对象包括以下中的至少一类:存储

计算资源

网络

节点

容器

进程

消息服务

[0018]在一个实施例中,所述目标故障场景中的故障类型包括以下中的至少一项:服务延时
、CPU
占用率的增速大于第一阈值


SQL
语句的处理时间大于第二阈值

完全的垃圾回收
Full GC
溢出,服务失败

业务成功率下降

[0019]在一个实施例中,所述目标故障场景中故障类型的时序模式为缓慢

毛刺或突变

[0020]在一个实施例中,所述靶子应用包括
web
型应用,为所述业务系统提供外部访问服务,和
/
或,所述靶子应用包括
core
型应用,为所述业务系统的其他靶子应用提供内部调用服务

[0021]在一个实施例中,所述业务系统为分布式系统,所述靶子应用部署在所述分布式系统中的单个集群或不同集群上

[0022]根据第二方面,提供一种在生产环境中进行故障防护测试的装置,所述生产环境中部署业务系统

针对该业务系统的自动防护系统,以及故障引擎,所述业务系统包括业务应用和模拟所述业务应用的目标功能而建立的靶子应用,所述装置包括:流量生成调度模块,配置为生成并调度虚拟访问流量至所述靶子应用;脚本执行模块,配置为在所述靶子应用处理所述虚拟访问流量的过程中,执行所述故障引擎中的目标脚本,针对所述靶本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种在生产环境中进行故障防护测试的方法,所述生产环境中部署业务系统

针对该业务系统的自动防护系统,以及故障引擎,所述业务系统包括业务应用和模拟所述业务应用的目标功能而建立的靶子应用,所述方法包括:生成并调度虚拟访问流量至所述靶子应用;在所述靶子应用处理所述虚拟访问流量的过程中,执行所述故障引擎中的目标脚本,针对所述靶子应用生成目标故障场景下的若干故障;读取所述自动防护系统的防护数据,以确定其针对所述目标故障场景的防护结果
。2.
根据权利要求1所述的方法,其中,在生成并调度虚拟访问流量至所述靶子应用之前,所述方法还包括:在所述业务系统中部署所述故障引擎和靶子应用
。3.
根据权利要求1所述的方法,其中,所述自动防护系统支持多项防护功能,所述故障引擎包括其中各项防护功能对应的若干脚本,用于生成检测对应该项防护功能的若干故障场景;其中,执行所述故障引擎中的目标脚本,包括:根据对所述多项防护功能下的目标防护功能,以及对所述目标防护功能下所述目标故障场景的选取指令,调用并执行所述目标脚本
。4.
根据权利要求3所述的方法,其中,所述若干脚本基于故障数据集而得到,所述故障数据集包括:基于所述业务应用采集的真实故障场景的数据;以及,利用预定算法处理所述真实故障场景的数据得到的若干泛化故障场景的数据
。5.
根据权利要求1所述的方法,其中,执行所述故障引擎中的目标脚本,针对所述靶子应用生成目标故障场景下的若干故障,包括:按照预定时间间隔,周期性调用所述故障引擎中的若干脚本并执行,生成对应的若干故障场景中的故障;所述若干脚本包括所述目标脚本,所述若干故障场景包括所述目标故障场景;所述预定时间间隔大于单个故障场景的持续时长
。6.
根据权利要求1所述的方法,其中,所述靶子应用包括第一应用和第二应用,所述第一应用在处理所述虚拟访问流量的过程中调用所述第二应用,所述目标故障场景包括注入所述第二应用的故障
。7.
根据权利要求1所述的方法,其中,所述目标故障场景用于测试所述自动防护系统中针对变更事件的目标防护功能;其中,在执行所述故障引擎中的目标脚本之前,所述方法还包括:向所述业务系统中的变更管理平台发送针对所述靶子应用的变更请求,以启动所述目标防护功能
。8.
根据权利要求7所述的方法,其中,读取所述自动防护系统的防护数据,包括:读取基于所述目标防护功能产生的所述防护数据,所述防护数据的产生包括:获取所述变更请求所指示变更时刻之前所述业务系统针对所述靶子应用的第一监控日志和之后的第二监控日志;通过比对所述第一监控日志和第二监控日志,生成所述防护数据
。9.
根据权利要求8所述的方法,其中,在向所述业务系统中的变更管理平台发送针对所述靶子应用的变更请求之前,所述方法还包括:根据预设模拟目标,执行所述故障引擎中的若干脚本,针对所述靶子应用生成若干前
置故障场景下的故障,作为变更前故障状态;其中,所述第一监控日志中包括与所述若干前置故障场景相关的监控数据
。10.
根据权利要求9所述的方法,其中,所述预设模拟目标包括第一故障...

【专利技术属性】
技术研发人员:苗嘉杏
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1