故障注入的方法、装置、电子设备和存储介质制造方法及图纸

技术编号:25598558 阅读:26 留言:0更新日期:2020-09-11 23:56
本申请公开了故障注入的方法、装置、电子设备及存储介质,涉及计算机和云计算技术领域,尤其涉及测试领域。具体实现方案为:一种故障注入的方法,包括:获取故障注入任务,所述故障注入任务包括至少一个目标服务标识及其对应的故障场景;根据各个所述目标服务标识确定目标服务,并获取所述目标服务的状态;若所述目标服务的状态为正常状态,则将所述目标服务标识对应的故障场景注入所述目标服务中。本申请有利于减少人工成本。

【技术实现步骤摘要】
故障注入的方法、装置、电子设备和存储介质
本申请涉及计算机
,尤其涉及云计算领域。
技术介绍
随着微服务技术的发展,系统健壮性和容错能力得到极大的提升,能够承载越来越多的用户量。但据不完全统计程序自身的容错性问题和非预期代码缺陷导致的故障,占所有故障的50%以上。因此如何提前发现程序自身问题,对于系统可用性提升有着至关重要的影响。传统提升程序自身质量的方法,依靠软件测试工程师的测试。当前工程师采用手动注入故障进行线上故障演练,比如通过中控机登录到线上机器,通过重启、关机等命令模拟线上机器故障。
技术实现思路
本申请提供了一种故障注入的方法、装置、电子设备和存储介质。根据本申请的一方面,提供了一种故障注入的方法,包括:获取故障注入任务,故障注入任务包括至少一个目标服务标识及其对应的故障场景;根据各个目标服务标识确定目标服务,并获取目标服务的状态;若目标服务的状态为正常状态,则将目标服务标识对应的故障场景注入目标服务中。根据本申请的另一方面,提供了一种故障注入的装置,包括:第一获取模块,用于获取故障注入任务,故障注入任务包括至少一个目标服务标识及其对应的故障场景;第二获取模块,用于根据各个目标服务标识确定目标服务,并获取目标服务的状态;注入模块,用于若目标服务的状态为正常状态,则将目标服务标识对应的故障场景注入目标服务中。根据本申请的技术解决了人工注入故障场景的问题,降低了故障注入的人工成本,且有利于保证故障注入的正常进行。应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是根据本申请实施例的一种故障注入的方法的流程图一;图2是根据本申请实施例的一种故障注入的方法的流程图二;图3是根据本申请实施例的一种故障注入的方法的流程图三;图4是根据本申请实施例的服务指标采集模块的界面示例图;图5是根据本申请实施例的故障管理模块的界面示例图;图6是根据本申请实施例的故障注入任务管理模块的界面图一;图7是根据本申请实施例的故障注入任务管理模块的界面图二;图8是根据本申请实施例的一种故障注入的装置的结构图一;图9是根据本申请实施例的一种故障注入的装置的结构图二;图10是根据本申请实施例的一种故障注入的装置的结构图三;图11是根据本申请实施例的一种故障注入的装置的结构图四;图12是根据本申请实施例的一种故障注入的装置的结构图五;图13是用来实现本申请实施例的故障注入的方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本申请实施例提供一种故障注入的方法,可以应用于针对微服务架构的故障演练。参见图1,图1是该故障注入的方法的流程图,该方法包括:S101、获取故障注入任务,故障注入任务包括至少一个目标服务标识及其对应的故障场景;S102、根据各个目标服务标识确定目标服务,并获取目标服务的状态;S103、若目标服务的状态为正常状态,则将目标服务标识对应的故障场景注入目标服务中。上述实施例中,在故障注入任务中配置至少一个故障场景,通过启动故障注入任务,从而可以在检查目标服务的状态为正常的情况下向目标服务注入故障,减少工程师手动输注入故障场景的人力成本,而且避免了故障注入命令的人为输入错误,同时,在服务状态正常时才注入故障,有利于保证故障注入的正常进行。在一种实施方式中,步骤S102包括:在故障注入任务通过审核的情况下,根据目标服务标识确定目标服务,并获取目标服务的状态;其中,故障注入任务通过审核包括下述至少一项::在故障注入任务中故障场景中命令和代码段的风险中至少一项低于预设风险级别的情况下,确定故障注入任务通过审核;在接收到针对故障注入任务的审核通过指令的情况下,确定故障注入任务通过审核。上述实施例中,故障注入任务通过审核后才可以执行,有利于减少故障注入时的风险,从而减少了线上真实环境出现非预期结果的风险。而且,上述实施例中提供系统审批和人工审批,例如,先通过系统对故障场景中的命令和代码段进行审核,如果没有高危命令和高危代码,则审核通过,如果出现高危命令和高危代码,则需要通过人工再次审核,当接收到故障注入任务审核通过的指令时,则审核通过。因此,能够更好对故障注入任务进行审核,降低故障注入风险。在一种实施方式中,参见图2,方法还包括:S201、采集目标服务的目标指标;S202、在监测到采集的目标指标超出预设指标区间的情况下,停止注入故障场景。上述实施例中,在注入故障的过程中,自动采集目标服务的目标指标,当目标指标异常时停止注入故障,实现了故障演练过程中出现非预期结果时,能够自动快速终止故障演练,避免对目标服务造成更严重的故障,从而降低了线上真实环境进行故障演练的风险。在一种实施方式中,采集目标服务的目标指标,包括下述至少一种方式:从指定的指标数据推送接口获取目标服务的目标指标;从目标服务中采集目标指标。其中,第一种采集方式为提供指定的指标数据推送接口,那么服务的运维工程师可以将采集的数据通过程序自动地推送给该模块,则可以实现对服务的目标指标的采集和记录。第二种采集方式为可以接收运维工程师上传的运维采集程序,该运维采集程序在目标服务中执行以采集目标指标。上述实施例中,提供了两种采集目标服务的目标指标方式,实现对目标服务的目标指标的自动化采集,减少人力成本。一种示例,目标指标可以为目标服务的核心指标。举例说明,存储服务可能包括可读性、可写性、读速度和写速度等多项指标,存储服务的核心性能在于能否读写,因此可读性和可写性为其核心指标。这样处理的好处是,故障注入服务时可能对服务的多种指标均造成影响,但故障注入在于测试服务是否会出现故障,主要关注服务核心性能。因此,采集核心指标进行监测,可以在满足对服务的故障测试需求的情况下,提高数据采集的精简性。在一种实施方式中,参见图2,方法还包括:S203、执行记录目标服务的异常情况,撤销目标服务中注入的故障场景,结束故障注入任务中的至少一项。上述实施例,在停止注入故障后,能够自动对目标服务的异常情况进行记录,完成故障测试,同时撤销目标服务的故障场景,避免注入的故障对目标服务造成影响。可选地,目标服务的异常情况包括:目标服务的非预期故障情况和目标指标。可选地,撤销目标本文档来自技高网...

【技术保护点】
1.一种故障注入的方法,包括:/n获取故障注入任务,所述故障注入任务包括至少一个目标服务标识及其对应的故障场景;/n根据各个所述目标服务标识确定目标服务,并获取所述目标服务的状态;/n若所述目标服务的状态为正常状态,则将所述目标服务标识对应的故障场景注入所述目标服务中。/n

【技术特征摘要】
1.一种故障注入的方法,包括:
获取故障注入任务,所述故障注入任务包括至少一个目标服务标识及其对应的故障场景;
根据各个所述目标服务标识确定目标服务,并获取所述目标服务的状态;
若所述目标服务的状态为正常状态,则将所述目标服务标识对应的故障场景注入所述目标服务中。


2.根据权利要求1所述的方法,还包括:采集所述目标服务的目标指标;
在监测到采集的所述目标指标超出预设指标区间的情况下,停止注入所述故障场景。


3.根据权利要求2所述的方法,还包括下述至少一项:
撤销所述目标服务中注入的故障场景;
结束所述故障注入任务。


4.根据权利要求1至3任一所述的方法,其中,所述根据各个所述目标服务标识确定目标服务,并获取所述目标服务的状态,包括:在所述故障注入任务通过审核的情况下,根据所述目标服务标识确定目标服务,并获取所述目标服务的状态;
其中,所述故障注入任务通过审核包括下述至少一项:
在所述故障注入任务中故障场景中命令和代码段的风险中至少一项低于预设风险级别的情况下,确定所述故障注入任务通过审核;
在接收到针对所述故障注入任务的审核通过指令的情况下,确定所述故障注入任务通过审核。


5.根据权利要求1至3任一所述的方法,所述方法还包括:根据接收到的任务配置指令,配置所述故障注入任务;
所述配置所述故障注入任务包括下述至少一项:
添加故障场景至所述故障注入任务中;
对所述故障注入任务中的故障场景进行删除、编辑或调整注入顺序;
设置所述故障注入任务的触发方式。


6.根据权利要求5所述的方法,其中,所述添加故障场景至所述故障注入任务中,包括:从故障管理模块中选择至少一个故障场景添加至所述故障注入任务中,所述故障管理模块预存有多个故障场景。


7.根据权利要求6所述的方法,其中,所述故障管理模块中故障场景的管理方式包括下述至少一项:
对所述故障管理模块中的故障场景进行增加、删除、修改或查看;
根据从故障程序编写界面接收到的程序内容生成故障场景,并将所述生成的故障场景上传至所述故障管理模块;其中,在所述生成故障场景前,对所述接收到的程序内容中的高危命令和高危代码段进行标识,所述标识用于提示故障场景的注入风险;
将所述故障管理模块中的故障场景与对应的目标服务绑定。


8.根据权利要求2所述的方法,其中,所述采集所述目标服务的目标指标包括下述至少一种方式:
从指定的指标数据推送接口获取所述目标服务的目标指标;
从所述目标服务中采集所述目标指标。


9.一种故障注入的装置,包括:
第一获取模块,用于获取故障注入任务,所述故障注入任务包括至少一个目标服务标识及其对应的故障场景;
第二获取模块,用于根据各个所述目标服务标识确定目标服务,并获取所述目标服务的状态;
注入模块,用于若所述目标服务的状态为正常状态,则将所...

【专利技术属性】
技术研发人员:管宇
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1