CN112631846A - 一种故障演练方法、装置、计算机设备及存储介质 - Google Patents

一种故障演练方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112631846A
CN112631846A CN202011574272.4A CN202011574272A CN112631846A CN 112631846 A CN112631846 A CN 112631846A CN 202011574272 A CN202011574272 A CN 202011574272A CN 112631846 A CN112631846 A CN 112631846A
Authority
CN
China
Prior art keywords
drilling
fault
task
target equipment
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011574272.4A
Other languages
English (en)
Inventor
赵远远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Pinwei Software Co Ltd
Original Assignee
Guangzhou Pinwei Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Pinwei Software Co Ltd filed Critical Guangzhou Pinwei Software Co Ltd
Priority to CN202011574272.4A priority Critical patent/CN112631846A/zh
Publication of CN112631846A publication Critical patent/CN112631846A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种故障演练方法、装置、计算机设备及存储介质,该方法包括:接收用户发出的演练请求,根据演练请求生成演练任务,根据演练任务在待演练的目标***中确定待演练的目标设备,对目标设备执行故障注入操作,利用演练任务对注入故障后的目标设备进行故障演练操作,获取目标设备的故障演练结果,根据故障演练结果生成演练报表,以便后续根据演练报表判断目标***是否存在潜在故障问题。本发明通过模拟多种类型的故障场景,在异常行为被触发之前识别出***中脆弱且易出故障的环节,发现潜在的健壮性问题,提高生产环境中***的容错性和可恢复性。

Description

一种故障演练方法、装置、计算机设备及存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种故障演练方法、装置、计算机设备及存储介质。
背景技术
随着计算机服务和软件行业数字化的发展势头日新月异,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在互联网领域。但由于互联网行业等大型网站有着用户多、流量大、高并发、海量数据、服务高可用、安全环境恶劣、易受网络攻击功能多、变更快、频繁发布等特点,因而也对技术提出了更高的要求。
目前在进行***测试时,只能根据测试预定的场景进行固定测试,然而在复杂的生产环境中,偶发因素较多,需要从多个维度才能发现生产***的健壮性问题。例如,由于分布式***包含大量交互、依赖点,可能出错的地方数不胜数,比如硬盘故障、网络不通、流量激增压垮***等,在生产环境中实际运行分布式***时,人力并不能完全阻止故障发生。
因此,亟需提出一种新的故障演练方法,以解决上述问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种故障演练方法、装置、计算机设备以及存储介质,以克服现有技术中在进行***测试时,只能根据测试预定的场景进行固定测试,不能在异常行为被触发之前识别出***中脆弱且易出故障的环节等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
第一方面,提供了一种故障演练方法,该方法包括如下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
进一步的,所述接收用户发出的演练请求,根据所述演练请求生成演练任务包括:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
进一步的,所述方法还包括故障活动的配置过程,包括:
针对每个活动类型创建对应的初始故障活动,对所述初始故障活动进行参数配置,结合预设演练工具生成最终的故障活动。
进一步的,所述根据所述环境类型配置执行环境包括:
根据所述环境类型从预先配置的功能环境列表中匹配出对应的执行环境;
或,根据环境类型实时配置对应的执行环境。
进一步的,所述故障活动类型至少包括网络、JVM、CPU、内存、磁盘、进程中的一种。
进一步的,所述对所述目标设备执行故障注入操作包括:
在所述目标设备中启动预设演练工具,将相应故障注入所述目标设备中。
第二方面,提供了一种故障演练装置,所述装置包括:
任务生成模块,用于接收用户发出的演练请求,根据所述演练请求生成演练任务;
故障注入模块,用于根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
任务执行模块,用于利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
报表生成模块,用于根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
进一步的,所述任务生成模块具体用于:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的故障演练方法、装置、计算机设备及存储介质,通过接收用户发出的演练请求,根据所述演练请求生成演练任务,根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作,利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果,根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题,通过模拟多种类型的故障场景,在异常行为被触发之前识别出***中脆弱且易出故障的环节,发现潜在的健壮性问题,提高生产环境中***的容错性和可恢复性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的基于混沌工程的故障演练平台的架构图;
图2是根据一示例性实施例示出的故障演练方法的流程图;
图3是根据一示例性实施例示出的故障演练装置的结构示意图;
图4是根据一示例性实施例示出的计算机设备的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,传统的测试,通常都是从用户角度出发,进行性一系列测试行为,不能实现完全的自动化,需要人工参与,并且只能根据测试预定的场景进行固定测试,然而在复杂的生产环境中,偶发因素较多,很容易出现漏测等现象。并且传统的测试都是在类生产环境中进行的,不是直接在生产环境中进行的,因而测试结果并不能保证其准确定。
为解决上述问题,本发明实施例中创造性的提出了一种故障演练方法,该方法通过实现特定场景的故障注入,模拟任何可能遇到的故障,比如硬件故障、应用故障、网络故障、集群故障灯,能够模拟生产***在实际运行中故障的可能性,从多个维度发现生产***问题并进行运行维护以满足识别***中的故障的需求。进行自动化测试,发现潜在的健壮性问题,防止测试人员漏测等现象,能够减小业务损失,让重大风险在可控范围提前暴露,提升***弹性,持续验证***对极端场景的容错能力等。
为了执行上述故障演练方法,本发明实施例中,还提拱了一种基于混沌工程的故障演练平台,该平台的整体架构参照图1所示,该平台基于VUE+SpringMVC的方式进行实现,该平台能够以下功能,且各个功能的实现过程如下:
1、自动化运维过程。
由用户在前端触发或者定时触发,由后台服务根据用户传入的参数生成消息,通过RabbitMq传递到自动化执行器。执行器接收到消息后,对消息进行解析,找到对应的运维模板,将参数传递到执行模板进行执行。执行过程中,应用的执行日志反馈回执行器,执行器将日志***Redis缓存。前端页面通过秒级读取缓存,实时进行前端页面的展示,反馈到用户,并记录至数据库。
2、监控***集成。
用户通过前端用户资产管理,将所有的主机进行分类。分类后,用户在资产管理页面触发监控,***将通过自动化运维***对目标主机进行监控客户端的安装及自动化配置。配置完成后,***将主机信息推送到Zabbix***并添加到对应的分组。Zabbix根据分组中的自动发现策略,对被发现的自动监控点进行监控并告警。OEOP将所有监控进行看板的集中显示。
3、物理机操作***的自动安装。
用户在前端页面选择目标操作***,***将自动根据用户的网络配置进行操作***模板的生成,并提供预览,供自定义修改适应不同的安装需求。用户确认模板后,***推送至自动化执行器,执行器触发Cobbler进行DHCP广播及添加安装程序配置。执行器再远程触发物理机进入自动化安装***模式,在Cobbler的控制下完成自动化安装,分阶段上报安装状态。执行器将持续监控***安装,直至完成。
4、测试数据库的管理。
用户在管理界面添加目标被管理数据库,并授权。开发人员提测后,在生产数据库管理***提交DDL审核。管理者及DBA审核后将DDL推送至OEOP。OEOP接收到消息后,将查找管理列表中需要进行自动变更的数据库,并自动完成变更。
5、基础数据管理。
实现机器信息的分类管理,包含管理IP,硬件信息,分类分组。所有机器的状态的定期管理。
6、自助问答。
管理人员将所有常见的问题进行分类,梳理关键词。当用户在前端页面进行提问,***将会对提供问题进行分词,匹配知识库中的关键词,对所有匹配的关键词进行匹配度排序,并展示匹配度较高的几个知识点供提问者评估,如匹配精度达90%,将直接输出答案。另外,自助问答支持自助服务的匹配,如果匹配到自助服务,将提供自助服务入口,供用户快速使用。
上述基于混沌工程的故障演练平台在执行故障演练的过程具体包括如下步骤:
步骤一、创建故障活动。
具体的,活动是演练任务的基本单位,用于模拟***在实际运行中可能遇到的故障,如硬件故障、应用故障、网络故障、集群故障等,平台管理者可以在前端页面创建一个个对应的演练活动,定义用户输入参数,配合演练工具形成一个个场景的故障活动。按照故障场景,活动的类型大致也可分为网络、JVM、CPU、内存、磁盘、进程等类型。其中,JVM是JavaVirtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,CPU(centralprocessing unit,中央处理器)作为计算机***的运算和控制核心,是信息处理、程序运行的最终执行单元。
故障活动在创建是需要进行参数的配置,包括但不限于以下:
可用配置:配置该故障活动是在演练任务的哪个阶段执行;
关联准备阶段:配置该故障活动执行前需要的准备工作;
关联恢复阶段活动:配置该故障活动执行结束后需要做的工作;
参数配置:配置具体演练任务执行时的入参,不同类型的故障活动,对应不同的参数。
这里需要说明的是,在创建活动时,不同类型的故障对应不同的参数。以JVM进程CPU使用率满载为例,其添加了两个参数:
1、--process,指java进程,即针对哪个进程执行该故障活动;
2、--cpu-count,指CPU核数,即指定几个核满载。
步骤二、执行环境管理。
具体的,该平台支持的场景支持线下及线上,支持各种机器类型。用户可以在平台中管理自己的演练环境。本发明实施例中,执行环境可以是从预设服务中自动同步的,如同步PAAS平台的PAAS的功能环境列表,也可以是用户手动创建的环境,即支持用户根据实际需求手动创建执行环境,并为用户手动创建的执行环境配置单独的主机列表。其中,PAAS(Platform Asa Service),指平台即服务,意为把服务器平台作为一种服务来提供。
步骤三、演练任务的编排。
具体的,通常一个完整的演练任务,需要包含着准备、执行、检查、恢复等阶段。用户在前端页面创建一个演练任务,从在上述步骤中创建的故障活动中选取的符合自己实际需求的故障活动,并提供该故障活动所需要的所有参数,编排成一个完整的演练任务。
这里需要说明的是,本发明实施例中,每个演练任务固有以下三个阶段:
1、准备阶段,是执行一个任务的前提条件,比如,需要注入JVM故障的活动,就需要在注入故障前安装JVM agent(即演练工具);
2、执行阶段,是故障注入目标设备的一系列活动;
3、恢复阶段,是故障注入后的恢复动作,如果配置的活动是有自动恢复的,会自动添加到恢复阶段。
步骤四、故障注入过程。
具体的,在所有的目标设备中启动相关演练工具(如Agent),用户通过前端页面触发演练任务,平台将会将找到演练任务中涉及的主机并控制其Agent,将故障进行注入。其中目标设备为待演练目标***执行演练任务的设备。
在执行故障注入操作时,还需要配置以下参数:
1、演练对象参数:包括但不限于演练域名、演练主机参数等;
2、特定活动参数:每个故障活动的特定活动参数都不一样,具体参数字段可以在活动中配置,如JVM进程CPU使用率满载活动中参数“--process”和“--cpu-count”,这里不再一一列举。
3、通用参数:包括但不限于执行前等待时间和执行后等待时间等,每个故障活动都自带的参数,用于决定故障或者活动的持续时间,比如,执行后等待时间为100秒的话,就意味者下一个活动在该活动执行100秒后再执行。
具体的,本发明实施例中,还支持手动操作演练任务。在创建演练任务的前端页面配置“是否手工任务”选项,勾选即表明该演练任务是手工执行的,所有的操作并非通过本***完成,而是需要自己手动在主机上面操作。提供这种演练任务的方式主要是为了记录和跟踪域的结果,方便用户查看。
步骤五、生成演练报表。
具体的,在利用演练任务对注入故障后的所述目标设备进行故障演练操作,获取目标设备的故障演练结果后,还需要根据该故障演练结果生成演练报表。演练报表页面用于统计和展示各个域的演练结果相关信息,本发明实施例中,支持演练报表以表格形式(如Excel)导出查看。
图2是根据一示例性实施例示出的故障演练方法的流程图,参照图2所示,该方法包括如下步骤:
S1:接收用户发出的演练请求,根据所述演练请求生成演练任务。
具体的,通过基于混沌工程的故障演练平台接收用户发出的演练请求,演练请求中包括但不限于故障活动类型、执行环境、用于执行演练任务的目标设备等信息。
S2:根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作。
具体的,本发明实施例中,通过代码实现故障注入,解决手工测试模拟相关场景困难的问题。
S3:利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果。
S4:根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题.
作为一种较优的实施方式,本发明实施例中,所述接收用户发出的演练请求,根据所述演练请求生成演练任务包括:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
作为一种较优的实施方式,本发明实施例中,所述方法还包括故障活动的配置过程,包括:
针对每个活动类型创建对应的初始故障活动,对所述初始故障活动进行参数配置,结合预设演练工具生成最终的故障活动。
具体的,本发明实施例中,模拟了多种类型的故障场景,包括但不限于硬件故障、应用故障、网络故障、集群故障等,对应于各故障场景,创建的故障活动的类型大致也可分为网络、JVM、CPU、内存、磁盘、进程等类型。
作为一种较优的实施方式,本发明实施例中,所述根据所述环境类型配置执行环境包括:
根据所述环境类型从预先配置的功能环境列表中匹配出对应的执行环境;
或,根据环境类型实时配置对应的执行环境。
具体的,执行环境可以是从预设服务中自动同步的,如同步PAAS平台的PAAS的功能环境列表,也可以是用户手动创建的。
作为一种较优的实施方式,本发明实施例中,所述故障活动类型至少包括网络、JVM、CPU、内存、磁盘、进程中的一种。
作为一种较优的实施方式,本发明实施例中,所述对所述目标设备执行故障注入操作包括:
在所述目标设备中启动预设演练工具,将相应故障注入所述目标设备中。
图3是根据一示例性实施例示出的故障演练装置的结构示意图,参照图3所示,该装置包括:
任务生成模块,用于接收用户发出的演练请求,根据所述演练请求生成演练任务;
故障注入模块,用于根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
任务执行模块,用于利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
报表生成模块,用于根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
作为一种较优的实施方式,本发明实施例中,所述任务生成模块具体用于:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
作为一种较优的实施方式,本发明实施例中,所述装置还包括:
活动创建模块,用于针对每个活动类型创建对应的初始故障活动,对所述初始故障活动进行参数配置,结合预设演练工具生成最终的故障活动。
作为一种较优的实施方式,本发明实施例中,所述装置还包括:
环境配置模块,用于根据所述环境类型从预先配置的功能环境列表中匹配出对应的执行环境;或,根据环境类型实时配置对应的执行环境。
作为一种较优的实施方式,本发明实施例中,所述故障活动类型至少包括网络、JVM、CPU、内存、磁盘、进程中的一种。
作为一种较优的实施方式,本发明实施例中,所述故障注入模块具体用于:
在所述目标设备中启动预设演练工具,将相应故障注入所述目标设备中。
图4是根据一示例性实施例示出的计算机设备的内部结构示意图,参照图4所示,该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种执行计划的优化方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
作为一种较优的实施方式,本发明实施例中,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
针对每个活动类型创建对应的初始故障活动,对所述初始故障活动进行参数配置,结合预设演练工具生成最终的故障活动。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
根据所述环境类型从预先配置的功能环境列表中匹配出对应的执行环境;
或,根据环境类型实时配置对应的执行环境。
作为一种较优的实施方式,本发明实施例中,所述故障活动类型至少包括网络、JVM、CPU、内存、磁盘、进程中的一种。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
在所述目标设备中启动预设演练工具,将相应故障注入所述目标设备中。
本发明实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
针对每个活动类型创建对应的初始故障活动,对所述初始故障活动进行参数配置,结合预设演练工具生成最终的故障活动。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
根据所述环境类型从预先配置的功能环境列表中匹配出对应的执行环境;
或,根据环境类型实时配置对应的执行环境。
作为一种较优的实施方式,本发明实施例中,所述故障活动类型至少包括网络、JVM、CPU、内存、磁盘、进程中的一种。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
在所述目标设备中启动预设演练工具,将相应故障注入所述目标设备中。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的故障演练方法、装置、计算机设备及存储介质,通过接收用户发出的演练请求,根据所述演练请求生成演练任务,根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作,利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果,根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题,通过模拟多种类型的故障场景,在异常行为被触发之前识别出***中脆弱且易出故障的环节,发现潜在的健壮性问题,提高生产环境中***的容错性和可恢复性。
需要说明的是:上述实施例提供的故障演练装置在触发演练业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的故障演练装置与故障演练方法实施例属于同一构思,即该装置是基于该故障演练方法的,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种故障演练方法,其特征在于,所述方法包括如下步骤:
接收用户发出的演练请求,根据所述演练请求生成演练任务;
根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
2.根据权利要求1所述的故障演练方法,其特征在于,所述接收用户发出的演练请求,根据所述演练请求生成演练任务包括:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
3.根据权利要求1或2所述的故障演练方法,其特征在于,所述方法还包括故障活动的配置过程,包括:
针对每个活动类型创建对应的初始故障活动,对所述初始故障活动进行参数配置,结合预设演练工具生成最终的故障活动。
4.根据权利要求2所述的故障演练方法,其特征在于,所述根据所述环境类型配置执行环境包括:
根据所述环境类型从预先配置的功能环境列表中匹配出对应的执行环境;
或,根据环境类型实时配置对应的执行环境。
5.根据权利要求2所述的故障演练方法,其特征在于,所述故障活动类型至少包括网络、JVM、CPU、内存、磁盘、进程中的一种。
6.根据权利要求1或2所述的故障演练方法,其特征在于,所述对所述目标设备执行故障注入操作包括:
在所述目标设备中启动预设演练工具,将相应故障注入所述目标设备中。
7.一种故障演练装置,其特征在于,所述装置包括:
任务生成模块,用于接收用户发出的演练请求,根据所述演练请求生成演练任务;
故障注入模块,用于根据所述演练任务在待演练的目标***中确定待演练的目标设备,对所述目标设备执行故障注入操作;
任务执行模块,用于利用所述演练任务对注入故障后的所述目标设备进行故障演练操作,获取所述目标设备的故障演练结果;
报表生成模块,用于根据所述故障演练结果生成演练报表,以便后续根据所述演练报表判断所述目标***是否存在潜在故障问题。
8.根据权利要求7所述的故障演练装置,其特征在于,所述任务生成模块具体用于:
接收用户发出的演练请求,根据所述演练请求确定对应的故障活动类型以及执行演练操作的环境类型;
根据所述故障活动类型从预先配置的多个故障活动中选取对应的故障活动,并根据所述环境类型配置执行环境;
根据所述故障活动以及所述执行环境生成与所述演练请求对应的演练任务。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202011574272.4A 2020-12-25 2020-12-25 一种故障演练方法、装置、计算机设备及存储介质 Pending CN112631846A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011574272.4A CN112631846A (zh) 2020-12-25 2020-12-25 一种故障演练方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011574272.4A CN112631846A (zh) 2020-12-25 2020-12-25 一种故障演练方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112631846A true CN112631846A (zh) 2021-04-09

