CN112256568B - 一种基于分布式故障注入的方法 - Google Patents
一种基于分布式故障注入的方法 Download PDFInfo
- Publication number
- CN112256568B CN112256568B CN202011091411.8A CN202011091411A CN112256568B CN 112256568 B CN112256568 B CN 112256568B CN 202011091411 A CN202011091411 A CN 202011091411A CN 112256568 B CN112256568 B CN 112256568B
- Authority
- CN
- China
- Prior art keywords
- fault injection
- fault
- server
- agent
- injection
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明一种基于分布式故障注入的方法,包括:A.选取指定应用并选择对应的服务器进行演练,通过调用对应的故障发起接口发起故障注入的调用请求;B.发起故障注入调用后,检测服务器是否注册agent服务并且是否安装故障注入工具包;C.由server发起接口调用,进行相应的故障注入,然后通过监控和命令去验证故障注入是否生效;D.完成故障注入验证后,进行故障注入的销毁,并通过agent注册中心监控实时状态,确认故障注入销毁是否成功。本发明全流程自动化操作可以快速部署和注入实施,执行效率高;且使用接口和页面操作,有效避免手工执行误操作,可以实现精准注入,同时采用server‑agent架构模式,可以进行用户无感知的升级,扩展性良好。
Description
技术领域
本发明涉及软件开发及软件测试技术领域,尤其涉及一种基于分布式故障注入的方法。
背景技术
对于计算机系统而言,故障几乎无处不在。它们形态多样,表现方式各异,有的明显潜伏期短且易于发现,危害相对较小;有的却很隐蔽且潜伏期很长不容易发现,但一旦激活就会致使系统崩溃从而造成不必要的严重后果。
故障注入通过人为地产生故障并将其引入目标系统中加速系统发生故障和失效的过程。通过对注入故障后系统的反应信息进行监测和分析,可实现测试和评价,获得对目标系统可靠性和容错特性的评测结果,是评测容错机制有效性的一种有效方法。除此之外,它还是可以用于评测目标系统硬件对故障的敏感程度、目标系统软件中的错误传播等等。因此它是一种有效的可靠性分析工具。
目前故障注入主要依靠人工完成,由故障人员先上传故障注入包到指定的服务器,然后手工执行对应的命令执行故障注入操作,执行完命令操作后,手动观察服务状态判断注入是否成功同时通知相关人员进行观察和验证。但目前这种方法操作前准备工作繁琐,重复性工作较多,操作中存在选错机器,手动输入命令出错,执行故障注入后,无法对注入事件状态进行监控,对故障注入事件造成的影响缺乏系统化的监控工具。这种依靠手工执行方式无法针对大量应用和服务节点进行快速注入,扩展性差,同时因为人为执行可能出错的问题,精准性不高,容易造成线上问题,另外在使用中易用性太差,导致执行效率低下。
发明内容
为解决上述问题,本发明提供一种基于分布式故障注入的方法,将整个流程系统化,平台化,界面化,并且新增故障注入事件监控,集成和打通了服务状态监控。
本发明一种基于分布式故障注入的方法,包含:
A.选取指定应用并选择对应的服务器进行演练,通过调用对应的故障发起接口发起故障注入的调用请求;
B.发起故障注入调用后,检测服务器是否注册agent服务并且是否安装故障注入工具包;
C.由server发起接口调用,进行相应的故障注入,然后通过监控和命令去验证故障注入是否生效;
D.完成故障注入验证后,进行故障注入的销毁,并通过agent注册中心监控实时状态,确认故障注入销毁是否成功。
本发明通过接口和页面操作将操作命令封装,易用性好,同时因为是全流程自动化操作可以快速部署和注入实施,执行效率高;且使用接口和页面操作,有效避免手工执行误操作,可以实现精准注入,同时采用server-agent架构模式,可以进行用户无感知的升级,扩展性良好。采用流程化编排方式,对故障注入服务的状态和故障注入事件均有监控和操作抓手,可运维性好,能及时感知故障注入的实际情况,避免引起生产事故。
进一步的,步骤A包括:
选择需要故障注入的应用,根据映射关系找到对应的服务器,并选择对应的故障注入类型;
根据选取的故障注入类型,调用其对应的故障发起接口从而发起故障注入的调用请求。
进一步的,步骤B包括:
当发起故障注入的调用后,检测相应的服务器是否注册agent服务并且是否安装故障注入工具包;
如果没有安装则调用itsm调度编排工具,进行agent服务部署及故障注入工具包的安装;
已经安装后,则启动agent,并将agent的信息:包括启动agent服务所在服务器的ip和端口以及agent服务的版本注册到服务发现及注册中心。
所述步骤B服务端和agent架构,通过server-agent二层结构,对外可以统一提供的接口和界面服务,对内通过agent可以进行用户无感知的扩展和升级。
进一步的,步骤C包括:
当步骤B完成后,由server找到对应服务器的agent服务正式调用故障发起接口,通过对应服务器的agent服务,由agent服务根据调用的接口不同,调用故障注入工具包提供的对应的本地命令,实施对指定的服务器进行故障注入;
待故障注入执行成功后,故障注入系统通过监控和相应的命令验证故障注入是否生效,并且根据设定的时间和次数限制,在达到相应条件后解除相应的故障注入。
所述步骤C使用接口和页面操作,有效避免手工执行误操作,可以实现精准注入,同时采用server-agent架构模式,可以进行用户无感知的升级,扩展性良好。
进一步的,步骤D包括:
验证故障注入生效后,调用对应的故障事件销毁接口对故障进行故障注入的销毁,
在发起故障注入销毁后,通过agent注册中心实时监控其销毁的实时状态,确认故障注入销毁成功后,通过观察对应的应用和服务器进行确认。
所述步骤D新增了故障注入事件监控,能够根据监控结果对注入行为进行修正和及时关停,控制故障注入影响范围。
本发明提出server和agent架构模式,通过二层架构,将具体实现和对外服务交互及调度编排进行隔离,扩展性良好;可以从多个方面发起故障注入,故障注入类型丰富,包括应用层面的,机器基础层面的,中间件层面的,模拟故障注入类型丰富,分类详细,更贴近线上真实场景;通过工程化,流程化方式进行故障注入,精准性高,同时可以大规模实施,执行效率高。
附图说明
图1为本发明一种基于分布式故障注入的方法的流程图。
具体实施方式
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
如图1所示本发明一种基于分布式故障注入的方法,包括:
1.选择服务器进行演练
选择需要进行故障注入的应用;
根据映射关系找到对应的服务器并选择对应的故障注入类型;
对选取的故障注入类型,调用对应的故障发起接口,发起故障注入请求。
2.检测服务器是否注册agent服务
发起故障注入调用请求后,检测相应的服务器是否注册agent服务并且是否安装故障注入工具包,如果没有安装则调用itsm调度编排工具,进行agent服务部署及故障注入工具包的安装;
安装成功后,启动agent,并将agent的信息:包括启动agent服务所在服务器的ip和端口以及agent服务的版本注册到服务发现及注册中心。
3.server发起接口调用进行故障注入
agent启动后,server正式对故障发起接口发起调用,相应服务器上的agent服务根据调用的故障发起接口不同,调用故障注入工具包提供的对应的本地命令,实施对指定的服务器或者应用进行故障注入;
待故障注入执行成功后,故障注入系统通过监控和相应的命令验证故障注入是否生效,并且根据设定的时间和次数限制,在达到相应条件后解除相应的故障注入。其中设定的时间和次数限制是在发起故障注入的请求时即步骤1中有相关的参数传入,里面有时间和次数相关的设定。
4.进行故障注入的销毁
验证故障注入生效后,调用对应的故障事件销毁接口对故障进行故障注入的销毁,
在发起故障注入销毁后,通过agent注册中心实时监控其销毁的实时状态,确认故障注入销毁成功后,通过观察对应的应用和服务器进行确认。
本发明提出server和agent架构模式,通过二层架构,将具体实现和对外服务交互及调度编排进行隔离,扩展性良好;可以从多个方面发起故障注入,故障注入类型丰富,包括应用层面的,机器基础层面的,中间件层面的,模拟故障注入类型丰富,分类详细,更贴近线上真实场景;通过工程化,流程化方式进行故障注入,精准性高,同时可以大规模实施,执行效率高。
Claims (4)
1.一种基于分布式故障注入的方法,其特征在于,包括:
A.选取指定应用并选择对应的服务器进行演练,通过调用对应的故障发起接口发起故障注入的调用请求;
B.发起故障注入调用后,检测服务器是否注册agent服务并且是否安装故障注入工具包;
C.由server发起接口调用,进行相应的故障注入,并通过监控和命令验证故障注入是否生效;
D.完成故障注入验证后,进行故障注入的销毁,并通过agent注册中心监控实时状态,确认故障注入销毁是否成功;
当步骤B完成后,由server找到对应服务器的agent服务正式调用故障发起接口,通过对应服务器的agent服务,由agent服务根据调用的故障发起接口不同,调用故障注入工具包提供的对应的本地命令,实施对指定的服务器进行故障注入;
待故障注入执行成功后,故障注入系统通过监控和相应的命令验证故障注入是否生效,并且根据设定的时间和次数限制,在达到相应条件后解除相应的故障注入。
2.如权利要求1所述的一种基于分布式故障注入的方法,其特征在于,步骤A包括:
选择需要故障注入的应用,根据映射关系找到对应的服务器,并选择对应的故障注入类型;
根据选取的故障注入类型,调用其对应的故障发起接口从而发起故障注入的调用请求。
3.如权利要求2所述的一种基于分布式故障注入的方法,其特征在于,步骤B包括:
当发起故障注入的调用后,检测相应的服务器是否注册agent服务并且是否安装故障注入工具包;
如果没有安装则调用itsm调度编排工具,进行agent服务部署及故障注入工具包的安装;
已经安装后,则启动agent,并将agent的信息:包括启动agent服务所在服务器的ip和端口以及agent服务的版本注册到服务发现及注册中心。
4.如权利要求1所述的一种基于分布式故障注入的方法,其特征在于,步骤D包括:
验证故障注入生效后,调用对应的故障事件销毁接口对故障进行故障注入的销毁,
在发起故障注入销毁后,通过agent注册中心实时监控其销毁的实时状态,确认故障注入销毁成功后,通过观察对应的应用和服务器进行确认。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091411.8A CN112256568B (zh) | 2020-10-13 | 2020-10-13 | 一种基于分布式故障注入的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091411.8A CN112256568B (zh) | 2020-10-13 | 2020-10-13 | 一种基于分布式故障注入的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256568A CN112256568A (zh) | 2021-01-22 |
CN112256568B true CN112256568B (zh) | 2023-06-06 |
Family
ID=74242910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011091411.8A Active CN112256568B (zh) | 2020-10-13 | 2020-10-13 | 一种基于分布式故障注入的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256568B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN108268365A (zh) * | 2016-12-30 | 2018-07-10 | 腾讯科技(深圳)有限公司 | 异常任务注入方法、装置和系统 |
CN109617759A (zh) * | 2018-12-04 | 2019-04-12 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 区块链系统稳定性测试方法、装置、设备及存储介质 |
CN110489245A (zh) * | 2019-08-07 | 2019-11-22 | 上海微小卫星工程中心 | 基于远程过程调用rpc的故障注入方法及系统 |
CN111400182A (zh) * | 2020-03-16 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 故障注入方法、装置、服务器及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891981B1 (en) * | 2014-01-06 | 2018-07-18 | Fujitsu Limited | Method and computing system allowing a method of injecting hardware faults into an executing application |
-
2020
- 2020-10-13 CN CN202011091411.8A patent/CN112256568B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN108268365A (zh) * | 2016-12-30 | 2018-07-10 | 腾讯科技(深圳)有限公司 | 异常任务注入方法、装置和系统 |
CN109617759A (zh) * | 2018-12-04 | 2019-04-12 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 区块链系统稳定性测试方法、装置、设备及存储介质 |
CN110489245A (zh) * | 2019-08-07 | 2019-11-22 | 上海微小卫星工程中心 | 基于远程过程调用rpc的故障注入方法及系统 |
CN111400182A (zh) * | 2020-03-16 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 故障注入方法、装置、服务器及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
Alessio Netti 等."A machine learning approach to online fault classification in HPC systems".《Future Generation Computer Systems》.2020,第第110卷卷第1009-1022页. * |
刘伟娜."面向安腾架构的高端容错机故障注入平台的设计与实现".《中国优秀硕士学位论文全文数据库信息科技辑》.2011,第I137-6页. * |
卫津逸 等."基于脆弱点分析的故障注入技术".《计算机与现代化》.2019,第39-43,48页. * |
Also Published As
Publication number | Publication date |
---|---|
CN112256568A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020140820A1 (zh) | 软件测试方法、系统、装置、设备、介质及计算机程序产品 | |
US5634002A (en) | Method and system for testing graphical user interface programs | |
KR101008977B1 (ko) | OSGi 서비스 플랫폼 테스트 방법 및 이를 이용한테스트 툴 | |
KR101019210B1 (ko) | 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법 | |
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
CN112817872B (zh) | 开发测试系统及方法 | |
US20060129892A1 (en) | Scenario based stress testing | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
KR20140072726A (ko) | 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법 | |
CN106648762B (zh) | 一种搭建开发环境的方法及装置 | |
CN109543417B (zh) | 一种基于Qemu平台的漏洞挖掘方法和装置 | |
EP1876532A1 (en) | A method and a system for testing software modules in a telecommunication system | |
KR20120081873A (ko) | 모바일 어플리케이션 검증 방법 및 이를 적용한 단말 | |
CN107562621B (zh) | 确定手工测试用例与被测试代码关联关系的方法和装置 | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
WO2014015509A1 (en) | Recording external processes | |
CN112256568B (zh) | 一种基于分布式故障注入的方法 | |
CN111159023A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN115733741B (zh) | 一种针对待测系统的异常场景测试方法和装置 | |
CN111078485A (zh) | 一种实训结果智能检测方法 | |
CN111666200A (zh) | 一种pc软件冷启动耗时的测试方法及终端 | |
CN115599645A (zh) | 一种linux驱动模块稳定性测试方法及装置 | |
CN115098116A (zh) | 应用程序的模拟操作方法、装置、终端及存储介质 | |
CN111722997B (zh) | 自动化测试的异常检测方法及计算机可读存储介质 | |
CN113127324B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |