CN117194205A - 业务系统运行质量信息确定方法、故障注入任务创建方法 - Google Patents

业务系统运行质量信息确定方法、故障注入任务创建方法 Download PDF

Info

Publication number
CN117194205A
CN117194205A CN202210602590.XA CN202210602590A CN117194205A CN 117194205 A CN117194205 A CN 117194205A CN 202210602590 A CN202210602590 A CN 202210602590A CN 117194205 A CN117194205 A CN 117194205A
Authority
CN
China
Prior art keywords
fault
task
simulation
partition
target
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
CN202210602590.XA
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210602590.XA priority Critical patent/CN117194205A/zh
Publication of CN117194205A publication Critical patent/CN117194205A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种业务系统运行质量信息确定方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:响应于故障模拟请求,确定故障模拟请求所指示的业务系统;业务系统中的至少两个分区包括模拟分区和工作分区;确定故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与故障注入任务对应的目标代码信息;发送目标代码信息至模拟分区;发送的目标代码信息,用于触发在模拟分区的由故障模拟请求指示的目标业务功能中注入模拟故障;获取模拟分区在目标业务功能中注入了模拟故障后处理模拟业务流量数据所产生的故障处理结果,根据故障处理结果确定工作分区的运行质量信息。采用本方法能够提升运行质量信息的确定效率。

Description

业务系统运行质量信息确定方法、故障注入任务创建方法
技术领域
本申请涉及计算机技术领域,特别是涉及一种业务系统运行质量信息确定方法、故障注入任务创建方法。
背景技术
随着科学技术的发展,对业务系统的运行质量的要求也越来越高。目前,可通过对业务系统进行混沌实验,通过混沌实验来确定业务系统的运行质量。混沌实验是在业务系统中刻意引入故障,并观察业务系统中存在故障时的行为,通过行为的观察来对系统的运行质量进行检测,进而根据检测结果对系统进行优化,以达到规避故障的目的。
当对业务系统进行混沌实验时,研发人员需在线下测试环境中的业务系统中注入手动注入模拟故障,然而手动注入模拟故障的方式会耗费大量的人力,从而导致业务系统的运行质量信息的确定效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升运行质量信息确定效率的业务系统运行质量信息确定方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种业务系统运行质量信息确定方法,所述方法包括:
响应于故障模拟请求,确定所述故障模拟请求所指示的业务系统;所述业务系统包括至少两个分区,所述至少两个分区包括模拟分区和工作分区;所述模拟分区和工作分区独立部署、具有相同业务功能且配置有相同的运行环境;
所述模拟分区的业务功能用于处理流入所述模拟分区的模拟业务流量数据;所述工作分区的业务功能用于处理流入所述工作分区的真实业务流量数据;
确定所述故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息;
发送所述目标代码信息至所述模拟分区;发送的所述目标代码信息,用于触发在模拟分区的由所述故障模拟请求指示的目标业务功能中注入模拟故障;
获取所述模拟分区在所述目标业务功能中注入了所述模拟故障后处理所述模拟业务流量数据所产生的故障处理结果;
根据所述故障处理结果,确定所述工作分区在处理所述真实业务流量数据时所述工作分区中目标业务功能的运行质量信息。
在其中一个实施例中,所述从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息,包括:
确定所述故障注入任务所对应的目标故障类型;
根据所述目标故障类型,从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息。
在其中一个实施例中,所述根据所述目标故障类型,从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息,包括:
从预设代码信息库中筛选出与所述故障类型相对应的初始代码信息;
确定所述故障注入任务的任务参数,并将所述任务参数输入至所述初始代码信息,得到目标代码信息。
在其中一个实施例中,所述故障注入任务携带有任务参数;所述任务参数包括物理地址和网络端口中的至少一种;
所述发送所述目标代码信息至所述模拟分区,包括:
将所述目标代码信息发送至所述模拟分区中的与所述物理地址对应的目标节点,并触发所述目标节点通过所述网络端口接收所述目标代码信息。
在其中一个实施例中,所述根据所述系统运行相关信息,确定所述业务系统采用的故障防御方式,包括:
确定所述业务系统所包括的业务功能;
针对每个所述业务功能,均确定当前业务功能所包括的功能模块;
确定每个所述功能模块各自对应的系统运行相关信息,并基于所述系统运行相关信息,确定每个功能模块各自采用的故障防御方式;
所述生成与所述故障类型相对应的代码信息,包括:
针对多个功能模块中的每个功能模块,均根据与当前功能模块所采用的故障防御方式相对应的故障类型,生成相应的代码信息。
第二方面,本申请还提供了一种业务系统运行质量信息确定装置,所述装置包括:
模拟请求响应模块,用于响应于故障模拟请求,确定所述故障模拟请求所指示的业务系统;所述业务系统包括至少两个分区,所述至少两个分区包括模拟分区和工作分区;所述模拟分区和工作分区独立部署、具有相同业务功能且配置有相同的运行环境;所述模拟分区的业务功能用于处理流入所述模拟分区的模拟业务流量数据;所述工作分区的业务功能用于处理流入所述工作分区的真实业务流量数据;
代码信息确定模块,用于确定所述故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息;
质量信息确定模块,用于发送所述目标代码信息至所述模拟分区;发送的所述目标代码信息,用于触发在模拟分区的由所述故障模拟请求指示的目标业务功能中注入模拟故障;获取所述模拟分区在所述目标业务功能中注入了所述模拟故障后处理所述模拟业务流量数据所产生的故障处理结果;根据所述故障处理结果,确定所述工作分区在处理所述真实业务流量数据时所述工作分区中目标业务功能的运行质量信息。
在其中一个实施例中,所述模拟请求响应模块还用于接收故障模拟请求;所述故障模拟请求是终端响应于针对创建的故障模拟任务的启动操作而生成的请求;根据所述故障模拟请求中携带的所述注入任务标识,获取故障注入任务。
在其中一个实施例中,所述代码信息确定模块还用于确定所述故障注入任务所对应的目标故障类型;根据所述目标故障类型,从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息。
在其中一个实施例中,所述代码信息确定模块还用于从预设代码信息库中筛选出与所述故障类型相对应的初始代码信息;确定所述故障注入任务的任务参数,并将所述任务参数输入至所述初始代码信息,得到目标代码信息。
在其中一个实施例中,所述故障注入任务携带有任务参数;所述任务参数包括物理地址和网络端口中的至少一种;所述质量信息确定模块还用于所述发送所述目标代码信息至所述模拟分区,包括:将所述目标代码信息发送至所述模拟分区中的与所述物理地址对应的目标节点,并触发所述目标节点通过所述网络端口接收所述目标代码信息。
在其中一个实施例中,所述业务系统运行质量信息确定装置还用于获取所述业务系统的系统运行相关信息;根据所述系统运行相关信息,确定所述业务系统采用的故障防御方式;确定所述故障防御方式所防御的故障类型,并生成与所述故障类型相对应的代码信息,得到代码信息库。
在其中一个实施例中,所述系统运行相关信息至少包括历史故障信息和突发事件信息中的一种;所述故障防御方式至少包括第一故障防御方式和第二故障防御方式中的一种;所述业务系统运行质量信息确定装置还用于确定所述业务系统所包括的业务功能;针对每个所述业务功能,均确定当前业务功能所包括的功能模块;确定每个所述功能模块各自对应的系统运行相关信息,并基于所述系统运行相关信息,确定每个功能模块各自采用的故障防御方式;针对多个功能模块中的每个功能模块,均根据与当前功能模块所采用的故障防御方式相对应的故障类型,生成相应的代码信息。
在其中一个实施例中,所述业务系统运行质量信息确定装置还用于当所述业务系统新增业务功能时,确定新增业务功能包括的新增功能模块;根据所述新增功能模块的模块特征,确定所述新增功能模块所对应的新增故障类型,并生成与所述新增故障类型相对应的新增代码信息。
在其中一个实施例中,所述业务系统运行质量信息确定装置还用于生成代码信息库;所述代码信息库中至少存储有与基础架构故障类型相对应的代码信息、与远程调用故障类型相对应的代码信息和与组件故障类型相对应的代码信息中的一种;与基础架构故障类型相对应的代码信息至少包括用以进行时间跳变代的码信息、用以进行网络抖动的代码信息、用以进行文件删除的代码信息、用以增加负载的代码信息和用以进行关闭进程的代码信息中的一种;与远程调用故障类型相对应的代码信息至少包括用以进行信息更改的代码信息、用以进行数据丢弃的代码信息和用以进行延时的代码信息中的一种;与组件故障类型相对应的代码信息至少包括用以更改键值对的代码信息和用以更改消息队列的代码信息中的一种。
在其中一个实施例中,所述业务系统运行质量信息确定装置还用于在业务系统中注入业务流量数据;所述业务系统的模拟分区中注入有属于模拟类型的模拟业务流量数据;所述业务系统的工作分区中注入有属于真实类型的真实业务流量数据。
在其中一个实施例中,所述运行质量信息包括稳定性信息;所述质量信息确定模块还用于获取在所述模拟分区的目标业务功能中注入模拟故障后,所述模拟分区中的目标业务功能对所述模拟业务流量数据进行处理时产生的报错信息;根据所述报错信息,确定所述模拟分区的目标业务功能的稳定性信息;将所述模拟分区的目标业务功能的稳定性信息,作为所述工作分区中的目标业务功能的稳定性信息。
在其中一个实施例中,所述业务系统运行质量信息确定装置还用于确定生成所述资源转移模拟数据的生成时间;当到达所述生成时间时,对目标对象进行资源转移的转移过程进行模拟,得到资源转移模拟数据。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例提供的任一种业务系统运行质量信息确定方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的任一种业务系统运行质量信息确定方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一种业务系统运行质量信息确定方法中的步骤。
上述业务系统运行质量信息确定方法、装置、计算机设备、存储介质和计算机程序产品,通过响应于故障模拟请求,可确定故障模拟请求所指示的业务系统,以及确定故障模拟请求所指示的故障注入任务。通过确定故障注入任务,可从预设的代码信息库中筛选出目标代码信息,并将筛选出的目标代码信息发送至业务系统中的模拟分区中,如此,便能实现在模拟分区中注入模拟故障的目的。通过在模拟分区中注入模拟故障,可确定模拟分区对注入的模拟故障的处理结果,并基于故障处理结果确定工作分区中目标业务功能的运行质量信息。由于可通过故障注入任务自动在业务系统中注入模拟故障,相比于传统的手动注入模拟故障,本申请可提升模拟故障的注入效率,进而提升运行质量信息的确定效率。
此外,由于业务系统中设置有独立部署且具有相同业务功能的模拟分区和工作分区,且在模拟分区中注入模拟故障,而非在工作分区中注入模拟故障,因此,可基于模拟分区对注入的模拟故障进行处理,基于工作分区向目标对象提供业务功能,如此,便实现可故障隔离的目的。通过对故障进行隔离,使得在真实的运行环境中,业务系统依旧能够正常地提供业务服务,而不影响业务系统的正常使用。其次,通过将将模拟业务流量数据和业务流量数据进行隔离,通过模拟分区中的业务功能对模拟业务流量数据进行处理,以及通过工作分区中的业务功能对真实业务流量数据进行处理,可使得工作分区在处理真实业务流量数据的过程中不受模拟业务流量数据的影响,进而使得工作分区能够正常地向目标对象提供业务服务,从而提升了用户体验。
再者,由于模拟分区与工作分区配置有相同的运行环境,因此,模拟分区和工作分区均可运行于真实的运行环境中,从而实现了在真实的运行环境中对业务系统的运行质量进行测试的目的,进而提升了运行质量信息的准确性。
第一方面,本申请提供了一种故障注入任务创建方法,所述方法包括:
响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能;
响应于针对所述多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务;
响应于针对所述故障模拟任务的任务编辑操作,展示故障类型集;
响应于针对所述故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务;
所述故障注入任务用于指示在所述业务系统的模拟分区中注入模拟故障,并根据在注入所述模拟故障后产生的故障处理结果,确定所述业务系统的工作分区中目标业务功能的运行质量信息。
在其中一个实施例中,所述响应于针对所述多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务,包括:
响应于针对所述多个业务功能的选择操作,展示选中的目标业务功能;
创建与选中的目标业务功能相对应的故障模拟任务,并在故障模拟任务列表中显示创建的所述故障模拟任务。
在其中一个实施例中,所述方法还包括:
获取在所述模拟分区的目标业务功能中注入模拟故障后,所述模拟分区产生的报错信息;
根据所述报错信息,确定所述目标业务功能产生的运行错误;
确定所述运行错误所属的运行错误类型,将所述运行错误和所述运行错误所属的运行错误类型进行展示。
第二方面,本申请还提供了一种故障注入任务创建装置,所述装置包括:
业务功能展示模块,用于响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能;
模拟任务生成模块,用于响应于针对所述多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务;
注入任务生成模块,用于响应于针对所述故障模拟任务的任务编辑操作,展示故障类型集;响应于针对所述故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务;所述故障注入任务用于指示在所述业务系统的模拟分区中注入模拟故障,并根据在注入所述模拟故障后产生的故障处理结果,确定所述业务系统的工作分区中目标业务功能的运行质量信息。
在其中一个实施例中,所述模拟任务生成模块用于响应于针对所述多个业务功能的选择操作,展示选中的目标业务功能;创建与选中的目标业务功能相对应的故障模拟任务,并在故障模拟任务列表中显示创建的所述故障模拟任务。
在其中一个实施例中,所述模拟任务生成模块还用于展示故障模拟任务列表;创建的所述故障模拟任务显示于故障任务列表中;所述故障模拟任务列表中至少展示有故障模拟任务指示的目标业务功能、故障模拟任务的创建时间、故障模拟任务的结束时间和故障模拟任务的任务处理进度中的一种;所述任务处理进度至少包括故障模拟任务正在进行、故障模拟任务手动结束和故障模拟任务自动结束中的一种。
在其中一个实施例中,所述注入任务生成模块还用于当所述故障模拟任务所指示的目标业务功能为新增业务功能时,响应于针对所述故障模拟任务的任务编辑操作,确定在历史时刻生成的历史故障类型;对所述历史故障类型进行迁移,得到待生成的故障模拟任务所对应的故障类型集,并对所述故障类型集进行展示。
在其中一个实施例中,所述注入任务生成模块还用于响应于针对所述故障模拟任务的触发操作,展示所述故障模拟任务的任务详情页面;所述任务详情页面中展示有故障注入任务添加元素;响应于针对所述故障注入任务添加元素的触发操作,展示注入任务编辑页面,并通过所述注入任务编辑页面展示故障类型集。
在其中一个实施例中,所述注入任务生成模块还用于响应于针对所述注入任务编辑页面中展示的所述故障类型集的选择操作,展示选中的目标故障类型;响应于针对所述注入任务编辑页面的编辑操作,展示编辑得到的任务参数;根据所述任务参数,创建与所述目标故障类型对应的故障注入任务并展示。
在其中一个实施例中,所述注入任务生成模块还用于展示任务详情页面;所述任务详情页面展示有故障注入任务列表;所述故障注入任务列表中至少展示有故障模拟任务所包括的故障注入任务的任务参数、任务状态和所属故障类型中的一种;所述任务参数至少包括功能模块标识和地址信息中的一种;所述功能模块标识用于指示所述业务系统的业务功能中待注入模拟故障的功能模块;所述地址信息指的是模拟分区中接收故障注入任务的目标节点的物理地址信息。
在其中一个实施例中,所述故障注入任务创建装置还用于获取在所述模拟分区的目标业务功能中注入模拟故障后,所述模拟分区产生的报错信息;根据所述报错信息,确定所述目标业务功能产生的运行错误;确定所述运行错误所属的运行错误类型,将所述运行错误和所述运行错误所属的运行错误类型进行展示。
在其中一个实施例中,所述故障注入任务创建装置还用于获取所述模拟分区的目标业务功能运行时产生历史运行数据和目标运行数据;所述历史运行数据为注入模拟故障前,所述目标业务功能产生的数据;所述目标运行数据为注入模拟故障后,所述目标业务功能产生的数据;确定所述目标运行数据与所述历史运行数据之间的数据对比结果;根据所述对比结果确定所述目标业务功能的运行质量信息并展示。
在其中一个实施例中,所述故障注入任务创建装置还用于展示所述业务系统包括的多个地域分区;响应于针对所述多个地域分区的选择操作,展示选中的目标地域分区;确定所述目标地域分区中的模拟分区,并获取所述模拟分区中的目标业务功能运行时所产生的历史运行数据和目标运行数据。
在其中一个实施例中,所述故障注入任务创建装置还用于当具有多个故障模拟任务时,获取在所述模拟分区中注入各所述故障模拟任务各自对应的模拟故障后产生的故障处理结果;综合各所述故障处理结果,得到所述业务系统的运行质量信息并展示。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例提供的任一种故障注入任务创建方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的任一种故障注入任务创建方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一种故障注入任务创建方法中的步骤。
上述故障注入任务创建方法、装置、计算机设备、存储介质和计算机程序产品,通过响应于故障模拟任务添加操作,可展示业务系统所提供的多个业务功能。通过展示多个业务功能,可响应于针对多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务。通过创建故障模拟任务,可响应于针对故障模拟任务的任务编辑操作,展示故障类型集,如此,便可通过在故障类型集中选中的目标故障类型创建相应的故障注入任务,进而通过创建的故障注入任务确定业务系统的工作分区中目标业务功能的运行质量信息。由于本申请可通过响应于用户的操作自动创建用以注入模拟故障的故障注入任务,相比于传统的手动注入模拟故障,本申请可提升故障注入任务的创建效率,进而提升运行质量信息的确定效率。
此外,由于业务系统中设置有独立部署且具有相同业务功能的模拟分区和工作分区,因此,可基于模拟分区对注入的模拟故障进行处理,基于工作分区向目标对象提供业务功能,如此,便实现可故障隔离的目的。再者,由于模拟分区设置于业务系统且与工作分区一致,因此,模拟分区可运行于真实的运行环境中,从而实现了在真实的运行环境中对业务系统的运行质量进行测试的目的,进而提升了运行质量信息的准确性。
附图说明
图1为一个实施例中业务系统运行质量信息确定方法的应用环境图;
图2为一个实施例中业务系统运行质量信息确定方法的流程示意图;
图3为一个实施例中目标代码信息的发送示意图;
图4为一个实施例中任务详情页面的示意图;
图5为一个实施例中注入任务编辑页面示意图;
图6为一个实施例中通过配置文件生成故障注入任务的示意图;
图7为一个实施例中事件中心的示意图;
图8为一个实施例中三维坐标轴的示意图;
图9为一个实施例中故障类型的示意图;
图10为一个实施例中业务流量数据路由的示意图;
图11为一个实施例中故障注入任务创建方法的流程示意图;
图12为一个实施例中故障模拟任务列表展示页面的示意图;
图13为一个实施例中业务功能展示页面的示意图;
图14为一个实施例中分区示意图;
图15为一个具体实施例中业务系统运行质量信息确定方法的流程示意图;
图16为一个具体实施例中故障注入任务创建方法的流程示意图;
图17为一个实施例中业务系统运行质量信息确定装置的结构框图;
图18为一个实施例中故障注入任务创建装置的结构框图;
图19为一个实施例中计算机设备的内部结构图;
图20为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的业务系统运行质量信息确定方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与第一服务器104进行通信,第一服务器104通过网络与第二服务器106进行通信。数据存储系统可以存储第一服务器104需要处理的数据。数据存储系统可以集成在第一服务器104上,也可以放在云上或其他服务器上。终端102中运行有目标客户端,通目标客户端可创建故障模拟任务,并对故障模拟任务进行编辑,得到故障模拟任务所包括的故障注入任务。第一服务器104可为目标客户端的后台服务器,当第一服务器104接收到目标客户端发送的故障模拟任务时,第一服务器104可获取故障模拟任务所包括的故障注入任务,并确定与故障注入任务相对应的目标代码信息,将目标代码信息发送至第二服务器106。第二服务器106中部署有业务系统,当第二服务器106接收到目标代码信息时,可触发在业务系统的模拟分区中注入模拟故障,从而通过注入的模拟故障确定业务系统的运行质量信息。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。第一服务器104和第二服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。第一服务器104和第二服务器106可为同一服务器,也可为不同服务器。
在一个实施例中,如图2所示,提供了一种业务系统运行质量信息确定方法,以该方法应用于图1中的第一服务器为例进行说明,包括以下步骤:
步骤202,响应于故障模拟请求,确定故障模拟请求所指示的业务系统;业务系统包括至少两个分区,至少两个分区包括模拟分区和工作分区;模拟分区和工作分区独立部署、具有相同业务功能且配置有相同的运行环境;模拟分区的业务功能用于处理流入模拟分区的模拟业务流量数据;工作分区的业务功能用于处理流入工作分区的真实业务流量数据。
其中,业务系统指的是提供多个业务功能的系统。业务系统中可包括有多个分区,不同的分区独立部署且具有相同的业务功能,比如,可在每个分区中均部署有用以实现基于二维码进行资源转移的完整架构。多个分区中包括有模拟分区和工作分区,其中,工作分区指的是为目标对象提供服务的分区,比如,可通过工作分区为目标对象提供资源转移服务。模拟分区指的是用以注入模拟故障的分区,比如,可通过模拟分区进行混沌实验。工作分区和模拟分区均可运行于生产环境中,由于工作分区和模拟分区相互独立,因此,在模拟分区中注入的模拟故障并不会影响工作分区为目标对象提供服务。
具体地,当需要确定业务系统中的业务功能的运行质量信息时,用户可通过终端中的目标客户端创建故障模拟任务,比如,创建用以对业务系统中的通知消息发送这一业务功能的运行质量进行确定的故障模拟任务。当用户确定启动创建的故障模拟任务时,终端即可向第一服务器发送故障模拟请求,从而当第一服务器接收到故障模拟请求时,即可确定故障模拟请求所指示的业务系统。
其中,运行质量信息反映了运行的质量,运行质量信息具体包括有稳定性和健壮性,也即,运行质量信息可反映提供业务功能的系统架构的稳定性和健壮性。其中,稳定性指的是提供业务功能的系统架构在受到扰动后,经过一段过渡过程后,仍然能够回复到原来的平衡状态的能力。健壮性指的是提供业务功能的系统架构在执行过程中处理错误,以及在遭遇错误输入、运算等异常时继续正常运行的能力。
进一步地,为了在注入模拟故障的同时,不影响业务系统的正常使用,第二服务器可将真实类型的真实业务流量数据发送至工作分区,以使工作分区对真实业务流量数据进行处理,并基于处理结果向目标对象提供服务。以及将模拟类型的模拟业务流量数据发送至模拟分区中,以使模拟分区对模拟业务流量数据进行处理。其中,流量业务数据指的是流入至业务系统中的数据,比如,在业务系统可用于进行资源转移时,流量业务数据具体可以为提交的资源转移订单数据;在业务系统可用于进行即时通信时,业务流量数据具体可以为目标对象之间的通信消息。
其中,模拟类型的模拟业务流量数据指的是模拟业务运行时生成的数据,模拟业务指的是通过工具模拟得到的业务。比如,模拟业务可以为通过流量构造工具对真实的资源转移订单提交业务进行模拟而得到的业务,相应的,模拟业务流量数据可为模拟的提交资源转移订单时生成的模拟订单数据。真实类型的真实业务流量数据指的是真实的业务运行时产生的数据,真实业务指的是向真实的目标对象提供的业务。比如,真实业务流量数据可以为真实的用户在提交资源转移订单时产生的资源转移订单数据。容易理解地,业务系统可通过真实业务流量数据向真实用户提供业务服务,业务系统可通过模拟业务流量数据用于执行混沌实验。
在其中一个实施例中,可通过流量构造工具来生成模拟业务流量数据,比如,可通过流量构造工具来构造一个虚假的资源转移订单数据。可将来自于预设系统中的流量业务数据作为真实业务流量数据,比如,可将来自于商户系统的资源转移订单数据作为真实业务流量数据,从而业务系统可对来自于商户系统的资源转移订单数据进行处理,以执行与订单相对应的资源转移过程。
在其中一个实施例中,当创建故障模拟任务时,终端中的目标客户端可显示有多个系统标识,从而用户可根据需求从中选择出目标系统标识,进而目标客户端可基于用户选择的目标系统标识创建故障模拟任务。当启动创建的故障模拟任务时,目标客户端可生成与故障模拟任务相对应的携带有目标系统标识的故障模拟请求,并将故障模拟请求发送至第一服务器。当第一服务器接收到故障模拟请求时,第一服务器可基于故障模拟请求携带的目标系统标识,确定该故障模拟请求所指示的业务系统。
在其中一个实施例中,业务系统可包括有多个子业务,不同子业务可提供不同的业务功能。比如,业务系统可提供基于二维码进行资源转移的子业务、基于生物特征进行资源转移的子业务以及即时通信子业务等。针对每一个子业务,均可创建至少一个模拟分区和至少一个工作分区,并在创建的模拟分区和工作分区中均部署有实现该子业务的完整架构。比如,可对基于二维码进行资源转移的子业务进行分区处理,创建模拟分区和工作分区。其中,工作分区和模拟分区中均部署有基于二维码进行资源转移的系统架构;工作分区用以向目标对象提供基于二维码进行资源转移服务;模拟分区用以接收注入的模拟故障,以基于注入的模拟故障进行混沌实验。混沌实验指的是通过在系统中注入故障来观察系统的行为和反映,以通过系统的行为和反映来确定系统的运行质量。
在其中一个实施例中,业务系统的子业务中可提供有多个业务功能,比如,委托进行资源转移的子业务中可提供有资源转移业务功能、资源转移结果发送业务功能和通知消息发送业务功能等。当需要确定业务功能的运行质量时,用户可通过终端中的目标客户端,创建针对相应业务功能的故障模拟任务。由于针对不同的业务功能均可创建相应的故障模拟任务,使得后续可基于不同的故障模拟任务确定不同业务功能的运行质量信息,从而实现对业务系统所提供的业务功能进行全面质量分析的目的。步骤204,确定故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息。
具体地,当用户通过目标客户端创建故障模拟任务时,用户还可对该故障模拟任务进行编辑,创建该故障模拟任务所包括的故障注入任务。其中,故障注入任务指的是在提供业务功能的服务中注入模拟故障的任务。由于当在业务功能中注入一个模拟故障时,往往并不能基于该注入的模拟故障得到全面的运行质量信息,因此,为了得到全面的运行质量信息,需要注入多个不同的模拟故障,从而所创建的故障模拟任务中可包括有多个故障注入任务。比如,当需要确定资源转移功能的运行质量信息时,可创建针对资源转移功能的故障模拟任务,并对创建的故障模拟任务进行编辑,得到用以关闭资源转移进程的故障注入任务、用以对资源转移信息进行删除的故障注入任务、和用以修改资源转移信息的故障注入任务等,如此,便可通过所创建的故障注入任务关闭资源转移进程、对资源转移信息进行删除以及修改资源转移信息,并确定资源转移功能对关闭资源转移进程、删除资源转移信息和修改资源转移信息的反映,基于该反映确定资源转移功能的运行质量信息。其中,关闭资源转移进程、删除资源转移信息和修改资源转移信息即为注入的模拟故障。
当用户启动创建的故障模拟任务以触发终端将故障模拟请求发送至第一服务器时,第一服务器即可确定故障模拟请求所指示的故障注入任务,也即,第一服务器可确定与故障模拟请求相对应的故障模拟任务所包括的故障注入任务。当确定得到故障注入任务时,第一服务器可从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息。其中,代码信息指的是脚本中所记载的信息,其具体可以为开发工具所支持的语言写出来的源文件。代码信息中记载有生成模拟故障所需的代码,通过运行该代码,即可注入模拟故障。比如,在上述举例中,当生成用以对资源转移信息进行删除的故障注入任务时,第一服务器可从代码信息库中筛选出用以实现资源转移信息删除的目标代码信息。
在其中一个实施例中,当终端确定启动故障模拟任务时,终端可将故障模拟任务所包括的故障注入任务发送至第一服务器。
在其中一个实施例中,当终端确定启动故障模拟任务时,终端可确定启动的故障模拟任务所包括的故障注入任务,并生成包括有多个故障注入任务的故模拟请求,将生成的故障模拟请求发送至第一服务器。当用户启动多个故障模拟任务时,终端可基于各故障模拟任务各自包括的故障注入任务生成故障模拟请求,并将故障模拟请求发送至第一服务器。
在其中一个实施例中,用户可针对多种模拟故障预先编写好多个代码信息,并将编写好的代码信息进行存储,得到代码信息库。
在其中一个实施例中,代码信息库中可存储有针对业务系统中的不同子业务的不同业务功能所编写代码信息,从而当需要筛选出目标代码信息时,第一服务器可优先筛选出针对故障模拟请求所指示的目标子分区编写得到的第一候选代码信息,再从第一候选代码信息中筛选出针对故障模拟请求所指示目标业务功能编写得到的第二候选代码信息,之后从第二候选代码信息中筛选出与故障注入任务相对应的目标代码信息。
步骤206,发送目标代码信息至模拟分区;发送的目标代码信息,用于触发在模拟分区的由故障模拟请求指示的目标业务功能中注入模拟故障。
具体地,当获取得到目标代码信息时,第一服务器即可将目标代码信息发送至第二服务器的模拟分区中,从而第二服务器的模拟分区可运行接收到的目标代码信息,以基于目标代码信息在由故障模拟请求指示的目标业务功能中注入模拟故障。比如,当目标代码信息与用以进行资源转移信息删除的故障注入任务相对应时,当模拟分区运行该目标代码信息时,即可删除资源转移信息,其中,删除资源转移信息即可认为是在资源转移功能中注入了一个模拟故障。
在其中一个实施例中,由于模拟分区是部署于第二服务器中的,因此,可确定第二服务器的物理地址以及确定第二服务器接收该目标代码信息的目标端口,从而基于物理地址和目标端口,将目标代码信息发送至第二服务器。其中,物理地址具体可以为IP地址(Internet Protocol Address,互联网协议地址)。
在其中一个实施例中,参考图3,目标客户端具体可以为混沌实验工具的客户端。当用户通过混沌实验工具的客户端创建故障模拟任务,以及创建故障模拟任务中的故障注入任务时,混沌实验工具即可通过调用逻辑从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息,并通过下发通道将目标代码信息发送至部署有模拟分区的第二服务器,以通过第二服务器在模拟分区中注入模拟故障。图3示出了一个实施例中目标代码信息的发送示意图。
在其中一个实施例中,当在模拟分区中注入模拟任务的同时,工作分区依旧能够正常地向目标对象提供相应的业务服务,而不影响目标对象的使用体验。
步骤208,获取模拟分区在目标业务功能中注入了模拟故障后处理所述模拟业务流量数据所产生的故障处理结果;
步骤210,根据故障处理结果,确定工作分区在处理真实业务流量数据时所述工作分区中目标业务功能的运行质量信息。
具体地,当在模拟分区中注入了模拟故障以及模拟业务流量数据时,第一服务器即可获取模拟分区在注入模拟故障以及模拟业务流量数据后,对该模拟故障的处理结果,并根据故障处理结果确定模拟分区中的目标业务功能的运行质量信息。由于模拟分区和工作分区独立部署且具有相同业务功能,因此,通过确定模拟分区中的目标业务功能的运行质量信息,即可确定工作分区中的目标业务功能的运行质量信息。
比如,当模拟业务流量数据为资源转移订单数据,且创建与资源转移功能相对应的故障模拟任务,以及创建用以关闭资源转移进程的故障注入任务、用以对资源转移信息进行删除的故障注入任务时,第一服务器即可在模拟分区中的目标业务中注入与关闭资源转移进程相对应的模拟故障,并以使得模拟分区通过注入的模拟故障执行资源转移进程关闭指令。第一服务器还可在在模拟分区中的目标业务中注入与资源转移信息删除相对应的模拟故障,并以使得模拟分区通过注入的模拟故障执行资源转移信息删除指令。当注入了模拟故障后,第一服务器可确定模拟分区在对资源转移订单数据进行处理的过程中,产生的故障处理结果。故障处理结果至少包括资源转移订单数据被正常处理,以及资源转移数据未被正常处理中的一种。比如,第一服务器查看在关闭了资源转移进程后,模拟分区是否还能够重启资源转移进程,并基于重启的资源转移进程正常地处理资源转移订单数据,又比如,第一服务器查看资源转移信息是否被删除,以及在删除资源转移信息后,模拟分区是否依旧能够正常地处理资源转移订单数据。进一步地,第一服务器基于故障处理结果确定模拟分区中资源转移功能的运行质量信息,并将模拟分区中资源转移功能的运行质量信息,作为工作分区中资源转移功能的运行质量信息。容易理解地,由于可针对不同业务功能创建不同的故障模拟任务,从而可综合不同的故障模拟任务的任务处理结果来确定业务系统的运行质量信息,也即综合各业务功能的运行质量信息来确定业务系统的运行质量信息。
上述业务系统运行质量信息确定方法中,通过响应于故障模拟请求,可确定故障模拟请求所指示的业务系统,以及确定故障模拟请求所指示的故障注入任务。通过确定故障注入任务,可从预设的代码信息库中筛选出目标代码信息,并将筛选出的目标代码信息发送至业务系统中的模拟分区中,如此,便能实现在模拟分区中注入模拟故障的目的。通过在模拟分区中注入模拟故障,可确定模拟分区对注入的模拟故障的处理结果,并基于故障处理结果确定工作分区中目标业务功能的运行质量信息。由于可通过故障注入任务自动在业务系统中注入模拟故障,相比于传统的手动注入模拟故障,本申请可提升模拟故障的注入效率,进而提升运行质量信息的确定效率。
此外,由于业务系统中设置有独立部署且具有相同业务功能的模拟分区和工作分区,且在模拟分区中注入模拟故障,而非在工作分区中注入模拟故障,因此,可基于模拟分区对注入的模拟故障进行处理,基于工作分区向目标对象提供业务功能,如此,便实现可故障隔离的目的。通过对故障进行隔离,使得在真实的运行环境中,业务系统依旧能够正常地提供业务服务,而不影响业务系统的正常使用。其次,通过将将模拟业务流量数据和业务流量数据进行隔离,通过模拟分区中的业务功能对模拟业务流量数据进行处理,以及通过工作分区中的业务功能对真实业务流量数据进行处理,可使得工作分区在处理真实业务流量数据的过程中不受模拟业务流量数据的影响,进而使得工作分区能够正常地向目标对象提供业务服务,从而提升了用户体验。
再者,由于模拟分区与工作分区配置有相同的运行环境,因此,模拟分区和工作分区均可运行于真实的运行环境中,从而实现了在真实的运行环境中对业务系统的运行质量进行测试的目的,进而提升了运行质量信息的准确性。
在一个实施例中,在响应于故障模拟请求,确定故障模拟请求所指示的业务系统之前,上述方法还包括:接收故障模拟请求;故障模拟请求是终端响应于针对创建的故障模拟任务的启动操作而生成的请求;故障模拟任务包括有至少一个故障注入任务;故障模拟请求携带有故障模拟任务所包括的故障注入任务的注入任务标识;确定故障模拟请求所指示的故障注入任务,包括:根据故障模拟请求中携带的注入任务标识,获取故障注入任务。
具体地,当创建故障模拟任务时,用户可启动该故障模拟任务,从而终端可基于用户的启动操作,生成故障模拟请求,并将故障模拟请求发送至第一服务器。比如,参考图4,当创建故障模拟任务时,终端可在故障模拟任务列表中显示创建的故障模拟任务,当用户点击故障模拟任务列表中的故障模拟任务时,终端即可展示与点击的故障模拟任务相对应的任务详情页面。任务详情页面中显示有故障模拟任务启动元素401,从而当用户点击故障模拟任务启动元素时,终端即可确定该故障模拟任务所包括的故障注入任务,并根据包括的故障注入任务的注入任务标识,生成相应的故障模拟请求。进一步地,当第一服务器接收到终端发送的故障模拟请求时,第一服务器可对接收到的故障模拟请求进行解析,得到故障模拟请求所携带的注入任务标识,并获取与注入任务标识相对应的故障注入任务。图4示出了一个实施例中任务详情页面的示意图。
在其中一个实施例中,当终端确定用户点击故障模拟任务启动元素时,终端可将该故障模拟任务发送至第一服务器。
上述实施例中,通过确定故障模拟请求,可基于故障模拟请求确定故障注入任务,从而后续可基于故障注入任务在模拟任务中注入模拟故障。
在一个实施例中,从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息,包括:确定故障注入任务所对应的目标故障类型;根据目标故障类型,从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息。
具体地,故障注入任务中携带有故障类型,从而第一服务器可对故障注入任务进行解析,以确定故障注入任务所对应的目标故障类型。预设代码信息库中可存储有不同故障类型各自对应的代码信息,第一服务器可从代码信息库中筛选出与目标故障类型相对应的目标代码信息。
在其中一个实施例中,参考图5,图5示出了一个实施例中注入任务编辑页面示意图,注入任务编辑页面中可显示有多种故障类型,比如,可显示有更改请求故障类型、关闭进程故障类型和网络延时故障类型等。用户可从多种故障类型中选择目标故障类型,从而终端可创建与目标故障类型相对应的故障注入任务。比如,当用户期望通过创建的故障注入任务向模拟分区中注入一个关闭进程的模拟故障时,用户即可将关闭进程故障类型作为目标故障类型,进而终端生成用以进行进程关闭的故障注入任务。
在其中一个实施例中,用户可预先确定多种故障类型,并生成每种故障类型各自对应的代码信息,得到代码信息库。
上述实施例中,通过确定目标故障类型,可基于所确定的目标故障类型快速从代码信息库中筛选出目标代码信息,从而提升了目标代码信息的确定效率。
在一个实施例中,根据目标故障类型,从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息,包括:从预设代码信息库中筛选出与故障类型相对应的初始代码信息;确定故障注入任务的任务参数,并将任务参数输入至初始代码信息,得到目标代码信息。
具体地,在生成故障注入任务时,还可对故障注入任务进行编辑,以确定故障注入任务的任务参数。比如,参考图5,用户可通过故障注入任务的编辑页面来编辑故障注入任务的任务参数。当第一服务器获取得到故障注入任务,第一服务器可确定故障注入任务所对应的目标故障类型,并从代码信息库中筛选出与目标故障类型相对应的初始代码信息。进一步地,第一服务器可对对故障注入任务进行解析,确定故障注入任务的任务参数,并将解析得到的任务参数输入至初始代码信息中,得到目标代码信息。
在其中一个实施例中,业务功能中可包括有多个功能模块,也即多个功能模块共同实现一个业务功能。因此,任务参数可包括有待注入模拟故障的功能模块标识。进而,当目标代码信息中输入有功能模块标识时,模拟分区即可在与该功能模块标识相对应的功能模块中注入模拟故障。在其中一个实施例中,功能模块也可称作服务,因此可通过任务参数在相应的服务中注入模拟故障。其中,业务功能中的每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,每个服务都围绕着具体业务进行构建,并且能够独立地部署到运行环境、测试环境中。
在其中一个实施例中,任务参数中可包括有延长时间和自动回滚时间。通过设置延长时间,可延长注入模拟故障的时间。比如,当用户期望模拟分区以接收到目标代码信息为时间起点延长一定时间后,再在目标业务功能中注入模拟故障时,用户即可通过故障注入任务编辑页面来设置延长时间。通过设置自动回滚时间,可在到达自动回滚时间时,将模拟分区回滚至上一版本。
在其中一个实施例中,初始代码信息中可记载有形式参数,当获取得到故障注入任务的任务参数时,第一服务器可将初始代码信息中的形式参数替换为具体的任务参数,从而得到目标代码信息。
上述实施例中,通过预先设置初始代码信息,可在接收到故障注入任务时,基于故障注入任务的任务参数和预先生成的初始代码信息快速生成目标代码信息,从而提升了目标代码信息的生成效率。
在一个实施例中,故障注入任务携带有任务参数;任务参数包括物理地址和网络端口中的至少一种;发送目标代码信息至模拟分区,包括:将目标代码信息发送至模拟分区中的与物理地址对应的目标节点,并触发目标节点通过网络端口接收目标代码信息。
具体地,故障注入任务的任务参数中还可包括有物理地址和网络端口。从而当第一服务器获取得到物理地址时,可将与故障注入任务相对应的目标代码信息发送至具有该物理地址的目标节点,并触发目标节点通过任务参数中的网络端口来接收目标代码信息。其中,网络端口指的是终端、服务器等计算机设备与外界进行通信的接口。
在其中一个实施例中,业务系统中的模拟分区可包括有多个节点,比如,可在不同的地理区域中设置不同节点,从而通过多个节点的设置来实现分流的目的。其中,节点可以为独立的服务器或者是多个服务器组成的服务器集群。
在其中一个实施例中,参考图6,在创建故障注入任务时,用户还可通过导入配置文件的方式来触发终端生成故障注入任务。比如,当用户期望创建故障注入任务时,用户可触发终端展示如图6所示的导入页面。导入页面中可显示有上传控件601,用户可通过上传控件601来上传配置文件。其中,上传的配置文件中记载有待生成的故障注入任务的任务参数和目标故障类型,当终端接收到用户上传的配置文件时,即可基于任务参数,生成与目标故障类型相对应的故障注入任务602。进一步地,终端可通过故障注入任务列表来显示创建的故障注入任务,并通过故障注入任务来触发在模拟分区中注入模拟故障。图6示出了一个实施例中通过配置文件生成故障注入任务的示意图。
在其中一个实施例中,导入页面中可显示有故障注入任务的创建方式。比如,参考图6,导入页面中可显示有手动新增方式603和基于配置文件新增方式604。当用户选择基于配置文件新增方式时,用户即可通过该导入页面上传配置文件。当用户选择手动新增方式时,终端即可显示如图5所示的故障注入任务的编辑页面,从而通过故障注入任务的编辑页面编辑任务参数。
在其中一个实施例中,用户可预先确定待生成的故障注入任务的任务参数和目标故障类型,并将任务参数和目标故障类型写入至配置文件中,以使终端通过配置文件创建相应的故障注入任务。
上述实施例中,通过确定物理地址和网络端口,可直接基于物理地址和网络端口将目标代码信息发送至相应的目标节点,以使后续可在目标节点中的目标业务功能中注入模拟故障。
在一个实施例中,代码信息库的生成方法包括:获取业务系统的系统运行相关信息;根据系统运行相关信息,确定业务系统采用的故障防御方式;确定故障防御方式所防御的故障类型,并生成与故障类型相对应的代码信息,得到代码信息库。
具体地,在进行模拟故障注入之前,还需要创建代码信息库。第一服务器可获取业务系统的系统运行相关信息,并对系统运行相关信息进行分析,得到业务系统所采用的故障防御方式。其中,该故障防御方式可以为业务系统已经采用的防御方式,也可为业务系统即将采用的防御方式。其中,故障防御方式指的是预防因故障导致业务系统运行出错的方式。比如,故障防御方式可以为在数据中设置防篡改机制,从而基于该机制可以预防因数据被篡改而导致业务系统运行出错的事件。进一步地,当确定故障防御方式时,第一服务器可确定故障防御方式所防御的故障类型,从而生成与该故障类型相对应的代码信息。比如,在上述举例中,当故障防御方式为在数据中设置防篡改机制时,可确定该故障防御方式所防御的故障类型为修改数据类型,从而第一服务器生成与修改数据类型相对应的代码信息,进而,当模拟分区运行该代码信息时,可基于该代码信息对数据进行修改。
在其中一个实施例中,当获取得到系统运行相关信息时,第一服务器可生成如下的故障类型展示表格:
表1:故障类型展示表格
其中,表1中的优先级为故障类型的优先级,第一服务器可优先生成优先级高的故障类型的代码信息。目标资源指的是待注入与故障类型相对应的模拟故障的功能模块。通过确定故障防御方式、故障类型和目标资源三者之间的对应关系,可基于该对应关系生成代码信息,从而得到代码信息库。
上述实施例中,由于故障防御方式可对系统中的故障进行防御,因此,通过确定与故障防御方式相对应的故障类型,并生成与确定的故障类型相对应的代码信息,可基于代码信息在业务系统中注入相应的模拟故障,从而通过注入的模拟故障对业务系统中的故障防御方式的可行性进行验证,进而通过验证结果得到业务系统的运行质量信息。
在一个实施例中,系统运行相关信息至少包括历史故障信息和突发事件信息中的一种;故障防御方式至少包括第一故障防御方式和第二故障防御方式中的一种;根据系统运行相关信息,确定业务系统采用的故障防御方式,包括:确定在发生与历史故障信息相对应的历史故障时,业务系统所采用第一故障防御方式;确定在发生与突发事件信息相对应的突发事件时,业务系统所采用第二故障防御方式。
具体地,系统运行相关信息可以包括历史故障信息和突发事件信息。其中,历史故障信息指的是在历史时刻所发生的故障的信息。比如,当在历史时刻业务系统无法正常从任务队列中提取任务时,即可将该故障称作历史故障,将与历史故障相关的信息称作历史故障信息。突发事件信息指的是与突发事件相关的信息,突发事件为突然发生的可能影响业务系统正常运行的事件。该突发事件可以为业务系统已经发生的事件,可也为未来可能发生的事件。因此,当确定历史故障信息时,第一服务器可确定在发生与历史故障信息相对应的历史故障时,业务系统所采用的防御该历史故障的方式,得到第一故障防御方式。当确定突发事件信息时,第一服务器确定业务系统所采用的防御该突发事件的方式,得到第二故障防御方式。其中,防御指的是防止故障或者突发事件造成业务系统中断,从而故障防御方式指的是防止故障或者突发事件造成业务系统终端的方法。为了提升业务系统的运行质量,可在业务系统中部署故障防御方式。
在其中一个实施例中,第一服务器可从业务连续性计划中提取突发事件信息。业务连续性计划指的是一套基于业务运行规律创建的管理要求或规章流程。通过制定业务连续性计划,可使得业务系统在面对突发事件时能够做出迅速的反应,以确保关键业务功能能够正常运行,而不造成业务中断或改变业务。
在其中一个实施例中,业务连续性计划中规划了业务系统可能发生的突发事件,以及在面对该突发事件时,业务系统所采取的防御方式,因此,第一服务器可从业务连续性规划中提取处突发事件信息,以及提取出与突发事件信息相对应的第二故障防御方式。比如,业务连续性计划中规划了当系统负载超出阈值时,自动进行扩容。此时,提取出的突发事件信息可为系统负载超出阈值,提取出的第二故障防御方式可为进行扩容。相应的,第一服务器所生成的故障类型可为负载类型,生成的代码信息可使得模拟分区中的CPU(central processing unit,中央处理器)的负载高。
在其中一个实施例中,当从业务系统中提取出突发事件时,第一服务器可从网络中查找用以防御该突发事件的防御方式,并将查找到的防御方式作为第二故障防御方式。
上述实施例中,通过确定历史故障信息和突发事件信息,可分别针对历史故障信息和突发事件信息生成相应的故障防御方式,从而使得所生成的故障防御方式更为丰富,进而使得所确定的故障类型更为丰富。
在一个实施例中,根据系统运行相关信息,确定业务系统采用的故障防御方式,包括:确定业务系统所包括的业务功能;针对每个业务功能,均确定当前业务功能所包括的功能模块;确定每个功能模块各自对应的系统运行相关信息,并基于系统运行相关信息,确定每个功能模块各自采用的故障防御方式;生成与故障类型相对应的代码信息,包括:针对多个功能模块中的每个功能模块,均根据与当前功能模块所采用的故障防御方式相对应的故障类型,生成相应的的代码信息。
具体地,第一服务器可对业务系统进行拆解,得到业务系统所包括的业务功能,以及确定各业务功能各自包括的功能模块。针对每个功能模块,第一服务器均可根据历史故障信息和业务连续性计划,确定相应功能模块所采用的故障防御方式。当确定故障防御方式时,第一服务器可确定故障防御方式所防御的故障类型,并根据故障类型生成相应的代码信息。当不同功能模块所对应的故障类型有重复时,第一服务器可去除重复的故障类型,并生成不同故障类型所对应的不同代码信息。通过去除重复的故障类型,可减少生成重复代码信息的概率,从而节约了生成代码信息时所耗费的计算机资源。
比如,参考图7,图7示出了一个实施例中事件中心的示意图。事件中心可包括有消息发布模块(也称作发布者)、消息订阅模块(也称作订阅者)和事件处理模块(也称作消费者)等。由于消息发布模块可对事件消息进行发布,以使消息处理模块可接收与事件消息相对应的事件,并对事件进行处理,因此,为了减少消息发布模块进行错误事件消息发布,业务系统所采用的故障防御方式可为对消息发布模块所发布的事件消息进行验证,从而与该故障防御方式相对应的故障类型可为修改事件消息类型,进而生成的代码信息可用于修改消息发布模块所发布的事件消息。又由于事件处理模块可对事件进行处理,因此,业务系统所采用的故障防御方式可为在用以进行事件处理的CPU的负载高时,自动进行扩容处理。从而与该故障防御方式相对应的故障类型可为高负载类型,进而生成的代码信息可用于提升事件处理模块的负载。
上述实施例中,通过对业务系统进行拆解,可这对每个功能模块均创建相应的代码信息,从而提升所生成的代码信息的丰富度,进而基于丰富的代码信息确定业务系统中的各功能模块的运行质量信息,进而基于各功能模块的运行质量信息得到全面的业务系统的运行质量信息。
在一个实施例中,上述方法还包括新增代码信息的步骤,新增代码信息的步骤包括:当业务系统新增业务功能时,确定新增业务功能包括的新增功能模块;根据新增功能模块的模块特征,确定新增功能模块所对应的新增故障类型,并生成与新增故障类型相对应的新增代码信息。
具体地,当创建了代码信息库时,第一服务器还可对代码信息库中的代码信息进行更新。比如,当确定业务系统中有新增的业务功能时,第一服务器可确定新增业务功能所包括的功能模块,并确定功能模块的模块特征。其中,模块特征指的是用以反映功能模块特性的信息,比如,模块特征具体可为该功能模块所提供的功能。当确定功能模块的模块特征时,第一服务器即可根据该模块特征确定新增功能模块所对应的新增故障类型,并生成与新增故障类型相对应的新增代码信息。比如,在新增功能模块可以保持目标进程不被关闭时,与该新增功能模块相对应的新增故障类型可为进程关闭类型,从而生成的新增代码信息可用于关闭目标进程。
在其中一个实施例中,当第一服务器确定有新增故障防御方式时,第一服务器也可根据新增故障防御方式确定新增故障类型,并生成与新增故障类型相对应的新增代码信息,并将新增代码信息存储至代码信息库中。
在其中一个实施例中,当确定有用于进行模拟故障注入的新增工具时,第一服务器也可通过该新增工具生成新增代码信息。
在其中一个实施例中,参考图8,图8示出了一个实施例中三维坐标轴的示意图。在该三维坐标中,X轴可为功能模块,Y轴可为故障类型,Z轴可为故障防御手段。通过增加功能模块、增加故障类型或者增加故障防御方式,均可生成相应的新增代码信息。此外,通过新增功能模块、故障类型和故障防御方式中的任意一种,即可通过新增的信息确定三维坐标轴中的另外两个信息,从而实现了以点带面的目的。通过以点带面,可将故障防御方式快速分解成模拟故障,从而提升了模拟故障的生成效率。
本实施例中,通过新增代码信息,可基于新增的代码信息在业务系统中注入新的模拟故障,从而基于新注入的模拟故障确定业务系统所具备的潜在漏洞。
在其中一个实施例中,代码信息库中至少存储有与基础架构故障类型相对应的代码信息、与远程调用故障类型相对应的代码信息和与组件故障类型相对应的代码信息中的一种;与基础架构故障类型相对应的代码信息至少包括用以进行时间跳变代的码信息、用以进行网络抖动的代码信息、用以进行文件删除的代码信息、用以增加负载的代码信息和用以进行关闭进程的代码信息中的一种;与远程调用故障类型相对应的代码信息至少包括用以进行信息更改的代码信息、用以进行数据丢弃的代码信息和用以进行延时的代码信息中的一种;与组件故障类型相对应的代码信息至少包括用以更改键值对的代码信息和用以更改消息队列的代码信息中的一种。
具体地,可预先生成有与基础架构故障类型相对应的代码信息、与远程调用故障类型相对应的代码信息和与组件故障类型相对应的代码信息。参考图9,与基础架构故障类型相对应的代码信息至少包括有用以进行时间跳变代的码信息、用以进行网络抖动的代码信息、用以进行文件删除的代码信息、用以增加负载的代码信息和用以进行关闭进程的代码信息中的一种。容易理解地,通过运行用以进行时间跳变代的码信息,可触发业务系统中的模拟分区进行时间的跳变;通过运行用以进行网络抖动的代码信息,可触发业务系统中的模拟分区进行网络抖动;通过运行用以进行文件删除的代码信息,可触发业务系统的模拟分区进行文件的删除;通过运行用以增加负载的代码信息,可增加业务系统中的模拟分区的负载;通过运行用以进行关闭进程的代码信息,可触发业务系统中的模拟分区关闭进程。图9示出了一个实施例中故障类型的示意图。
与远程调用故障类型相对应的代码信息至少包括用以进行信息更改的代码信息、用以进行数据丢弃的代码信息和用以进行延时的代码信息中的一种;。通过运行用用以进行信息更改的代码信息,可触发业务系统中的模拟分区对信息进行更改;通过运行用以进行数据丢弃的代码信息,可触发业务系统中的模拟分区丢弃数据;通过运行用以进行延时的代码信息,可触发业务系统中的模拟分区进行延时处理。与组件故障类型相对应的代码信息至少包括用以进行更改键值对的代码信息和用以进行更改消息队列的代码信息中的一种。通过运行用以进行更改键值对的代码信息,可触发业务系统中的模拟分区对消息队列进行更改;通过运行用以进行更改键值对的代码信息,可触发业务系统中的模拟分区对键值对进行更改。
在其中一个实施例中,用以进行网络抖动的代码信息包括有用以进行网络延时的代码信息、用以进行网络丢包的代码信息、用以进行网络乱序的代码信息。用以增加负载的代码信息包括有增加IO接口负载的代码信息、用以增加CPU负载的代码信息和用以增加内存负载的代码信息。
在其中一个实施例中,用以进行信息更改的代码信息可包括有用以更改请求的代码信息、用以更改响应的代码信息和用以更改返回码的代码信息。用以进行数据丢弃的代码信息可包括用以进行接口丢包的代码信息。用以进行延时的代码信息可包括用以进行接口延时的代码信息。
在其中一个实施例中,与组件故障类型相对应的代码信息还包括有用以在事件中心中注入模拟故障的代码信息。
在其中一个实施例中,与基础架构故障类型相对应的代码信息中包括有系统命令。比如,用以进行时间跳变的代码信息中包括有时间修改命令。又比如,用以进行网络抖动的代码信息中可包括有流量控制(traffic contrl,tc)命令。用以进行文件删除的代码信息中可包括有文件移动命令。
在其中一个实施例中,用以增加负载的代码信息中可包括有用以进行IO口占用的代码、用以占用CPU的代码或者用以在内存中存储数据的代码等。
在其中一个实施例中,用以进行关闭进程的代码信息中可包括有进程执行停止的代码、进程重启代码等。用以进行数据丢弃的代码信息中可包括有基于拦截器机制编写得到的代码,运行该代码后,可在处理请求之前,对请求进行修改、丢弃请求、修改返回数据或者修改错误码等。
上述实施例中,通过编写多种类型的代码信息,可基于多种代码信息在业务系统模拟分区中注入多种类型的模拟故障,从而基于多种类型的模拟故障来对业务系统进行全面的检测,以得到全面的运行质量信息。此外,通过设置多种类型的代码信息,针对每个故障注入任务,均能从多种类型的代码信息中找到合适的目标代码信息,从而提升了目标代码信息的查找准确性。
在一个实施例中,业务系统中注入有业务流量数据;业务系统的模拟分区中注入有属于模拟类型的模拟业务流量数据;业务系统的工作分区中注入有属于真实类型的真实业务流量数据。
在其中一个实施例中,参考图10,可预先编写有分区路由代码和区外路由代码,当业务流量数据符合区外的路由规则时,可通过区外路由代码将业务流量数据路由至业务系统中的分区之外的模块。当业务流量数据符合分区路由规则时,业务系统调用分区路由代码,将业务流量数据路由至工作分区或者模拟分区。当具有多个工作分区时,业务系统还可确定待路由至的目标工作分区,并将业务流量数据路由至目标工作分区。图10示出了一个实施例中业务流量数据路由的示意图。
本实施例中,通过将属于模拟类型的模拟业务流量数据路由至模拟分区,将真实类型的真实业务流量数据路由至工作分区,可实现将业务流量数据进行隔离的目的,从而减少模拟分区对工作分区的影响,进而使得业务系统能够正常运行。
在一个实施例中,运行质量信息包括稳定性信息;根据故障处理结果确定工作分区中目标业务功能的运行质量信息,包括:获取在模拟分区的目标业务功能中注入模拟故障后,模拟分区中的目标业务功能对模拟业务流量数据进行处理时产生的报错信息;根据报错信息,确定模拟分区的目标业务功能的稳定性信息;将模拟分区的目标业务功能的稳定性信息,作为工作分区中的目标业务功能的稳定性信息。
具体地,当在模拟分区中注入有模拟业务流量数据后,模拟分区中的目标业务功能即可对注入的模拟业务流量数据进行处理。当通过目标代码信息在模拟分区中的目标业务功能中注入有模拟故障时,第一服务器可获取模拟分区中的目标业务功能对模拟业务流量数据进行处理时产生的报错信息。比如,当拦截发送至资源转移模块的请求时,第一服务器可获取资源转移模块产生的报错信息。进一步地,当获取得到报错信息时,第一服务器可对报错信息进行分析,得到在注入模拟故障后,目标业务功能产生的运行故障,以及运行故障所属的运行故障类型,并根据产生的运行故障和所属的运行故障类型,确定模拟分区的目标业务功能的稳定性信息。比如,在确定运行故障所属的运行故障类型为严重类型时,确定目标业务功能的稳定性低于预设稳定性阈值。又比如,在确定运行故障的数量大于或等于预设数量阈值时,确定目标业务功能的稳定性低于预设稳定性阈值。
本实施例中,通过获取报错信息,可基于报错信息确定目标业务功能的稳定性信息,从而后续可基于稳定性信息目标业务功能进行优化改进。
在一个实施例中,模拟业务流量数据包括资源转移模拟数据;上述方法还包括:确定生成资源转移模拟数据的生成时间;当到达生成时间时,对目标对象进行资源转移的转移过程进行模拟,得到资源转移模拟数据。
具体地,模拟业务流量数据包括资源转移模拟数据。其中,资源转移模拟数据指的是在模拟资源转移过程中生成的数据,比如,资源转移模拟数据具体可以为资源转移订单数据。第一服务器中预先部署有用以生成资源转移模拟数据的流量构造工具。当需要生成资源转移模拟数据时,第一服务器可触发流量构造工具对资源转移过程进行模拟,从而得到资源转移模拟数据。
在其中一个实施例中,第一服务器可控制流量构造工具生成资源转移模拟数据的时间,当达到预设生成时间时,触发流量构造工具生成资源转移模拟数据。容易理解地,也可在第二服务器中部署流量构造工具,从而第二服务器触发流量构造工具生成资源转移模拟数据。
上述实施例中,由于在传统方案中,为了减少注入的模拟故障对业务系统的影响,一般会选择在业务低峰时段进行业务流量数据和模拟故障的注入。而本申请由于可通过分区将模拟故障进行隔离,因此,本申请无需选择在业务低峰时段进行业务流量数据和模拟故障的注入,如此,便提升了业务流量数据注入的灵活性。
在一个实施例中,如图11所示,提供了一种故障注入任务创建方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤1102,响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能。
具体地,当需要确定业务功能的运行质量信息时,用户可创建针对该业务功能的故障模拟任务。当需要创建故障模拟任务时,用户可触发终端显示故障模拟任务添加元素,从而在确定用户点击故障模拟任务添加元素时,终端响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能。
在其中一个实施例中,参考图12,图12示出了一个实施例中故障模拟任务列表展示页面的示意图。在故障模拟任务列表展示页面中,可显示有故障模拟任务添加元素1201,从而当用户点击故障模拟任务添加元素1201时,即可新增故障模拟任务。
在其中一个实施例中,业务系统中可包括有多个子业务,终端可显示各子业务各自包括的业务功能。比如,参考图13,当用户点击模拟任务添加元素时,终端可显示如图13所示的业务功能展示页面。业务功能展示页面中可显示有各子业务各自包括的业务功能,从而用户可从各子业务各自包括的业务功能中选择目标业务功能。图13示出了一个实施例中业务功能展示页面的示意图。
步骤1104,响应于针对多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务。
具体地,当终端显示有多个业务功能时,用户可从多个业务功能中选择目标业务功能,进而终端响应于用户的选择操作,创建与选择的目标业务功能相对应的故障模拟任务。
在一个实施例中,响应于针对多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务,包括:响应于针对多个业务功能的选择操作,展示选中的目标业务功能;创建与选中的目标业务功能相对应的故障模拟任务,并在故障模拟任务列表中显示创建的故障模拟任务。
具体地,当用户选中目标业务功能时,终端可显示用户选中的目标业务功能。比如,终端可在多个业务功能中突出显示目标业务功能。进一步地,终端可创建与选中的目标业务功能相对应的故障模拟任务,并在故障模拟任务列表中显示创建的故障模拟任务。
在其中一个实施例中,参考图12,终端可显示有故障模拟任务列表1202,并在故障模拟任务列表中显示创建的故障模拟任务。
上述实施例中,通过显示故障模拟任务列表,可便于用户对故障模拟任务的查看,从而大大提升了用户体验。
在一个实施例中,故障模拟任务列表中至少展示有故障模拟任务指示的目标业务功能、故障模拟任务的创建时间、故障模拟任务的结束时间和故障模拟任务的任务处理进度中的一种;任务处理进度至少包括故障模拟任务正在进行、故障模拟任务手动结束和故障模拟任务自动结束中的一种。
具体地,参考了图12,故障模拟任务列表中至少展示有故障模拟任务指示的目标业务功能1203、故障模拟任务的创建时间1204、故障模拟任务的结束时间1205和故障模拟任务的任务处理进度1206中的一种。其中,任务处理进度至少包括故障模拟任务正在进行、故障模拟任务手动结束和故障模拟任务自动结束中的一种。当故障模拟任务正在执行时,即可在故障任务列表中显示故障模拟任务正在进行;当故障模拟任务被用户手动关闭时,即可在故障任务列表中显示故障模拟任务手动结束;当故障模拟任务被自动关闭时,比如,当故障模拟任务的任务处理时长达到预设时长而导致任务自动关闭时,可在故障任务列表中显示故障模拟任务自动结束。
在其中一个实施例中,故障模拟任务列表中还可显示有故障模拟任务所指示的目标业务功能归属的子业务,以及显示有操作方式。操作方式中显示有进入故障模拟任务、查看故障模拟任务、删除故障模拟任务和复制故障模拟任务中的至少一种。也即,用户可通过所显示的操作方式对故障模拟任务进行删除和复制,以及通过操作方式查看故障模拟任务的任务详情和进入故障模拟任务。
上述实施例中,通过展示故障模拟任务列表,可通过故障模拟任务列表展示所创建的故障模拟任务的任务信息,从而便于用户从所展示的任务信息中快速了解故障模拟任务的任务状况,进而提升了用户体验。
步骤1106,响应于针对故障模拟任务的任务编辑操作,展示故障类型集。
具体地,当创建故障模拟任务时,用户还可对创建的故障模拟任务进行编辑,以添加该故障模拟任务所包括的故障注入任务。当需要添加故障注入任务时,用户可针对故障模拟任务执行任务编辑操作,从而终端响应于用户的任务编辑操作,展示故障类型集。
比如,当用户点击故障模拟任务列表中的故障模拟任务时,终端即可显示所点击的故障模拟任务的任务详情页面,任务详情页面中显示有故障注入任务添加元素,当用户点击故障注入任务添加元素时,终端即可展示如图5所示的注入任务编辑页面,并在注入任务编辑页面中显示故障类型集。
步骤1108,响应于针对故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务。故障注入任务用于指示在业务系统的模拟分区中注入模拟故障,并根据在注入模拟故障后产生的故障处理结果,确定业务系统的工作分区中目标业务功能的运行质量信息。
具体地,当显示故障类型集时,用户可根据需求从中选择出目标故障类型,从而终端创建与用户选中的目标故障类型相对应的故障注入任务。当用户触发启动故障模拟任务时,终端即可将该故障模拟任务所包括的故障注入任务发送至第一服务器,以使第一服务器从代码信息库中筛选出与故障注入任务相对应的目标代码信息,并将目标代码信息发送至第二服务器,从而第二服务器可基于目标代码信息在模拟分区的目标业务功能中注入模拟故障。当在模拟分区中注入模拟故障时,终端可获取模拟分区在注入模拟故障后产生的故障处理结果,并根据故障处理结果确定工作分区中目标业务功能的运行质量信息。
上述故障注入任务创建方法中,通过响应于故障模拟任务添加操作,可展示业务系统所提供的多个业务功能。通过展示多个业务功能,可响应于针对多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务。通过创建故障模拟任务,可响应于针对故障模拟任务的任务编辑操作,展示故障类型集,如此,便可通过在故障类型集中选中的目标故障类型创建相应的故障注入任务,进而通过创建的故障注入任务确定业务系统的工作分区中目标业务功能的运行质量信息。由于本申请可通过响应于用户的操作自动创建用以注入模拟故障的故障注入任务,相比于传统的手动注入模拟故障,本申请可提升故障注入任务的创建效率,进而提升运行质量信息的确定效率。
此外,由于业务系统中设置有独立部署且具有相同业务功能的模拟分区和工作分区,因此,可基于模拟分区对注入的模拟故障进行处理,基于工作分区向目标对象提供业务功能,如此,便实现可故障隔离的目的。再者,由于模拟分区设置于业务系统且与工作分区一致,因此,模拟分区可运行于真实的运行环境中,从而实现了在真实的运行环境中对业务系统的运行质量进行测试的目的,进而提升了运行质量信息的准确性。
在一个实施例中,响应于针对故障模拟任务的任务编辑操作,展示故障类型集,包括:当故障模拟任务所指示的目标业务功能为新增业务功能时,响应于针对故障模拟任务的任务编辑操作,确定在历史时刻生成的历史故障类型;对历史故障类型进行迁移,得到待生成的故障模拟任务所对应的故障类型集,并对故障类型集进行展示。
具体地,当业务系统中添加有新增业务功能,且针对该新增业务功能创建有故障模拟任务时,终端可获取在历史时刻生成的历史故障类型。比如,终端可获取对历史业务系统的历史系统运行相关信息进行分析得到的历史故障信息。其中,历史业务系统指的是未添加有新增业务功能的业务系统,历史系统运行相关信息指的是历史业务系统运行时生成的运行相关数据。当获取得到历史故障类型时,终端可对历史故障类型进行迁移,得到待生成的故障模拟任务所对应的故障类型集。比如,终端将历史故障类型作为待生成的故障模拟任务所对应的故障类型集。
本实施例中,通过对历史故障类型进行迁移,可基于历史故障类型,快速确定新增业务功能所对应的故障类型,从而提升了故障类型的确定效率。
在一个实施例中,响应于针对故障模拟任务的任务编辑操作,展示故障类型集,包括:响应于针对故障模拟任务的触发操作,展示故障模拟任务的任务详情页面;任务详情页面中展示有故障注入任务添加元素;响应于针对故障注入任务添加元素的触发操作,展示注入任务编辑页面,并通过注入任务编辑页面展示故障类型集。
具体地,可将用户点击故障模拟任务列表中的故障模拟任务的点击操作,作为针对故障模拟任务的触发操作,从而终端响应于针对故障模拟任务的触发操作,展示故障模拟任务的任务详情页面。任务详情页面中展示有故障注入任务添加元素,可将用户点击故障注入任务添加元素的点击操作,作为针对故障注入任务添加元素的触发操作,从而终端响应于针对故障注入任务添加元素的触发操作,展示注入任务编辑页面,并通过注入任务编辑页面展示故障类型集。
在一个实施例中,响应于针对故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务,包括:响应于针对注入任务编辑页面中展示的故障类型集的选择操作,展示选中的目标故障类型;响应于针对注入任务编辑页面的编辑操作,展示编辑得到的任务参数;根据任务参数,创建与目标故障类型对应的故障注入任务并展示。
具体地,当用户从多种业务功能中选中目标业务功能时,终端即可显示注入任务编辑页面,并通过注入任务编辑页面展示多种故障类型。比如,通过如图5所示的注入任务编辑页面展示多种故障类型。当用户从所展示的多种故障类型中选中目标故障类型时,用户还可通过注入任务编辑页面对待生成的故障注入任务的任务参数进行编辑,得到待生成的故障注入任务的任务参数。进一步地,当确定得到任务参数和目标故障类型时,终端可基于任务参数和目标故障类型生成相应的故障注入任务。
本实施例中,只需进行简单的编辑操作,即可触发终端生成故障注入任务,从而降低了故障注入任务的生成门槛,进而提升了故障注入任务的生成效率。
在一个实施例中,任务详情页面展示有故障注入任务列表;故障注入任务列表中至少展示有故障模拟任务所包括的故障注入任务的任务参数、任务状态和所属故障类型中的一种;任务参数至少包括功能模块标识和地址信息中的一种;功能模块标识用于指示业务系统的业务功能中待注入模拟故障的功能模块;地址信息指的是模拟分区中接收故障注入任务的目标节点的物理地址信息。
具体地,可通过故障模拟任务的任务详情页展示故障注入任务列表,故障注入任务列表中展示有该故障模拟任务所包括的故障注入任务。进一步的,参考图4,故障注入列表402中还可展示有故障注入任务的任务参数403、任务状态404和所属故障类型405。所述任务参数至少包括功能模块标识和地址信息中的一种;功能模块标识用于指示业务系统的业务功能中待注入模拟故障的功能模块,从而模拟分区可通过功能模块标识在相应的功能模块中注入模拟故障;地址信息指的是模拟分区中接收故障注入任务的目标节点的物理地址信息。地址信息具体可以包括物理地址和网络端口。
在其中一个实施例中,故障处理任务的任务状态还可包括有已停止状态、正在进行状态和完成状态中的至少一种。
上述实施例中,由于可通过故障注入任务列表展示已创建的故障注入任务的任务相关信息,因此,可便于用户通过所显示的任务状态快速了解故障处理任务的任务情况,从而提升用户体验。
在一个实施例中,上述方法还包括:获取在模拟分区的目标业务功能中注入模拟故障后,模拟分区产生的报错信息;根据报错信息,确定目标业务功能产生的运行错误;确定运行错误所属的运行错误类型,将运行错误和运行错误所属的运行错误类型进行展示。
具体地,当在模拟分区中注入有模拟故障时,终端可获取模拟分区产生的报错信息,并对报错信息进行分析,得到目标业务功能运行时产生的运行错误。比如,可通过报错信息确定得到的运行错误可以为,当关闭事件中心的队列处理进程时,队列中的数据无法及时进行处理。进一步地,终端确定运行错误所属的运行错误类型,并将运行错误和运行错误所属的运行错误类型进行展示。
在其中一个实施例中,可根据运行错误的严重程度来确定运行错误的错误类型。比如,在运行错误属于高严重等级时,可确定该运行错误属于高严重类型;在运行错误属于轻度严重等级时,可确定该运行错误属于轻度严重类型。
在其中一个实施例中,终端还可对运行错误的错误数量进行统计,并将错误数量进行展示,以使用户根据所展示的运行错误、错误数量和运行错误类型来确定运行质量信息。
在其中一个实施例中,当创建有多个故障模拟任务,且每个故障模拟任务中均包括有多个故障注入任务时,终端可确定在多个故障注入任务所对应的模拟故障注入后,模拟分区所产生的报错信息,并根据报错信息确定模拟分区产生的运行错误,从而基于运行错误确定模拟分区的运行质量信息,进而基于模拟分区的运行质量信息确定工作分区的运行质量信息。
上述实施例中,通过对运行错误和运行错误类型进行展示,可便于用户通过所展示的信息来确定业务系统的运行质量信息。
在一个实施例中,上述方法还包括:获取模拟分区的目标业务功能运行时产生历史运行数据和目标运行数据;历史运行数据为注入模拟故障前,目标业务功能产生的数据;目标运行数据为注入模拟故障后,目标业务功能产生的数据;确定目标运行数据与历史运行数据之间的数据对比结果;根据对比结果确定目标业务功能的运行质量信息并展示。
具体地,当需要确定运行质量信息时,终端可获取目标业务功能的历史运行数据和目标运行数据。其中,历史运行数据指的是未注入模拟故障之前,目标业务功能运行时所产生的数据;目标运行数据为注入模拟故障后,目标业务功能运行时产生的数据。进一步地,当获取得到历史运行数据和目标运行数据时,终端可对历史运行数据和目标运行数据进行对比,得到数据对比结果,并基于数据对比结果,确定目标业务功能的运行质量信息。比如,运行数据具体可以为目标业务功能的性能数据,终端可基于历史运行数据确定未注入模拟故障之前,目标业务功能的性能,以及基于目标运行数据确定注入模拟故障后,目标业务功能的性能,从而基于性能之间的差异,确定目标业务功能的运行质量信息,进而用户可基于所展示的运行质量信息对目标业务功能进行改进。
在其中一个实施例中,运行数据可为预先指定的稳态指标,从而通过对稳态指标的展示,可便于用户基于所展示的稳态指标确定运行质量信息。
上述实施例中,通过对历史运行数据和目标运行数据进行对比,可基于对比结果准确得知目标业务功能的运行质量信息。
在一个实施例中,获取模拟分区的目标业务功能运行时产生历史运行数据和目标运行数据,包括:展示业务系统包括的多个地域分区;响应于针对多个地域分区的选择操作,展示选中的目标地域分区;确定目标地域分区中的模拟分区,并获取模拟分区中的目标业务功能运行时所产生的历史运行数据和目标运行数据。
具体地,业务系统可包括有多个地域分区,每个地域分区又可包括有至少一个模拟分区和至少一个工作分区。比如,参考图14,可在A地区部署A地域分区,并在A地域分区中部署工作分区和模拟分区,以及可在B地区部署B地域分区,并在B地域分区中部署工作分区和模拟分区。当获取得到指定系统发送的属于真实类型的真实业务流量数据时,业务系统可确定该真实业务流量数据所属的第一地域分区,并将该真实业务流量数据发送至第一地域分区中的工作分区。当获取得到流量构造工具生成的属于模拟类型的模拟业务流量数据时,业务系统可确定该模拟业务流量数据所属的第二地域分区,将该模拟业务流量数据发送至第二地域分区中的模拟分区。图14示出了一个实施例中分区示意图。
进一步地,当将模拟故障注入至模拟分区后,终端可展示该业务系统所包括的多个地域分区,并响应于用户针对多个地域分区的选择操作,展示选中的目标地域分区。当确定目标地域分区时,终端可获取该目标地域分区中的模拟分区产生的历史运行数据和目标运行数据。
在其中一个实施例中,业务流量数据中可包括有地域标识,也即真实业务流量数据和模拟业务流量数据中均可包括有地域标识,终端可通过地域标识确定该业务流量数据所属的地域分区。比如,当业务流量数据为资源转移订单数据时,业务流量数据中可包括有提交该资源转移订单的计算机设备所在地域的地域标识,从而业务系统中将资源转移订单数据发送至与地域标识相对应的地域分区。
上述实施例中,通过展示不同地域分区中的模拟分区所产生的历史运行数据和目标运行数据,可便于用户通过所展示的数据对不同地域分区中的模拟分区的运行质量信息进行分析,从而提升了运行质量信息的确定效率。
在一个实施例中,上述方法还包括:当具有多个故障模拟任务时,获取在模拟分区中注入各故障模拟任务各自对应的模拟故障后产生的故障处理结果;综合各故障处理结果,得到业务系统的运行质量信息并展示。
具体地,当需要确定业务系统的运行质量信息时,用户可针对业务系统中的多个业务功能分别创建故障模拟任务,并针对每个故障模拟任务均创建相应的故障注入任务。从而当将各故障模拟任务注入至模拟分区时,终端可获取模拟分区对各故障模拟任务进行处理的故障处理结果,并综合各故障处理结果,得到业务系统的运行质量信息,比如得到业务系统的稳定性信息和健壮性信息。
在其中一个实施例中,为了提升运行质量信息的确定效率,还可对多个故障模拟任务进行并行处理,也即,对故障注入任务进行并行处理。
本实施例中,由于可创建多个故障模拟任务,因此,可基于多个故障模拟任务对业务系统进行全面的评估,从而得到全面的运行质量信息。
在其中一个具体实施例中,参考图15,提供了一种业务系统运行质量信息确定方法,业务系统运行质量信息确定方法包括:
S1502,第一服务器获取业务系统的系统运行相关信息;系统运行相关信息至少包括历史故障信息和突发事件信息中的一种。
S1504,第一服务器根据系统运行相关信息,确定业务系统采用的故障防御方式;故障防御方式至少包括第一故障防御方式和第二故障防御方式中的一种;第一故障防御方式为在发生与历史故障信息相对应的历史故障时,业务系统所采用方式;第二故障防御方式为在发生与突发事件信息相对应的突发事件时时,业务系统所采用方式。
S1506,第一服务器确定故障防御方式所防御的故障类型,并生成与故障类型相对应的代码信息,得到代码信息库。
S1508,第一服务器接收故障模拟请求;故障模拟请求是终端响应于针对创建的故障模拟任务的启动操作而生成的请求。
S1510,第一服务器响应于故障模拟请求,确定故障模拟请求所指示的业务系统;业务系统包括至少两个分区,至少两个分区包括模拟分区和工作分区;模拟分区和工作分区独立部署且具有相同业务功能。
S1512,第一服务器确定故障模拟请求所指示的故障注入任务,确定故障注入任务所对应的目标故障类型;从预设代码信息库中筛选出与故障类型相对应的初始代码信息。
S1514,第一服务器确定故障注入任务的任务参数,并将任务参数输入至初始代码信息,得到目标代码信息。
S1516,第一服务器发送目标代码信息至模拟分区;发送的目标代码信息,用于触发在模拟分区的由故障模拟请求指示的目标业务功能中注入模拟故障。
S1518,业务系统中注入有流量数据;业务系统的模拟分区中注入有属于模拟类型的模拟业务流量数据;业务系统的工作分区中注入有属于真实类型的真实业务流量数据;第一服务器获取在模拟分区的目标业务功能中注入模拟故障后,模拟分区中的目标业务功能对流量数据进行处理时产生的报错信息。
S1520,第一服务器根据报错信息,确定模拟分区的目标业务功能的稳定性信息;将模拟分区的目标业务功能的稳定性信息,作为工作分区中的目标业务功能的稳定性信息。
在其中一个具体实施例中,参考图16,提供了一种故障注入任务创建方法,故障注入任务创建确定方法包括:
S1602,终端响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能;响应于针对多个业务功能的选择操作,展示选中的目标业务功能。
S1604,终端创建与选中的目标业务功能对应的故障模拟任务,并在故障模拟任务列表中显示创建的故障模拟任务;故障模拟任务列表中至少展示有故障模拟任务指示的目标业务功能、故障模拟任务的创建时间、故障模拟任务的结束时间和故障模拟任务的任务处理进度中的一种;任务处理进度至少包括故障模拟任务正在进行、故障模拟任务手动结束和故障模拟任务自动结束中的一种。
S1606,终端响应于针对故障模拟任务的触发操作,展示故障模拟任务的任务详情页面;任务详情页面中展示有故障注入任务添加元素;任务详情页面展示有故障注入任务列表;故障注入任务列表中至少展示有故障模拟任务所包括的故障注入任务的任务参数、任务状态和所属故障类型中的一种;任务参数至少包括功能模块标识和地址信息中的一种;功能模块标识用于指示业务系统的业务功能中待注入模拟故障的功能模块;地址信息指的是模拟分区中接收故障注入任务的目标节点的物理地址信息。
S1608,终端响应于针对故障注入任务添加元素的触发操作,展示注入任务编辑页面,并通过注入任务编辑页面展示故障类型集。
S1610,终端响应于针对注入任务编辑页面中展示的故障类型集的选择操作,展示选中的目标故障类型。
S1612,终端响应于针对注入任务编辑页面的编辑操作,展示编辑得到的任务参数;根据任务参数,创建与目标故障类型对应的故障注入任务并展示。
S1614,终端展示业务系统包括的多个地域分区;响应于针对多个地域分区的选择操作,展示选中的目标地域分区。
S1616,终端确定目标地域分区中的模拟分区,并获取模拟分区中的目标业务功能运行时所产生的历史运行数据和目标运行数据;历史运行数据为注入模拟故障前,目标业务功能产生的数据;目标运行数据为注入模拟故障后,目标业务功能产生的数据。
S1618,终端展示运行质量信息;运行质量信息是基于目标运行数据与历史运行数据之间的数据对比结果确定得到的。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种应用场景,该应用场景应用上述的业务系统运行质量信息确定方法。具体地业务系统运行质量信息确定方法在该应用场景的应用如下:
当需要对资源转移系统进行混沌实验时,可针对资源转移系统创建多个混沌实验(也称作创建多个故障模拟任务),并分别对每个混沌实验进行编辑,得到混沌实验所包括的混沌任务(也称作故障注入任务)。进一步地,当启动混沌实验时,第一服务器可将混沌实验所对应的脚本(也称作目标代码信息)发送至第二服务器中的模拟分区,以在模拟分区中注入模拟故障。第一服务器可确定模拟分区对注入的模拟故障的处理结果,并基于故障处理结果,确定业务系统的健壮性和稳定性。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的业务系统运行质量信息确定方法的业务系统运行质量信息确定装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务系统运行质量信息确定装置实施例中的具体限定可以参见上文中对于业务系统运行质量信息确定方法的限定,在此不再赘述。
在一个实施例中,如图17所示,提供了一种业务系统运行质量信息确定装置1700,包括:模拟请求响应模块1702、代码信息确定模块1704和质量信息确定模块1706,其中:
模拟请求响应模块1702,用于响应于故障模拟请求,确定故障模拟请求所指示的业务系统;业务系统包括至少两个分区,至少两个分区包括模拟分区和工作分区;模拟分区和工作分区独立部署、具有相同业务功能且配置有相同的运行环境;所述模拟分区的业务功能用于处理流入所述模拟分区的模拟业务流量数据;所述工作分区的业务功能用于处理流入所述工作分区的真实业务流量数据;
代码信息确定模块1704,用于确定故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息;
质量信息确定模块1706,用于发送目标代码信息至模拟分区;发送的目标代码信息,用于触发在模拟分区的由故障模拟请求指示的目标业务功能中注入模拟故障;获取模拟分区在目标业务功能中注入了模拟故障后处理所述模拟业务流量数据所产生的故障处理结果;根据故障处理结果,确定工作分区在处理真实业务流量数据时工作分区中目标业务功能的运行质量信息。
在其中一个实施例中,模拟请求响应模块1702还用于接收故障模拟请求;故障模拟请求是终端响应于针对创建的故障模拟任务的启动操作而生成的请求;根据故障模拟请求中携带的注入任务标识,获取故障注入任务。
在其中一个实施例中,代码信息确定模块1704还用于确定故障注入任务所对应的目标故障类型;根据目标故障类型,从预设的代码信息库中筛选出与故障注入任务相对应的目标代码信息。
在其中一个实施例中,代码信息确定模块1704还用于从预设代码信息库中筛选出与故障类型相对应的初始代码信息;确定故障注入任务的任务参数,并将任务参数输入至初始代码信息,得到目标代码信息。
在其中一个实施例中,故障注入任务携带有任务参数;任务参数包括物理地址和网络端口中的至少一种;质量信息确定模块1706还用于发送目标代码信息至模拟分区,包括:将目标代码信息发送至模拟分区中的与物理地址对应的目标节点,并触发目标节点通过网络端口接收目标代码信息。
在其中一个实施例中,业务系统运行质量信息确定装置1700还用于获取业务系统的系统运行相关信息;根据系统运行相关信息,确定业务系统采用的故障防御方式;确定故障防御方式所防御的故障类型,并生成与故障类型相对应的代码信息,得到代码信息库。
在其中一个实施例中,系统运行相关信息至少包括历史故障信息和突发事件信息中的一种;故障防御方式至少包括第一故障防御方式和第二故障防御方式中的一种;业务系统运行质量信息确定装置1700还用于确定业务系统所包括的业务功能;针对每个业务功能,均确定当前业务功能所包括的功能模块;确定每个功能模块各自对应的系统运行相关信息,并基于系统运行相关信息,确定每个功能模块各自采用的故障防御方式;针对多个功能模块中的每个功能模块,均根据与当前功能模块所采用的故障防御方式相对应的故障类型,生成相应的代码信息。
在其中一个实施例中,业务系统运行质量信息确定装置1700还用于当业务系统新增业务功能时,确定新增业务功能包括的新增功能模块;根据新增功能模块的模块特征,确定新增功能模块所对应的新增故障类型,并生成与新增故障类型相对应的新增代码信息。
在其中一个实施例中,业务系统运行质量信息确定装置1700还用于生成代码信息库;代码信息库中至少存储有与基础架构故障类型相对应的代码信息、与远程调用故障类型相对应的代码信息和与组件故障类型相对应的代码信息中的一种;与基础架构故障类型相对应的代码信息至少包括用以进行时间跳变代的码信息、用以进行网络抖动的代码信息、用以进行文件删除的代码信息、用以增加负载的代码信息和用以进行关闭进程的代码信息中的一种;与远程调用故障类型相对应的代码信息至少包括用以进行信息更改的代码信息、用以进行数据丢弃的代码信息和用以进行延时的代码信息中的一种;与组件故障类型相对应的代码信息至少包括用以更改键值对的代码信息和用以更改消息队列的代码信息中的一种。
在其中一个实施例中,业务系统运行质量信息确定装置1700还用于在业务系统中注入业务流量数据;业务系统的模拟分区中注入有属于模拟类型的模拟业务流量数据;业务系统的工作分区中注入有属于真实类型的真实业务流量数据。
在其中一个实施例中,运行质量信息包括稳定性信息;质量信息确定模块1706还用于获取在模拟分区的目标业务功能中注入模拟故障后,模拟分区中的目标业务功能对模拟业务流量数据进行处理时产生的报错信息;根据报错信息,确定模拟分区的目标业务功能的稳定性信息;将模拟分区的目标业务功能的稳定性信息,作为工作分区中的目标业务功能的稳定性信息。
在其中一个实施例中,业务系统运行质量信息确定装置1700还用于确定生成资源转移模拟数据的生成时间;当到达生成时间时,对目标对象进行资源转移的转移过程进行模拟,得到资源转移模拟数据。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的故障注入任务创建方法的故障注入任务创建装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个故障注入任务创建装置实施例中的具体限定可以参见上文中对于故障注入任务创建方法的限定,在此不再赘述。
在一个实施例中,如图18所示,提供了一种故障注入任务创建装置1800,包括:业务功能展示模块1802、模拟任务生成模块1804和注入任务生成模块1806,其中:
业务功能展示模块1802,用于响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能;
模拟任务生成模块1804,用于响应于针对多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务;
注入任务生成模块1806,用于响应于针对故障模拟任务的任务编辑操作,展示故障类型集;响应于针对故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务;故障注入任务用于指示在业务系统的模拟分区中注入模拟故障,并根据在注入模拟故障后产生的故障处理结果,确定业务系统的工作分区中目标业务功能的运行质量信息。
在其中一个实施例中,模拟任务生成模块1804还用于响应于针对多个业务功能的选择操作,展示选中的目标业务功能;创建与选中的目标业务功能相对应的故障模拟任务,并在故障模拟任务列表中显示创建的故障模拟任务。
在其中一个实施例中,模拟任务生成模块1804还用于展示故障模拟任务列表;故障模拟任务列表中至少展示有故障模拟任务指示的目标业务功能、故障模拟任务的创建时间、故障模拟任务的结束时间和故障模拟任务的任务处理进度中的一种;任务处理进度至少包括故障模拟任务正在进行、故障模拟任务手动结束和故障模拟任务自动结束中的一种。
在其中一个实施例中,注入任务生成模块1806还用于当故障模拟任务所指示的目标业务功能为新增业务功能时,响应于针对故障模拟任务的任务编辑操作,确定在历史时刻生成的历史故障类型;对历史故障类型进行迁移,得到待生成的故障模拟任务所对应的故障类型集,并对故障类型集进行展示。
在其中一个实施例中,注入任务生成模块1806还用于响应于针对故障模拟任务的触发操作,展示故障模拟任务的任务详情页面;任务详情页面中展示有故障注入任务添加元素;响应于针对故障注入任务添加元素的触发操作,展示注入任务编辑页面,并通过注入任务编辑页面展示故障类型集。
在其中一个实施例中,注入任务生成模块1806还用于响应于针对注入任务编辑页面中展示的故障类型集的选择操作,展示选中的目标故障类型;响应于针对注入任务编辑页面的编辑操作,展示编辑得到的任务参数;根据任务参数,创建与目标故障类型对应的故障注入任务并展示。
在其中一个实施例中,注入任务生成模块1806还用于展示任务详情页面;任务详情页面展示有故障注入任务列表;故障注入任务列表中至少展示有故障模拟任务所包括的故障注入任务的任务参数、任务状态和所属故障类型中的一种;任务参数至少包括功能模块标识和地址信息中的一种;功能模块标识用于指示业务系统的业务功能中待注入模拟故障的功能模块;地址信息指的是模拟分区中接收故障注入任务的目标节点的物理地址信息。
在其中一个实施例中,故障注入任务创建装置1800还用于获取在模拟分区的目标业务功能中注入模拟故障后,模拟分区产生的报错信息;根据报错信息,确定目标业务功能产生的运行错误;确定运行错误所属的运行错误类型,将运行错误和运行错误所属的运行错误类型进行展示。
在其中一个实施例中,故障注入任务创建装置1800还用于获取模拟分区的目标业务功能运行时产生历史运行数据和目标运行数据;历史运行数据为注入模拟故障前,目标业务功能产生的数据;目标运行数据为注入模拟故障后,目标业务功能产生的数据;确定目标运行数据与历史运行数据之间的数据对比结果;根据对比结果确定目标业务功能的运行质量信息并展示。
在其中一个实施例中,故障注入任务创建装置1800还用于展示业务系统包括的多个地域分区;响应于针对多个地域分区的选择操作,展示选中的目标地域分区;确定目标地域分区中的模拟分区,并获取模拟分区中的目标业务功能运行时所产生的历史运行数据和目标运行数据。
在其中一个实施例中,故障注入任务创建装置1800用于当具有多个故障模拟任务时,获取在模拟分区中注入各故障模拟任务各自对应的模拟故障后产生的故障处理结果;综合各故障处理结果,得到业务系统的运行质量信息并展示。
上述业务系统运行质量信息确定装置、故障注入任务创建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图19所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务系统运行质量信息确定数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务系统运行质量信息确定方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图20所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种故障注入任务创建方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图19-图20中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (20)

1.一种业务系统运行质量信息确定方法,其特征在于,所述方法包括:
响应于故障模拟请求,确定所述故障模拟请求所指示的业务系统;所述业务系统包括至少两个分区,所述至少两个分区包括模拟分区和工作分区;所述模拟分区和工作分区独立部署、具有相同业务功能且配置有相同的运行环境;所述模拟分区的业务功能用于处理流入所述模拟分区的模拟业务流量数据;所述工作分区的业务功能用于处理流入所述工作分区的真实业务流量数据;
确定所述故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息;
发送所述目标代码信息至所述模拟分区;发送的所述目标代码信息,用于触发在模拟分区的由所述故障模拟请求指示的目标业务功能中注入模拟故障;
获取所述模拟分区在所述目标业务功能中注入了所述模拟故障后处理所述模拟业务流量数据所产生的故障处理结果;
根据所述故障处理结果,确定所述工作分区在处理所述真实业务流量数据时所述工作分区中目标业务功能的运行质量信息。
2.根据权利要求1所述的方法,其特征在于,在所述响应于故障模拟请求,确定所述故障模拟请求所指示的业务系统之前,所述方法还包括:
接收故障模拟请求;所述故障模拟请求是终端响应于针对创建的故障模拟任务的启动操作而生成的请求;
所述故障模拟任务包括有至少一个故障注入任务;所述故障模拟请求携带有所述故障模拟任务所包括的故障注入任务的注入任务标识;所述确定所述故障模拟请求所指示的故障注入任务,包括:
根据所述故障模拟请求中携带的所述注入任务标识,获取故障注入任务。
3.根据权利要求1所述的方法,其特征在于,所述从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息,包括:
确定所述故障注入任务所对应的目标故障类型;
从预设代码信息库中筛选出与所述故障类型相对应的初始代码信息;
确定所述故障注入任务的任务参数,并将所述任务参数输入至所述初始代码信息,得到目标代码信息。
4.根据权利要求1所述的方法,其特征在于,所述代码信息库的生成方法包括:
获取所述业务系统的系统运行相关信息;
根据所述系统运行相关信息,确定所述业务系统采用的故障防御方式;
确定所述故障防御方式所防御的故障类型,并生成与所述故障类型相对应的代码信息,得到代码信息库。
5.根据权利要求4所述的方法,其特征在于,所述系统运行相关信息至少包括历史故障信息和突发事件信息中的一种;所述故障防御方式至少包括第一故障防御方式和第二故障防御方式中的一种;所述根据所述系统运行相关信息,确定所述业务系统采用的故障防御方式,包括:
确定在发生与所述历史故障信息相对应的历史故障时,所述业务系统所采用第一故障防御方式;
确定在发生与所述突发事件信息相对应的突发事件时,所述业务系统所采用第二故障防御方式。
6.根据权利要求4所述的方法,其特征在于,所述根据所述系统运行相关信息,确定所述业务系统采用的故障防御方式,包括:
确定所述业务系统所包括的业务功能;
针对每个所述业务功能,均确定当前业务功能所包括的功能模块;
确定每个所述功能模块各自对应的系统运行相关信息,并基于所述系统运行相关信息,确定每个功能模块各自采用的故障防御方式;
所述生成与所述故障类型相对应的代码信息,包括:
针对多个功能模块中的每个功能模块,均根据与当前功能模块所采用的故障防御方式相对应的故障类型,生成相应的代码信息。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述业务系统新增业务功能时,确定新增业务功能包括的新增功能模块;
根据所述新增功能模块的模块特征,确定所述新增功能模块所对应的新增故障类型,并生成与所述新增故障类型相对应的新增代码信息。
8.根据权利要求1所述的方法,其特征在于,所述代码信息库中至少存储有与基础架构故障类型相对应的代码信息、与远程调用故障类型相对应的代码信息和与组件故障类型相对应的代码信息中的一种;与基础架构故障类型相对应的代码信息至少包括用以进行时间跳变代的码信息、用以进行网络抖动的代码信息、用以进行文件删除的代码信息、用以增加负载的代码信息和用以进行关闭进程的代码信息中的一种;与远程调用故障类型相对应的代码信息至少包括用以进行信息更改的代码信息、用以进行数据丢弃的代码信息和用以进行延时的代码信息中的一种;与组件故障类型相对应的代码信息至少包括用以更改键值对的代码信息和用以更改消息队列的代码信息中的一种。
9.根据权利要求1所述的方法,其特征在于,所述运行质量信息包括稳定性信息;所述根据所述故障处理结果,确定所述工作分区在处理所述真实业务流量数据时所述工作分区中目标业务功能的运行质量信息,包括:
获取在所述模拟分区的目标业务功能中注入模拟故障后,所述模拟分区中的目标业务功能对所述模拟业务流量数据进行处理时产生的报错信息;
根据所述报错信息,确定所述模拟分区的目标业务功能的稳定性信息;
将所述模拟分区的目标业务功能的稳定性信息,作为所述工作分区中的目标业务功能的稳定性信息。
10.一种故障注入任务创建方法,其特征在于,所述方法包括:
响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能;
响应于针对所述多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务;
响应于针对所述故障模拟任务的任务编辑操作,展示故障类型集;
响应于针对所述故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务;
所述故障注入任务用于指示在所述业务系统的模拟分区中注入模拟故障,并根据在注入所述模拟故障后产生的故障处理结果,确定所述业务系统的工作分区中目标业务功能的运行质量信息。
11.根据权利要求10所述的方法,其特征在于,创建的所述故障模拟任务显示于故障任务列表中;所述故障模拟任务列表中至少展示有故障模拟任务指示的目标业务功能、故障模拟任务的创建时间、故障模拟任务的结束时间和故障模拟任务的任务处理进度中的一种;所述任务处理进度至少包括故障模拟任务正在进行、故障模拟任务手动结束和故障模拟任务自动结束中的一种。
12.根据权利要求10所述的方法,其特征在于,所述响应于针对所述故障模拟任务的任务编辑操作,展示故障类型集,包括:
当所述故障模拟任务所指示的目标业务功能为新增业务功能时,响应于针对所述故障模拟任务的任务编辑操作,确定在历史时刻生成的历史故障类型;
对所述历史故障类型进行迁移,得到待生成的故障模拟任务所对应的故障类型集,并对所述故障类型集进行展示。
13.根据权利要求10所述的方法,其特征在于,所述响应于针对所述故障模拟任务的任务编辑操作,展示故障类型集,包括:
响应于针对所述故障模拟任务的触发操作,展示所述故障模拟任务的任务详情页面;所述任务详情页面中展示有故障注入任务添加元素;
响应于针对所述故障注入任务添加元素的触发操作,展示注入任务编辑页面,并通过所述注入任务编辑页面展示故障类型集。
14.根据权利要求13所述的方法,其特征在于,所述响应于针对所述故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务,包括:
响应于针对所述注入任务编辑页面中展示的所述故障类型集的选择操作,展示选中的目标故障类型;
响应于针对所述注入任务编辑页面的编辑操作,展示编辑得到的任务参数;
根据所述任务参数,创建与所述目标故障类型对应的故障注入任务并展示。
15.根据权利要求13所述的方法,其特征在于,所述任务详情页面展示有故障注入任务列表;所述故障注入任务列表中至少展示有故障模拟任务所包括的故障注入任务的任务参数、任务状态和所属故障类型中的一种;所述任务参数至少包括功能模块标识和地址信息中的一种;所述功能模块标识用于指示所述业务系统的业务功能中待注入模拟故障的功能模块;所述地址信息指的是模拟分区中接收故障注入任务的目标节点的物理地址信息。
16.根据权利要求10至15中任意一项所述的方法,其特征在于,所述方法还包括:
获取所述模拟分区的目标业务功能运行时产生历史运行数据和目标运行数据;所述历史运行数据为注入模拟故障前,所述目标业务功能产生的数据;所述目标运行数据为注入模拟故障后,所述目标业务功能产生的数据;
确定所述目标运行数据与所述历史运行数据之间的数据对比结果;
根据所述对比结果确定所述目标业务功能的运行质量信息并展示。
17.根据权利要求16所述的方法,其特征在于,所述获取所述模拟分区的目标业务功能运行时产生历史运行数据和目标运行数据,包括:
展示所述业务系统包括的多个地域分区;
响应于针对所述多个地域分区的选择操作,展示选中的目标地域分区;
确定所述目标地域分区中的模拟分区,并获取所述模拟分区中的目标业务功能运行时所产生的历史运行数据和目标运行数据。
18.根据权利要求10至15中任意一项所述的方法,其特征在于,所述方法还包括:
当具有多个故障模拟任务时,获取在所述模拟分区中注入各所述故障模拟任务各自对应的模拟故障后产生的故障处理结果;
综合各所述故障处理结果,得到所述业务系统的运行质量信息并展示。
19.一种业务系统运行质量信息确定装置,其特征在于,所述装置包括:模拟请求响应模块,用于响应于故障模拟请求,确定所述故障模拟请求所指示的业务系统;所述业务系统包括至少两个分区,所述至少两个分区包括模拟分区和工作分区;所述模拟分区和工作分区独立部署、具有相同业务功能且配置有相同的运行环境;所述模拟分区的业务功能用于处理流入所述模拟分区的模拟业务流量数据;所述工作分区的业务功能用于处理流入所述工作分区的真实业务流量数据;
代码信息确定模块,用于确定所述故障模拟请求所指示的故障注入任务,并从预设的代码信息库中筛选出与所述故障注入任务相对应的目标代码信息;
质量信息确定模块,用于发送所述目标代码信息至所述模拟分区;发送的所述目标代码信息,用于触发在模拟分区的由所述故障模拟请求指示的目标业务功能中注入模拟故障;获取所述模拟分区在所述目标业务功能中注入了所述模拟故障后处理所述模拟业务流量数据所产生的故障处理结果;根据所述故障处理结果确定所述工作分区在处理所述真实业务流量数据时所述工作分区中目标业务功能的运行质量信息。
20.一种故障注入任务创建装置,其特征在于,所述装置包括:
业务功能展示模块,用于响应于故障模拟任务添加操作,展示业务系统所提供的多个业务功能;
模拟任务生成模块,用于响应于针对所述多个业务功能的选择操作,创建与选中的目标业务功能相对应的故障模拟任务;
注入任务生成模块,用于响应于针对所述故障模拟任务的任务编辑操作,展示故障类型集;响应于针对所述故障类型集中的多个故障类型的选择操作,创建与选中的目标故障类型相对应的故障注入任务;所述故障注入任务用于指示在所述业务系统的模拟分区中注入模拟故障,并根据在注入所述模拟故障后产生的故障处理结果,确定所述业务系统的工作分区中目标业务功能的运行质量信息。
CN202210602590.XA 2022-05-30 2022-05-30 业务系统运行质量信息确定方法、故障注入任务创建方法 Pending CN117194205A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210602590.XA CN117194205A (zh) 2022-05-30 2022-05-30 业务系统运行质量信息确定方法、故障注入任务创建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210602590.XA CN117194205A (zh) 2022-05-30 2022-05-30 业务系统运行质量信息确定方法、故障注入任务创建方法

Publications (1)

Publication Number Publication Date
CN117194205A true CN117194205A (zh) 2023-12-08

Family

ID=88992868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210602590.XA Pending CN117194205A (zh) 2022-05-30 2022-05-30 业务系统运行质量信息确定方法、故障注入任务创建方法

Country Status (1)

Country Link
CN (1) CN117194205A (zh)

Similar Documents

Publication Publication Date Title
US11693904B2 (en) Pushing presented data visualizations to assigned displays
CN108804618B (zh) 数据库配置方法、装置、计算机设备和存储介质
US9213607B2 (en) Systems, methods, and media for synthesizing views of file system backups
CN104765678A (zh) 对移动终端设备上的应用进行测试的方法及装置
JPWO2013046287A1 (ja) 根本原因を解析する管理計算機及び方法
US20150236799A1 (en) Method and system for quick testing and detecting mobile devices
US20240012828A1 (en) Systems and methods for context development
CN111475376A (zh) 处理测试数据的方法、装置、计算机设备和存储介质
US11558329B2 (en) Systems and methods for context development
CN112866319B (zh) 日志数据处理方法、系统和存储介质
JP2005025362A (ja) データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム
CN113342767A (zh) 一种日志生成方法、装置、设备及存储介质
CN114268638A (zh) 区块链平台通道管理方法、装置、计算机设备和存储介质
US11776218B1 (en) Networked remote collaboration system
CN115658794B (zh) 数据查询方法、装置、计算机设备和存储介质
CN117194205A (zh) 业务系统运行质量信息确定方法、故障注入任务创建方法
CN114238181B (zh) 多路径设备路径的物理链路信息的处理方法和获取方法
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
US10909135B1 (en) Systems and methods for context development
CN110032608B (zh) 系统数据的信息组装方法、装置、存储介质及电子设备
CN113254399A (zh) 日志查询方法、装置、电子设备及介质
CN109684158A (zh) 分布式协调系统的状态监控方法、装置、设备及存储介质
CN114726757B (zh) 设备联网测试方法、装置、计算机设备、存储介质
US20240143473A1 (en) Systems and methods for dynamically configuring a client application
CN117667082A (zh) 运维管理方法、装置、计算机设备和存储介质

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