混沌工程任务编排方法和混沌实验实施方法技术

技术编号:39281105 阅读:10 留言:0更新日期:2023-11-07 10:55
本公开提供了一种混沌工程任务编排方法,包括:根据目标系统的架构,生成与目标系统对应的架构感知图并确定相应的链路调用关系;基于架构感知图和链路调用关系,获取目标服务集合;根据目标服务集合中各个服务的服务类型,对专家诊断库和历史故障库中的相应故障进行配置,以生成用于目标服务集合中各个服务的多个故障组件;以及针对目标系统,对多个故障组件进行故障场景的随机编排或根据预设排序编排,基于故障场景的随机编排或根据预设排序编排的结果生成故障演练场景。本公开还提供了一种混沌实验的实施方法以及一种自动执行混沌实验的方法。实验的方法。实验的方法。

【技术实现步骤摘要】
混沌工程任务编排方法和混沌实验实施方法


[0001]本公开涉及计算机技术的领域,具体地,涉及一种混沌工程任务编排方法、一种混沌实验实施方法、以及一种自动执行混沌实验的方法。

技术介绍

[0002]混沌工程是通过向系统中引入软件或硬件的异常状态(扰动),制造故障场景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段。混沌工程利用实验提前探知系统风险,通过架构优化和运维模式的改进来解决系统风险,提升系统架构韧性,增强故障免疫力,提高企业效益。混沌工程有助于帮助系统研发人员发现系统中潜在的脆弱环节,降低稳定性缺陷可能造成的损失,提高应用上线的信心。
[0003]在相关技术中,混沌实验存在流程编排固定、不能自动编排等问题。例如,ChaosBlade和Chaos Mesh往往采用定时任务的方式执行已经编排好的混沌工程测试任务,这些混沌工程测试任务包括了基础资源类、Pod类、网络类、文件系统类以及内核类故障等。以下给出一些相关示例:
[0004]专利CN115033415A中定义了故障致命度=故障严重度*故障发生度,并将故障严重度分为致命、重大、较大、轻微、影响较小五个等级并分别赋分为10,8,6,4,2。并将故障发生度分为频率非常高、发生频度高、发生频率低、很少发生和几乎不发生五个等级并分别赋分为10,8,6,4,2。通过等级的划分可以一定程度上计算故障的致命度,但可能存在较大误差,例如几乎不发生的故障的故障严重度可能对应于最高等级,然而经过所定义的计算只能得到较低分数。除此之外,这些等级划分采用对业务造成的损失作为标准,而没有考虑到其他方面的影响(例如,监管处罚、内部处罚等)。
[0005]专利CN114924898中描述的自动化混沌工程获取的初始信息是人工指定的信息,不是根据被测系统自动化测量并进行动态调整得到的信息,不具有自动化动态调整的性质。
[0006]专利CN114113984A虽然提到了根据预期结果对故障因子进行调整,但是没有将不同的混沌实验进行区分。其中提到了服务器宕机数量和业务恢复时间之间的影响,但有时宕机1台机器造成业务恢复的时间很长,宕机2台业务恢复时间反而短,服务器宕机数量和业务恢复时间之间不一定存在因果关系。

技术实现思路

[0007]有鉴于此,本公开提供了一种混沌工程任务编排方法,另外,还提供了一种混沌实验实施方法以及一种自动执行混沌实验的方法,以缓解、减轻、甚至消除上述问题。
[0008]根据本公开的一个方面,提供了一种混沌工程任务编排方法,其特征在于,所述方法包括:根据目标系统的架构,生成与所述目标系统对应的架构感知图并确定相应的链路调用关系;基于所述架构感知图和所述链路调用关系,获取目标服务集合;根据所述目标服务集合中各个服务的服务类型,对专家诊断库和历史故障库中的相应故障进行配置,以生
成用于所述目标服务集合中各个服务的多个故障组件;以及针对所述目标系统,对所述多个故障组件进行故障场景的随机编排或根据预设排序编排,基于故障场景的随机编排或根据预设排序编排的结果生成故障演练场景,其中所述多个故障组件至少包括故障ID、故障范围、故障生效的组件、故障模拟的场景、以及故障生效的匹配条件,并且其中所述预设排序根据以下因素中的至少一种被确定:目标故障发生的可能性、目标故障的影响范围、以及目标故障对应服务的强弱依赖关系。
[0009]根据本公开的一些实施例,所述根据多个故障组件进行故障场景的随机编排是针对故障场景的串行工作流进行的,并且:响应于所述串行工作流中的目标故障包括多个子故障,将所述目标故障视为一个故障场景,所述目标故障中的各个子故障可以是单一的故障点,也可以是串行、并行等故障集合,并且其中所述目标故障中的子故障的数量不超过预设阈值。
[0010]根据本公开的一些实施例,所述混沌工程任务编排方法针对虚拟机环境和容器环境执行跨环境的任务编排,以支持通过判断虚拟机环境下的服务状态,驱动容器环境下服务的混沌演练任务。
[0011]根据本公开的另一个方面,提供了一种混沌实验的实施方法,其特征在于,所述方法包括:针对符合动态调整条件的目标混沌实验的参数设置初始化值以及参数调整值,所述目标混沌实验是对根据本公开的前述方面提供的混沌工程任务编排方法所得的多个故障组件进行编排而获得并且用于对目标系统进行混沌测试;对所述目标系统实施所述目标混沌实验,利用测试工具获取相应的测试结果;响应于所述目标混沌实验的所述测试结果与期望结果不匹配,根据所述初始化值以及所述参数调整值动态调整所述目标混沌实验的所述参数;以及响应于所述目标混沌实验的所述测试结果与期望结果匹配,停止实施所述目标混沌实验,并且记录所述参数的当前取值和所述测试结果之间的对应关系。
[0012]根据本公开的一些实施例,所述混沌实验的实施方法还包括:增加混沌实验运行方式:概率区间,所述概率区间的两个端点分别指示混沌实验运行的最小百分比和最大百分比,以使得混沌实验包括五种类型的运行方式,所述五种类型的运行方式分别表示随机选出一个符合条件的运行单元、选出所有符合条件的运行单元、选出指定数量且符合条件的运行单元、选出占符合条件的运行单元中指定百分比的运行单元、选出占符合条件的运行单元中不超过指定百分比的运行单元、选出占符合条件的运行单元中最小百分比到最大百分比之间的运行单元,所述运行单元包括但不限于Pod或物理机。
[0013]根据本公开的一些实施例,所述目标混沌实验是所述多个故障组件中随机编排生成的故障,并且所述方法还包括:采用所述五种类型的运行方式中的任一种实施所述目标混沌实验。
[0014]根据本公开的一些实施例,所述混沌实验的实施方法还包括:针对不符合动态调整条件的目标混沌实验,将所述目标混沌实验实施于所述目标系统后产生的测试结果和相应的期望结果反馈给用户。
[0015]根据本公开的一些实施例,所述混沌实验的实施方法部署在预发布环境中,并且所述混沌实验的实施方法还包括:响应于所述目标系统在生产环境中的故障达到所述参数当前取值的预设占比,向用户发出告警信息。
[0016]根据本公开的又一个方面,提供了一种自动执行混沌实验的方法,其特征在于,所
述方法包括:将混沌工程和DevOps流水线集成,响应于目标系统中更新版本的目标服务被发布,使用根据本公开的前述方面提供的混沌工程任务编排方法获取与所述目标服务对应的故障演练场景以进行目标混沌实验;响应于所述故障演练场景根据预设排序编排的结果而生成,针对预设排序靠前的目标故障进行混沌演练;响应于所述故障演练场景根据故障场景的随机编排的结果而生成,对目标故障进行随机组合并进行混沌演练;以及响应于混沌演练中目标服务的故障达到所述目标混沌实验的参数的当前取值的预设占比或者对混沌演练进行工作流健康检查发现不健康时,终止混沌演练,其中所述工作流健康检查是通过监控、测试等检查手段获取所述目标系统的状态。
[0017]根据本公开的一些实施例,所述目标故障根据其在所述多个故障组件中的预设排序被选取或者从所述多个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种混沌工程任务编排方法,其特征在于,所述方法包括:根据目标系统的架构,生成与所述目标系统对应的架构感知图并确定相应的链路调用关系;基于所述架构感知图和所述链路调用关系,获取目标服务集合;根据所述目标服务集合中各个服务的服务类型,对专家诊断库和历史故障库中的相应故障进行配置,以生成用于所述目标服务集合中各个服务的多个故障组件;以及针对所述目标系统,对所述多个故障组件进行故障场景的随机编排或根据预设排序编排,基于故障场景的随机编排或根据预设排序编排的结果生成故障演练场景,其中所述多个故障组件至少包括故障ID、故障范围、故障生效的组件、故障模拟的场景、以及故障生效的匹配条件,并且其中所述预设排序根据以下因素中的至少一种被确定:目标故障发生的可能性、目标故障的影响范围、以及目标故障对应服务的强弱依赖关系。2.根据权利要求1所述的方法,其特征在于,所述根据多个故障组件进行故障场景的随机编排是针对故障场景的串行工作流进行的,并且:响应于所述串行工作流中的目标故障包括多个子故障,将所述目标故障视为一个故障场景,所述目标故障中的各个子故障可以是单一的故障点,也可以是串行、并行等故障集合,并且其中所述目标故障中的子故障的数量不超过预设阈值。3.根据权利要求1所述的方法,其特征在于,所述方法针对虚拟机环境和容器环境执行跨环境的任务编排,以支持通过判断虚拟机环境下的服务状态,驱动容器环境下服务的混沌演练任务。4.一种混沌实验的实施方法,其特征在于,所述方法包括:针对符合动态调整条件的目标混沌实验的参数设置初始化值以及参数调整值,所述目标混沌实验是对权利要求1所述的方法所得的多个故障组件进行编排而获得并且用于对目标系统进行混沌测试;对所述目标系统实施所述目标混沌实验,利用测试工具获取相应的测试结果;响应于所述目标混沌实验的所述测试结果与期望结果不匹配,根据所述初始化值以及所述参数调整值动态调整所述目标混沌实验的所述参数;以及响应于所述目标混沌实验的所述测试结果与期望结果匹配,停止实施所述目标混沌实验,并且记录所述参数的当前取值和所述测试结果之间的对应关系。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:增加混沌实验运行方式:概率区间,所述概...

【专利技术属性】
技术研发人员:王如迅任党恩冯赫裘将旭马京屹曹文文
申请(专利权)人:中国国际金融股份有限公司
类型:发明
国别省市:

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

1