Family

ID=75325728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011574272.4A Pending CN112631846A (zh) 2020-12-25 2020-12-25 一种故障演练方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112631846A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487186A (zh) * 2021-07-07 2021-10-08 中国工商银行股份有限公司 客户端故障演练方法、装置、计算机***、可读存储介质
CN113608932A (zh) * 2021-10-09 2021-11-05 深圳市科力锐科技有限公司 数据库演练方法、装置、设备及存储介质
CN113687918A (zh) * 2021-08-30 2021-11-23 北京同创永益科技发展有限公司 一种兼容云原生和传统环境的可扩展的混沌工程实验架构
CN113935178A (zh) * 2021-10-21 2022-01-14 北京同创永益科技发展有限公司 一种云原生混沌工程实验的***半径控制***及方法
CN114113984A (zh) * 2021-11-29 2022-03-01 平安壹账通云科技(深圳)有限公司 基于混沌工程的故障演练方法、装置、终端设备及介质
CN114978923A (zh) * 2022-04-21 2022-08-30 京东科技信息技术有限公司 故障演练方法、装置和***
CN115225666A (zh) * 2022-07-07 2022-10-21 支付宝(杭州)信息技术有限公司 生产演练方法、装置、***、应急规则平台和注入平台
CN116703144A (zh) * 2023-08-02 2023-09-05 深圳市东微智能科技股份有限公司 演练信息获取方法、装置、终端设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018036554A1 (zh) * 2016-08-25 2018-03-01 徐克� 设备故障检测***及故障检测装置
CN108259244A (zh) * 2018-01-15 2018-07-06 口碑(上海)信息技术有限公司 客户端应用故障演练方法及装置
US20190205233A1 (en) * 2017-12-28 2019-07-04 Hyundai Motor Company Fault injection testing apparatus and method
CN110851311A (zh) * 2019-11-12 2020-02-28 深圳前海微众银行股份有限公司 服务故障的识别方法、装置、设备及存储介质
CN111459735A (zh) * 2020-03-17 2020-07-28 中国第一汽车股份有限公司 硬件电路故障注入测试方法、装置、设备、介质和***
CN111651353A (zh) * 2020-05-29 2020-09-11 北京百度网讯科技有限公司 故障注入的方法、装置、电子设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018036554A1 (zh) * 2016-08-25 2018-03-01 徐克� 设备故障检测***及故障检测装置
US20190205233A1 (en) * 2017-12-28 2019-07-04 Hyundai Motor Company Fault injection testing apparatus and method
CN108259244A (zh) * 2018-01-15 2018-07-06 口碑(上海)信息技术有限公司 客户端应用故障演练方法及装置
CN110851311A (zh) * 2019-11-12 2020-02-28 深圳前海微众银行股份有限公司 服务故障的识别方法、装置、设备及存储介质
CN111459735A (zh) * 2020-03-17 2020-07-28 中国第一汽车股份有限公司 硬件电路故障注入测试方法、装置、设备、介质和***
CN111651353A (zh) * 2020-05-29 2020-09-11 北京百度网讯科技有限公司 故障注入的方法、装置、电子设备和存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487186A (zh) * 2021-07-07 2021-10-08 中国工商银行股份有限公司 客户端故障演练方法、装置、计算机***、可读存储介质
CN113687918A (zh) * 2021-08-30 2021-11-23 北京同创永益科技发展有限公司 一种兼容云原生和传统环境的可扩展的混沌工程实验架构
CN113687918B (zh) * 2021-08-30 2022-04-29 北京同创永益科技发展有限公司 一种兼容云原生和传统环境的可扩展的混沌工程实验装置
CN113608932A (zh) * 2021-10-09 2021-11-05 深圳市科力锐科技有限公司 数据库演练方法、装置、设备及存储介质
CN113935178A (zh) * 2021-10-21 2022-01-14 北京同创永益科技发展有限公司 一种云原生混沌工程实验的***半径控制***及方法
CN113935178B (zh) * 2021-10-21 2022-09-16 北京同创永益科技发展有限公司 一种云原生混沌工程实验的***半径控制***及方法
CN114113984A (zh) * 2021-11-29 2022-03-01 平安壹账通云科技(深圳)有限公司 基于混沌工程的故障演练方法、装置、终端设备及介质
CN114978923A (zh) * 2022-04-21 2022-08-30 京东科技信息技术有限公司 故障演练方法、装置和***
CN115225666A (zh) * 2022-07-07 2022-10-21 支付宝(杭州)信息技术有限公司 生产演练方法、装置、***、应急规则平台和注入平台
CN116703144A (zh) * 2023-08-02 2023-09-05 深圳市东微智能科技股份有限公司 演练信息获取方法、装置、终端设备以及存储介质

Similar Documents

Publication Publication Date Title
CN112631846A (zh) 一种故障演练方法、装置、计算机设备及存储介质
US10083027B2 (en) Systems and methods for managing software development environments
US11048572B2 (en) System and method for failure management using distributed execution traces
Grambow et al. Befaas: An application-centric benchmarking framework for faas platforms
US20090006493A1 (en) Method For Enabling Traceability And Recovery From Errors During Migration Of Software Applications
CN109936479B (zh) 基于差分检测的控制平面故障诊断***及其实现方法
US20200104246A1 (en) Continuous automation with test suite engine
Wang et al. Automated test case generation for the Paxos single-decree protocol using a Coloured Petri Net model
CN114912255A (zh) 在线仿真实验***及方法
CN117290255A (zh) 一种基于Python和Locust框架的批量接口性能测试方法
Fagerström et al. Verdict machinery: On the need to automatically make sense of test results
CN116467188A (zh) 一种多环境场景下的通用本地复现***和方法
CN115759518A (zh) 基于混沌工程的可用性治理***
CN115617668A (zh) 一种兼容性测试方法、装置及设备
CN115269387A (zh) 接口自动化测试方法及装置
CN117251354A (zh) 应用于区块链***的异常测试方法、装置和计算机设备
CN113238950A (zh) 一种分布式***测试的***及方法、存储介质、电子设备
CN112199229A (zh) 数据处理方法、装置、设备和存储介质
Micskei et al. Robustness testing techniques for high availability middleware solutions
Baek et al. RSX: Reproduction scenario extraction technique for business application workloads in DBMS
CN110650063A (zh) 一种集中式的银行第三方软件仿真***及方法
CN113176943B (zh) 多环境一致性部署方法及装置
CN115757088B (zh) 基于环境变量的故障注入方法、装置和设备
US11921603B2 (en) Automated interoperational tracking in computing systems
CN115982055B (zh) 一种专门服务于java语言开发程序的测试方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination