CN110308969A - 故障演练方法、装置、设备及计算机存储介质 - Google Patents
故障演练方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110308969A CN110308969A CN201910570965.7A CN201910570965A CN110308969A CN 110308969 A CN110308969 A CN 110308969A CN 201910570965 A CN201910570965 A CN 201910570965A CN 110308969 A CN110308969 A CN 110308969A
- Authority
- CN
- China
- Prior art keywords
- failure
- rehearsal
- drilling
- scene
- engineering tools
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0712—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及金融科技(Fintech)技术领域,并公开了一种故障演练方法,该方法包括:在接收到故障演练场景指令时,控制演练平台基于故障演练场景指令在各VM中获取目标VM的实例,将实例和故障演练场景指令通过演练平台发送至混沌工程工具;通过混沌工程工具对实例进行演练,通过IMS监测实例是否已演练完成;若演练完成,则通过IMS向演练平台发送告警信息,控制演练平台在SOP中获取恢复流程;通过演练平台将恢复流程发送至混沌工程工具,通过混沌工程工具对实例进行恢复,并在恢复完成后向演练平台发送故障恢复信息。本发明还公开了一种故障演练装置、设备和一种计算机存储介质。本发明提高了金融***故障演练的效率。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及故障演练方法、装置、设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。例如,为最大限度地提高金融***(如银行***)对各种突发事件的应变能力,用户会对银行***进行银行***故障演练,但现有的银行***故障演练大多为运维根据业务场景,或者主机资源手工制造故障场景,由运维开发配合到固定场景排查问题后,再制定恢复计划,整个演练过程从故障模拟开始到故障恢复都是依赖于人工进行的,效率很低。因此,如何提高金融***故障演练的效率成为了目前亟待解决的技术问题。
发明内容
本发明的主要目的在于提出一种故障演练方法、装置、设备及计算机存储介质,旨在提高金融***故障演练的效率。
为实现上述目的,本发明提供一种故障演练方法,所述故障演练方法应用于故障演练***,所述故障演练***包括:演练平台、多个虚拟机VM、混沌工程工具、智能监控***IMS和标准操作流程SOP,所述故障演练方法包括如下步骤:
在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至所述混沌工程工具;
基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过所述IMS对所述实例进行监测,确定所述实例是否已演练完成;
若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,控制所述演练平台在所述SOP中获取恢复流程;
通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。
可选地,所述在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例的步骤,包括:
在接收到故障演练场景指令时,确定所述故障场景指令对应的子***,并通过所述子***在各所述VM中确定具有实例的VM;
控制所述演练平台在具有实例的各所述VM中确定目标VM,并获取所述目标VM的实例。
可选地,所述故障演练***还包括配置管理CMDB,
所述通过所述子***在各所述VM中确定具有实例的VM的步骤,包括:
通过所述CMDB获取所述子***中的子***信息,并基于所述子***信息和各所述VM获取具有实例的VM。
可选地,所述基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练的步骤,包括:
控制所述混沌工程工具基于所述故障演练场景指令确定故障演练场景,通过所述混沌工程工具按照所述故障演练场景建立故障任务,并通过所述故障任务对所述实例进行演练。
可选地,所述控制所述混沌工程工具基于所述故障演练场景指令确定故障演练场景的步骤,包括:
获取所述故障演练***中各预设演练场景,并控制所述混沌工程工具通过所述故障演练场景指令在各所述预设演练场景中确定故障演练场景;
若在各所述预设演练场景中不存在故障演练场景,则通过所述故障演练***中的可扩展插件获取所述故障演练场景。
可选地,所述控制所述演练平台在所述SOP中获取恢复流程的步骤,包括:
控制所述演练平台在所述SOP中获取与所述故障演练场景对应的标准操作流程,并获取预设的恢复指令,将所述标准操作流程和所述恢复指令作为所述恢复流程。
可选地,所述基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息的步骤,包括:
基于所述恢复流程建立恢复任务,通过所述混沌工程工具对所述实例按照所述恢复任务进行恢复,并通过所述IMS对所述实例进行监测,确定所述实例是否已恢复完成;
若所述实例已恢复完成,则通过所述IMS向所述演练平台发送故障恢复信息。
此外,为实现上述目的,本发明还提供一种故障演练装置,所述故障演练装置包括:
获取模块,用于在接收到故障演练场景指令时,控制演练平台基于所述故障演练场景指令在各VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至混沌工程工具;
监测模块,用于基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过IMS对所述实例进行监测,确定所述实例是否已演练完成;
发送模块,用于若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,通过所述演练平台在SOP中获取恢复流程;
恢复模块,用于通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。
此外,为实现上述目的,本发明还提供一种故障演练设备,所述故障演练设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的故障演练程序,所述故障演练程序被所述处理器执行时实现如上所述的故障演练方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有故障演练程序,所述故障演练程序被处理器执行时实现如上所述的故障演练方法的步骤。
本发明通过在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至所述混沌工程工具;基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过所述IMS对所述实例进行监测,确定所述实例是否已演练完成;若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,控制所述演练平台在所述SOP中获取恢复流程;通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。通过在进行故障演练时,只需要获取到故障演练场景指令,就开始进行故障演练,从故障产生到故障恢复全程由演练平台及关联***完成,无需人工参与,即从故障开始到结束均采用闭环式演练方式,具备故障自愈能力,从而降低了现有技术中手工操作带来的二次生产风险,缩短了故障影响时长,提高了金融***故障演练的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明故障演练方法第一实施例的流程示意图;
图3为本发明故障演练装置的装置模块示意图;
图4为本发明故障演练方法中故障演练的流程示意图;
图5为本发明故障演练方法中故障场景示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例故障演练设备可以是PC机或服务器设备,其上运行有Java虚拟机。
如图1所示,该故障演练设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及故障演练程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的故障演练程序,并执行下述故障演练方法中的操作。
基于上述硬件结构,提出本发明故障演练方法实施例。
参照图2,图2为本发明故障演练方法第一实施例的流程示意图,所述方法包括:
步骤S10,在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至所述混沌工程工具;
需要说明的是,在本实施例中,故障演练方法应用于故障演练***,所述故障演练***包括:演练平台、虚拟机VM(Virtual Machine)、混沌工程工具、智能监控***IMS(Intelligent Monitor System)和标准操作流程SOP(Standard Operating Procedure)。另外,在本实施例中,混沌工程工具可以采用开源工具Kube-monkey来替代,智能监控***IMS可以采用开源运维监控***进行替代。
在本实施例中可以通过演练机器人对终端指令(如故障演练场景指令)进行收发及管理。即可以先建立故障演练群,根据演练场景建立内部沟通群,并安装演练机器人,使用固定指令激活演练沟通群,以展示指令收发结果。而终端指令的收发则可以是格式化故障场景终端指令,以参数方式并使用机器人为桥梁推送至故障演练平台指示演练开始,并在演练结束后接收格式化后返回数据展示在故障演练群。而演练平台(可以是混沌故障演练平台)是采用Springboot后端框架构建混沌故障演练平台,部署在生产跳板机,动态配置了各场景的演练指令及操作命令的映射关系,以满足各种场景的演练需求,如主机(CPU、内存、磁盘、IO输入/输出等)、网络(丢包、延时等)、DB数据(慢查询、删表删分区等)、子***业务交易(TPS吞吐量、交易量等)。并且故障演练平台作为连接演练机器人和各VM/K8S服务器及混沌工程工具的数据桥梁,并对接了CMDB(Configuration Management Datebase,配置管理)、SOP、IMS接口,可以便捷的获取到需要进行故障演练的子***的部署区域、VM及容器机器IP列表、DB等数据。还可以实时收取IMS提供的告警信息,并根据告警信息对接SOP,在SOP中抽取子***异常时的标准操作流程并按指引下发恢复指令,实现了闭环的演练方式。而混沌工程工具可以是使用GO语言对开源混沌工程工具进行封装,以得到混沌工程工具,并将其部署服务器。
当在终端中已建立好故障演练沟通群后,演练机器人接收到用户输入的故障演练场景指令时,可以将需要进行故障演练的子***和CMDB相连,并通过CMDB返回子***的全部VM实例IP,并将故障演练场景指令下发至演练平台,演练平台会根据故障演练场景指令在各个VM实例IP中选择一台VM实例IP作为目标VM的实例(如IP18.192.10.20)。然后,故障演练平台会将获取到的实例和故障演练场景指令通过SSH(Secure Shell,安全外壳协议)协议传送到VM服务器上的混沌工程工具。
步骤S20,基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行处理,并通过所述IMS对所述实例进行监测,确定所述实例是否出现故障;
IMS能定时检测VM、K8S主机资源状态及采集业务交易情况,为演练平台提供精准告警播报,也可以为演练平台抽取SOP库的标准流程恢复指令提供参数,在演练结束后IMS接收演练平台告警消除指令以实现自动化触发消除告警功能。
混沌工程工具会在接收到故障演练场景指令后,对目标VM的实例建立与故障演练场景指令相关的场景,如当故障演练场景指令为选择一台VM,并对此VM建立撑满CPU的指令时,混沌工程工具则会建立撑满CPU的任务以对实例进行处理。并且在本实施例中,IMS会对目标VM的实例进行实时监控,以确定实例是否出现故障,即确定混沌工程工具对实例是否已处理完成,若处理完成则确定出现故障。
步骤S30,若出现故障,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,控制所述演练平台在所述SOP中获取恢复流程;
SOP配置了各子***主机、DB、网络、业务等故障场景的标准操作流程,故障演练平台根据IMS同步回来的告警信息,在SOP中匹配对应恢复故障的标准操作流程,并将标准操作流程发送到故障演练群和混沌工程工具中。当经过判断发现目标VM的实例出现故障时,也就是混沌工程工具对实例已处理完成时,则可以通过IMS向演练平台发送告警信息,需要说明的是,IMS在向演练平台发送告警信息的同时也会向演练机器人发送告警信息。演练平台在接收到告警信息后,会根据告警信息中的内容和子***搜索SOP库,以匹配对应的故障恢复标准操作流程,即恢复流程。
步骤S40,通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。
当通过演练平台获取到恢复流程后,会对此恢复流程进行整理,以形成恢复指令,并将此恢复指令发送到混沌工程工具,混沌工程工具会根据恢复指令建立相应的恢复任务,并通过恢复任务对出现故障的实例进行恢复操作,例如,对目标VM的实例的CPU撑满故障做恢复操作,直到恢复任务执行完成。由于IMS是实时监测目标VM的实例的,因此,在IMS探测发现目标VM的实例已恢复正常后,会关闭IMS告警并推送故障恢复信息到演练平台,由演练平台宣布演练结束并格式化总结数据,通过演练机器人传送演练总结到终端的故障演练沟通群。
另外为辅助理解对闭环式故障演练的工作原理,下面进行举例说明。
例如,如图4所示,闭环式故障演练主要由演练机器人、混沌故障演练平台、VM(虚拟机)及K8S(Kubernetes Google)容器服务器、混沌工程工具、IMS(智能监控***)、CMDB(配置管理)、SOP功能***和故障演练场景组成。故障演练场景可以包括主机CPU、内存、IO(输入/输出)、网络丢包、时延、断网、DB(数据)慢查询、表分区、主备延迟、子***TPS(吞吐量)、交易量和杀进程等。其中,混沌故障演练平台中还设有可扩展插件和演练配置管理端。并且VM的数量和K8S中容器的数量是相同的,即假设存在VM1、VM2、VM3、VM4等时,则K8S中也存在容器1、容器2、容器3、容器4等。混沌故障演练过程可以是终端对演练机器人下发故障演练场景指令,且子***通过CMDB导出具有子***信息的VM实例,而混沌故障演练平台会在根据故障演练场景指令随机选择一台VM实例,并将获取到的实例和故障演练场景指令发送到VM服务器上的混沌工程工具,而混沌工程工具会根据故障演练场景指令对获取到的实例进行处理,并在IMS监测到混沌工程工具对实例处理完成后,发送告警信息到混沌故障演练平台和演练机器人。而混沌故障演练平台会根据告警信息在SOP中获取故障恢复标准操作流程,并将其传递到混沌工程工具中,通过混沌工程工具对实例进行恢复,在IMS监测到混沌工程工具对实例进行恢复,且恢复完成后,关闭IMS告警,并推送告警信息到故障演练平台,此时,闭环式故障演练已完成。其中,可扩展插件是用于在进行闭环式故障演练时,发现不存在用户需要进行故障演练的场景时,进行补充故障演练的场景的作用。
在本实施例中,通过在接收到故障演练场景指令时,基于所述故障演练场景指令在各所述VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至所述混沌工程工具;基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过所述IMS对所述实例进行监测,确定所述实例是否已演练完成;若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,通过所述演练平台在所述SOP中获取恢复流程;通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。通过在进行故障演练时,只需要获取到故障演练场景指令,就开始进行故障演练,从故障产生到故障恢复全程由演练平台及关联***完成,无需人工参与,即从故障开始到结束均采用闭环式演练方式,具备故障自愈能力,从而降低了现有技术中手工操作带来的二次生产风险,缩短了故障影响时长,提高了金融***故障演练的效率。
进一步地,基于本发明故障演练方法第一实施例,提出本发明故障演练方法第二实施例。本实施例是本发明第一实施例的步骤S10,在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例的步骤的细化,包括:
步骤a,在接收到故障演练场景指令时,确定所述故障场景指令对应的子***,并通过所述子***在各所述VM中确定具有实例的VM;
子***可以为需要进行故障演练的***。在接收到故障演练场景指令时,通过故障演练场景指令先确定需要进行故障演练的子***,并将子***传入CMDB中,通过CMDB导出具有子***信息的全部VM的实例。
步骤b,控制所述演练平台在具有实例的各所述VM中确定目标VM,并获取所述目标VM的实例。
当获取到具有实例的各个VM后,演练平台会根据故障演练场景指令在各个VM中选择一个符合故障演练场景指令要求的VM作为目标VM,并获取目标VM的实例。
在本实施例中,通过在接收到故障演练场景指令时,确定子***,并通过子***确定具有实例的VM,从而进一步地获取到目标VM的实例,保障了在进行故障演练时,获取到的目标VM的实例的准确性。
具体地,通过所述子***在各所述VM中确定具有实例的VM的步骤,包括:
步骤a1,通过所述CMDB获取所述子***的子***信息,并基于所述子***信息和各所述VM获取具有实例的VM。
需要说明的是,在本实施例中,故障演练***还包括配置管理CMDB。
CMDB配置了各子***部署区域、VM虚拟机及容器实例、子***DB、DB实例等信息,为故障演练平台提供目标数据。当确定子***后,则可以通过CMDB获取子***的子***信息(如子***DB等),并通过子***信息和各个控制的VM建立具有实例的VM。其中,具有实例的VM可以存在多个。
在本实施例中,通过CMDB来获取与子***相关联的具有实例的VM,从而保障了获取到的具有实例的VM均和子***相关联,保障了故障演练的准确性。
进一步地,基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行处理的步骤,包括:
步骤c,控制所述混沌工程工具基于所述故障演练场景指令确定预设故障演练场景,通过所述混沌工程工具按照所述预设故障演练场景建立故障任务,并通过所述故障任务对所述实例进行演练。
当混沌工程工具获取到故障演练场景指令后,会根据故障演练场景指令确定需要进行故障演练的预设故障演练场景,并根据预设故障演练场景进行故障任务的建立,并根据故障任务对获取到的实例进行故障处理(即演练),以建立故障场景。当故障处理完成时,此时故障场景也就构建完成,此时IMS告警***会及时地监测到该故障场景,并进行告警提示。
在本实施例中,通过混沌工程工具根据故障演练场景建立故障任务,以对实例进行演练,从而保障了故障演练的准确性。
具体地,控制所述混沌工程工具基于所述故障演练场景指令确定故障演练场景的步骤,包括:
步骤c1,获取所述故障演练***中各预设演练场景,并控制所述混沌工程工具通过所述故障演练场景指令在各所述预设演练场景中确定故障演练场景;
获取故障演练***中预设的各个演练场景(即各预设演练场景),并在获取到故障演练场景指令时,在各个演练场景中筛选出和故障演练场景指令匹配的演练场景,将其作为故障演练场景。其中,演练场景涵盖主机、网络、DB、子***交易等,且演练场景需预先在故障演练***中的演练配置管理端配置演练指令和具体操作命令的映射关系,演练场景的设置可以根据演练需求进行自定义配置,例如,如图5所示,部分演练场景包括应用、数据,(杀进程、悬挂进程、心跳异常、启动异常、环境错误、包错误或损坏、配置误删或错误或获取异常、***单点、依赖异常、依赖超时、异步阻塞同步、内存溢出、线程池满、监控错误、流控不合理)。运行时,其中间件和***也可以包括(负载均衡失效、缓存限流、缓存热点、数据库热点、数据库宕机、数据同步延迟、表分区误删、数据库连接满、数据主备延迟、内存抢占、内存错误、上下文切换、CPU抢占)。又如运行时,中间件、***、***中(服务器宕机、服务器假死、断电、不可写、不可读、磁盘满或坏或慢、混部、网卡满、网络丢包或抖动、网络超时、断网、域名***故障、网络超时)。***业务(***吞吐量突增、交易量突增、交易时延、交易堵塞)。
步骤c2,若在各所述预设演练场景中不存在故障演练场景,则通过所述故障演练***中的可扩展插件获取所述故障演练场景。
当经过判断发现在各个演练场景中不存在故障演练场景时,则可以通过故障演练***中的可扩展插件来获取故障演练场景。其中,可扩展插件为使用java语言开发的插件,主要提供了如子***、交易接口等模式可配置的业务故障演练场景,具备多线程高并发能力,可以基于http协议来调用子***交易接口,从业务访问量方向制造故障场景,应用故障演练场景主要集中在子***业务交易范围,如交易量、交易时延等。
在本实施例中,通过在各个演练场景中确定故障演练场景,当发现各个演练场景中不存在故障演练场景时,通过可扩展插件来获取故障演练场景,从而提高了故障演练方法的演练范围。
进一步地,控制所述演练平台在所述SOP中获取恢复流程的步骤,包括:
步骤d,控制所述演练平台在所述SOP中获取与所述故障演练场景对应的标准操作流程,并获取预设的恢复指令,将所述标准操作流程和所述恢复指令作为所述恢复流程。
当通过演练平台接收到告警信息时,演练平台会在SOP中确定与故障演练场景对应的标准操作流程,并会在演练平台进行整理,再将恢复指令和标准操作流程作为恢复流程传递到混沌工程工具中对目标VM的实例进行恢复。
在本实施例中,通过获取标准操作流程和恢复指令,并将其作为恢复流程,从而可以让混沌工程工具能够正常进行恢复操作,保障了故障演练方法的正常进行。
进一步地,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息的步骤,包括:
步骤f,基于所述恢复流程建立恢复任务,通过所述混沌工程工具对所述实例按照所述恢复任务进行恢复,并通过所述IMS对所述实例进行监测,确定所述实例是否已恢复完成;
当混沌工程工具获取到恢复流程后,可以根据恢复流程建立恢复任务(如自动剔除、隔离重启和自动扩容等),并根据恢复任务对目标VM的实例进行恢复操作,直至恢复完成,由于IMS会实时监测目标VM的实例的状态,因此可以通过IMS的监测现状来确定目标VM是否已恢复完成。
步骤g,若所述实例已恢复完成,则通过所述IMS向所述演练平台发送故障恢复信息。
当经过判断发现目标VM的实例已恢复完成时,可以通过IMS向演练平台发送故障恢复信息,此时演练平台会输出演练结束的提示信息。
在本实施例中,通过在混沌工程工具对实例进行恢复时,通过IMS进行监测,并在实例恢复完成时,向演练平台发送故障恢复信息,从而保障了故障演练的效率。
本发明还提供一种故障演练装置,参照图3,所述故障演练装置包括:
获取模块,用于在接收到故障演练场景指令时,控制演练平台基于所述故障演练场景指令在各VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至混沌工程工具;
监测模块,用于基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过IMS对所述实例进行监测,确定所述实例是否已演练完成;
发送模块,用于若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,通过所述演练平台在SOP中获取恢复流程;
恢复模块,用于通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。
可选地,所述获取模块,还用于:
在接收到故障演练场景指令时,确定所述故障场景指令对应的子***,并通过所述子***在各所述VM中确定具有实例的VM;
控制所述演练平台在具有实例的各所述VM中确定目标VM,并获取所述目标VM的实例。
可选地,所述故障演练***还包括配置管理CMDB,所述获取模块,还用于:
通过所述CMDB获取所述子***中的子***信息,并基于所述子***信息和各所述VM获取具有实例的VM。
可选地,所述监测模块,还用于:
控制所述混沌工程工具基于所述故障演练场景指令确定故障演练场景,通过所述混沌工程工具按照所述故障演练场景建立故障任务,并通过所述故障任务对所述实例进行演练。
可选地,所述监测模块,还用于:
获取所述故障演练***中各预设演练场景,并控制所述混沌工程工具通过所述故障演练场景指令在各所述预设演练场景中确定故障演练场景;
若在各所述预设演练场景中不存在故障演练场景,则通过所述故障演练***中的可扩展插件获取所述故障演练场景。
可选地,所述监测模块,还用于:
控制所述演练平台在所述SOP中获取与所述故障演练场景对应的标准操作流程,并获取预设的恢复指令,将所述标准操作流程和所述恢复指令作为所述恢复流程。
可选地,所述恢复模块,还用于:
基于所述恢复流程建立恢复任务,通过所述混沌工程工具对所述实例按照所述恢复任务进行恢复,并通过所述IMS对所述实例进行监测,确定所述实例是否已恢复完成;
若所述实例已恢复完成,则通过所述IMS向所述演练平台发送故障恢复信息。
上述各程序模块所执行的方法可参照本发明故障演练方法各个实施例,此处不再赘述。
本发明还提供一种计算机存储介质。
本发明计算机存储介质上存储有故障演练程序,所述故障演练程序被处理器执行时实现如上所述的故障演练方法的步骤。
其中,在所述处理器上运行的故障演练程序被执行时所实现的方法可参照本发明故障演练方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种故障演练方法,其特征在于,所述故障演练方法应用于故障演练***,所述故障演练***包括:演练平台、多个虚拟机VM、混沌工程工具、智能监控***IMS和标准操作流程SOP,
所述故障演练方法包括如下步骤:
在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至所述混沌工程工具;
基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过所述IMS对所述实例进行监测,确定所述实例是否已演练完成;
若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,控制所述演练平台在所述SOP中获取恢复流程;
通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。
2.如权利要求1所述的故障演练方法,其特征在于,所述在接收到故障演练场景指令时,控制所述演练平台基于所述故障演练场景指令在各所述VM中获取目标VM的实例的步骤,包括:
在接收到故障演练场景指令时,确定所述故障场景指令对应的子***,并通过所述子***在各所述VM中确定具有实例的VM;
控制所述演练平台在具有实例的各所述VM中确定目标VM,并获取所述目标VM的实例。
3.如权利要求2所述的故障演练方法,其特征在于,所述故障演练***还包括配置管理CMDB,
所述通过所述子***在各所述VM中确定具有实例的VM的步骤,包括:
通过所述CMDB获取所述子***中的子***信息,并基于所述子***信息和各所述VM获取具有实例的VM。
4.如权利要求1所述的故障演练方法,其特征在于,所述基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练的步骤,包括:
控制所述混沌工程工具基于所述故障演练场景指令确定故障演练场景,通过所述混沌工程工具按照所述故障演练场景建立故障任务,并通过所述故障任务对所述实例进行演练。
5.如权利要求4所述的故障演练方法,其特征在于,所述控制所述混沌工程工具基于所述故障演练场景指令确定故障演练场景的步骤,包括:
获取所述故障演练***中各预设演练场景,并控制所述混沌工程工具通过所述故障演练场景指令在各所述预设演练场景中确定故障演练场景;
若在各所述预设演练场景中不存在故障演练场景,则通过所述故障演练***中的可扩展插件获取所述故障演练场景。
6.如权利要求4所述的故障演练方法,其特征在于,所述控制所述演练平台在所述SOP中获取恢复流程的步骤,包括:
控制所述演练平台在所述SOP中获取与所述故障演练场景对应的标准操作流程,并获取预设的恢复指令,将所述标准操作流程和所述恢复指令作为所述恢复流程。
7.如权利要求1-6任一项所述的故障演练方法,其特征在于,所述基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息的步骤,包括:
基于所述恢复流程建立恢复任务,通过所述混沌工程工具对所述实例按照所述恢复任务进行恢复,并通过所述IMS对所述实例进行监测,确定所述实例是否已恢复完成;
若所述实例已恢复完成,则通过所述IMS向所述演练平台发送故障恢复信息。
8.一种故障演练装置,其特征在于,所述故障演练装置包括:
获取模块,用于在接收到故障演练场景指令时,控制演练平台基于所述故障演练场景指令在各VM中获取目标VM的实例,并将所述实例和所述故障演练场景指令通过所述演练平台发送至混沌工程工具;
监测模块,用于基于所述故障演练场景指令,通过所述混沌工程工具对所述实例进行演练,并通过IMS对所述实例进行监测,确定所述实例是否已演练完成;
发送模块,用于若演练完成,则通过所述IMS向所述演练平台发送告警信息,基于所述告警信息,通过所述演练平台在SOP中获取恢复流程;
恢复模块,用于通过所述演练平台将所述恢复流程发送至所述混沌工程工具,基于所述恢复流程,通过所述混沌工程工具对所述实例进行恢复,并在恢复完成后向所述演练平台发送故障恢复信息。
9.一种故障演练设备,其特征在于,所述故障演练设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的故障演练程序,所述故障演练程序被所述处理器执行时实现如权利要求1至7中任一项所述的故障演练方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有故障演练程序,所述故障演练程序被处理器执行时实现如权利要求1至7中任一项所述的故障演练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910570965.7A CN110308969A (zh) | 2019-06-26 | 2019-06-26 | 故障演练方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910570965.7A CN110308969A (zh) | 2019-06-26 | 2019-06-26 | 故障演练方法、装置、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110308969A true CN110308969A (zh) | 2019-10-08 |
Family
ID=68077087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910570965.7A Pending CN110308969A (zh) | 2019-06-26 | 2019-06-26 | 故障演练方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110308969A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765023A (zh) * | 2019-10-29 | 2020-02-07 | 中国工商银行股份有限公司 | 基于混沌实验的分布式***测试方法及*** |
CN111064597A (zh) * | 2019-11-12 | 2020-04-24 | 刘璐豪 | 一种基于Pass平台的中间件节点自愈***的自愈方法 |
CN111488306A (zh) * | 2020-03-26 | 2020-08-04 | 浙江口碑网络技术有限公司 | 攻防架构***及攻防架构***的搭建方法 |
CN112464497A (zh) * | 2020-12-16 | 2021-03-09 | 江苏满运物流信息有限公司 | 基于分布式***的故障演练方法、装置、设备及介质 |
CN112540887A (zh) * | 2020-12-16 | 2021-03-23 | 北京奇艺世纪科技有限公司 | 故障演练方法、装置、电子设备及存储介质 |
CN112905434A (zh) * | 2021-03-22 | 2021-06-04 | 北京车和家信息技术有限公司 | 故障演练方法、装置、设备、***及计算机存储介质 |
CN113010393A (zh) * | 2021-02-25 | 2021-06-22 | 北京四达时代软件技术股份有限公司 | 基于混沌工程的故障演练方法及装置 |
CN113220407A (zh) * | 2020-02-04 | 2021-08-06 | 北京京东振世信息技术有限公司 | 故障演练的方法和装置 |
CN113935178A (zh) * | 2021-10-21 | 2022-01-14 | 北京同创永益科技发展有限公司 | 一种云原生混沌工程实验的***半径控制***及方法 |
CN114113984A (zh) * | 2021-11-29 | 2022-03-01 | 平安壹账通云科技(深圳)有限公司 | 基于混沌工程的故障演练方法、装置、终端设备及介质 |
CN114501501A (zh) * | 2022-02-09 | 2022-05-13 | 北京恒安嘉新安全技术有限公司 | 移动通信网络靶场的配置管理方法、装置、设备及介质 |
CN114609995A (zh) * | 2022-03-04 | 2022-06-10 | 亚信科技(南京)有限公司 | 故障控制方法、装置、***、设备、介质及产品 |
-
2019
- 2019-06-26 CN CN201910570965.7A patent/CN110308969A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765023B (zh) * | 2019-10-29 | 2023-10-27 | 中国工商银行股份有限公司 | 基于混沌实验的分布式***测试方法及*** |
CN110765023A (zh) * | 2019-10-29 | 2020-02-07 | 中国工商银行股份有限公司 | 基于混沌实验的分布式***测试方法及*** |
CN111064597A (zh) * | 2019-11-12 | 2020-04-24 | 刘璐豪 | 一种基于Pass平台的中间件节点自愈***的自愈方法 |
CN113220407A (zh) * | 2020-02-04 | 2021-08-06 | 北京京东振世信息技术有限公司 | 故障演练的方法和装置 |
CN113220407B (zh) * | 2020-02-04 | 2023-09-26 | 北京京东振世信息技术有限公司 | 故障演练的方法和装置 |
CN111488306A (zh) * | 2020-03-26 | 2020-08-04 | 浙江口碑网络技术有限公司 | 攻防架构***及攻防架构***的搭建方法 |
CN112464497B (zh) * | 2020-12-16 | 2022-07-19 | 江苏满运物流信息有限公司 | 基于分布式***的故障演练方法、装置、设备及介质 |
CN112540887A (zh) * | 2020-12-16 | 2021-03-23 | 北京奇艺世纪科技有限公司 | 故障演练方法、装置、电子设备及存储介质 |
CN112464497A (zh) * | 2020-12-16 | 2021-03-09 | 江苏满运物流信息有限公司 | 基于分布式***的故障演练方法、装置、设备及介质 |
CN113010393A (zh) * | 2021-02-25 | 2021-06-22 | 北京四达时代软件技术股份有限公司 | 基于混沌工程的故障演练方法及装置 |
CN112905434A (zh) * | 2021-03-22 | 2021-06-04 | 北京车和家信息技术有限公司 | 故障演练方法、装置、设备、***及计算机存储介质 |
CN113935178A (zh) * | 2021-10-21 | 2022-01-14 | 北京同创永益科技发展有限公司 | 一种云原生混沌工程实验的***半径控制***及方法 |
CN114113984A (zh) * | 2021-11-29 | 2022-03-01 | 平安壹账通云科技(深圳)有限公司 | 基于混沌工程的故障演练方法、装置、终端设备及介质 |
CN114501501A (zh) * | 2022-02-09 | 2022-05-13 | 北京恒安嘉新安全技术有限公司 | 移动通信网络靶场的配置管理方法、装置、设备及介质 |
CN114501501B (zh) * | 2022-02-09 | 2024-03-29 | 北京恒安嘉新安全技术有限公司 | 移动通信网络靶场的配置管理方法、装置、设备及介质 |
CN114609995A (zh) * | 2022-03-04 | 2022-06-10 | 亚信科技(南京)有限公司 | 故障控制方法、装置、***、设备、介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110308969A (zh) | 故障演练方法、装置、设备及计算机存储介质 | |
CN111290834B (zh) | 一种基于云管理平台实现业务高可用的方法、装置及设备 | |
CN108040108A (zh) | 通信切换方法、装置、协调服务器及可读存储介质 | |
RU2018117282A (ru) | Централизованное управление программно-определяемой автоматизированной системой | |
US9478973B2 (en) | Method for transfer of control between devices in a substation system and a device thereof | |
CN102064964B (zh) | 一种千兆交换环境下千兆网卡的快速切换方法 | |
CN108430116A (zh) | 断网重连方法、介质、装置和计算设备 | |
EP3477894B1 (en) | Method and device for controlling virtualized broadband remote access server (vbras), and communication system | |
CN108429629A (zh) | 设备故障恢复方法和装置 | |
CN108268305A (zh) | 用于虚拟机自动扩缩容的***和方法 | |
CN103812675A (zh) | 一种实现业务交付平台异地容灾切换的方法和*** | |
CN108234212A (zh) | 混合云容灾方法、服务器及存储介质 | |
CN104243259B (zh) | 分布式弹性网络互连***中协作方法和*** | |
CN112416323A (zh) | 控制代码的生成方法、运行方法、装置、设备及存储介质 | |
CN109254876A (zh) | 云计算***中数据库的管理方法和装置 | |
CN107797859A (zh) | 一种定时任务的调度方法及一种调度服务器 | |
CN104283780A (zh) | 建立数据传输路径的方法和装置 | |
CN106685685A (zh) | 一种跨安全分区的交换机性能监测方法及*** | |
CN107534576B (zh) | 一种链路恢复方法和网络设备 | |
CN100576805C (zh) | 对象补救***及方法 | |
CN109787860A (zh) | 双向转发链路检测方法及装置 | |
CN109343944A (zh) | eSIM卡的数据处理方法、装置、终端及存储介质 | |
CN106487469B (zh) | 一种时间节点切换方法与*** | |
CN117221085A (zh) | 一种网络故障预警方法、装置、电子设备及存储介质 | |
CN112235300A (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 |