一种实现自动化演练云原生平台高可用场景的方法及系统与流程

文档序号:33193104发布日期:2023-02-04 09:33阅读:107来源:国知局
一种实现自动化演练云原生平台高可用场景的方法及系统与流程

1.本发明涉及云原生平台技术领域,具体为一种实现自动化演练云原生平台高可用场景的方法及系统。


背景技术:

2.云原生在传统云计算基础上,提供了更快更低成本的弹性,更好的软硬一体化灵活性,已经成为云计算发展最快的技术方向。
3.现有技术中,云原生帮助开发者大幅度降低资源成本和交付成本,从而更快更好地赢得市场。同时,云原生也给传统运维、研发方式带来了彻底的变革,这就使得传统的故障演练手段需要跟随演进。


技术实现要素:

4.本发明的目的在于提供一种实现自动化演练云原生平台高可用场景的方法及系统,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:一种实现自动化演练云原生平台高可用场景的方法,该方法包括以下步骤:
6.读取参数配置;
7.生成一个自动化演练任务;
8.根据配置采集平台和应用状态;
9.启动演练任务;
10.演练结束后采集平台应用状态;
11.测试结构写入文件。
12.优选的,读取参数配置前,通过自动化演练模型定义自动化演练云原生平台高可用场景的参数。
13.优选的,生成一个自动化演练任务时,使用自定义模型定义数据,根据模型定义的数据分别生成kubernetes任务。
14.优选的,根据配置采集平台和应用状态时,调用kubernetes命令生成job执行自动化演练并采集数据,基于自动化演练模型,把自动化演练模型中的配置参数翻译成自动化演练的任务文件。
15.优选的,启动演练任务时,根据需求配置自动化演练参数;
16.演练控制器启动演练流程,根据模型参数判断演练方式;
17.演练控制器根据主演练方式,跳转到对应分支做下一步处理;
18.如果是kubernetes方式,演练控制器根据子任务类型做处理,否则跳过此步骤。
19.一种实现自动化演练云原生平台高可用场景的系统,所述该系统由读取模块、任务生成模块、收集模块、演练模块、采集模块以及记录模块构成;
20.读取模块,用于读取参数配置;
21.任务生成模块,用于生成一个自动化演练任务;
22.收集模块,用于根据配置采集平台和应用状态;
23.演练模块,用于启动演练任务;
24.采集模块,用于演练结束后采集平台应用状态;
25.记录模块,用于测试结构写入文件。
26.优选的,所述读取模块中,读取参数配置前,通过自动化演练模型定义自动化演练云原生平台高可用场景的参数。
27.优选的,所述任务生成模块中,生成一个自动化演练任务时,使用自定义模型定义数据,根据模型定义的数据分别生成kubernetes任务。
28.优选的,所述收集模块中,根据配置采集平台和应用状态时,调用kubernetes命令生成job执行自动化演练并采集数据,基于自动化演练模型,把自动化演练模型中的配置参数翻译成自动化演练的任务文件。
29.优选的,所述演练模块中,启动演练任务时,根据需求配置自动化演练参数;
30.演练控制器启动演练流程,根据模型参数判断演练方式;
31.演练控制器根据主演练方式,跳转到对应分支做下一步处理;
32.如果是kubernetes方式,演练控制器根据子任务类型做处理,否则跳过此步骤。
33.与现有技术相比,本发明的有益效果是:
34.本发明提出的实现自动化演练云原生平台高可用场景的方法及系统支持自动化演练云原生平台高可用场景,支持自动化演练不同场景,支持自动化数据采集。大大提升演练云原生平台高可用场景效率,极大地减少演练云原生平台高可用场景的难度和工作量,方便对演练云原生平台高可用场景的管理,方便反复演练云原生平台高可用场景。
附图说明
35.图1为本发明方法流程图;
36.图2为本发明控制器实现流程图;
37.图3为本发明自动化演练模型参数定义图。
具体实施方式
38.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.实施例一
40.请参阅图1至图3,本发明提供一种技术方案:一种实现自动化演练云原生平台高可用场景的方法,该方法包括以下步骤:
41.读取参数配置;
42.生成一个自动化演练任务;
43.根据配置采集平台和应用状态;
44.启动演练任务;
45.演练结束后采集平台应用状态;
46.测试结构写入文件。
47.支持kubernetes和物理机(物理机指kubernetes集群中节点对应的物理机或者虚机,本文档后续的物理机都是此含义)的多种混沌测试。支持的场景如下:
48.1kubernetes测试
49.模拟pod故障
50.模拟网络故障
51.模拟压力场景
52.模拟文件i/o故障
53.模拟dns故障
54.模拟时间故障
55.模拟jvm应用故障
56.模拟linux内核故障
57.模拟aws故障
58.模拟gcp故障
59.模拟http故障
60.2物理机测试
61.模拟进程故障
62.模拟网络故障
63.模拟主机故障
64.模拟压力场景
65.模拟磁盘故障
66.模拟jvm应用故障
67.模拟时间故障。
68.使用自定义的自动化演练模型,通过演练控制器把模型翻译为生成kubernetes能执行的任务、数据采集的脚本,并排列好调用顺序。按顺序执行数据采集或者调用kubernetes执行演练任务。
69.两个重要概念如下:
70.自动化演练模型
71.演练控制器
72.自动化演练模型:定义自动化演练云原生平台高可用场景的参数。
73.演练控制器:使用自定义模型定义数据,根据模型定义的数据分别生成kubernetes任务,调用kubernetes命令生成job执行自动化演练并采集数据。
74.自动化演练模型参数定义如图3所示。
75.演练控制器:基于模型,把模型中的配置参数翻译成自动化演练的任务文件:
76.maintasktype:标志是kubernetes演练还是kubernetes中节点的物理机演练,物理机演练指的是kubernetes集群内的物理机,包括集群中的虚机。如果是kubernetes测试,把后续的任务翻译为kubernetes任务;如果是物理机测试,则把后续的任务翻译为物理机
任务。
77.subtasktype:子任务类型,kubernetes和物理机演练支持不同的子任务类型。kubernetes演练支持pod、dns、pod网络、pod压力、pod i/0、pod时间、http等子类型,所有的kubernetes类型都是即支持单独pod的演练,也支持到pod内的container的演练;物理机演练支持进程错误、网络错误、cpu压力、内存压力、磁盘压力等子类型。每种演练的子类型可以根据自己的需要做扩展,不限于列出的这些子类型。
78.taskjson:测试配置,根据此配置参数,生成测试任务。测试任务可以使用第三方工具实现,如各种压力测试,可以使用第三方工具实现压力模拟;也可以自己写程序实现,如磁盘满,系统关机等。
79.datacollection:数据采集配置,配置演练前、演练中、演练后的数据采集配置。
80.控制器工作流程说明如下:
81.1、根据需求配置自动化演练参数。
82.2、演练控制器启动演练流程,根据模型参数判断演练方式。
83.3、演练控制器根据主演练方式,跳转到对应分支做下一步处理。
84.4、如果是kubernetes方式,演练控制器根据子任务类型做处理,否则跳过此步骤。支持的演练任务说明如下:
85.4.1如果是pod错误的演练,生成针对指定pod或pod内容器出现错误的演练任务,并执行演练任务,采集数据并记录日志。
86.4.2如果是dns演练,生成针对指定pod或pod内容器dns演练的任务,并执行演练任务,采集数据并记录日志。
87.4.3如果是pod网络演练,生成针对指定pod或pod内容器网络错误的演练任务,并执行演练任务,采集数据并记录日志。
88.4.4如果是pod压力演练,生成针对指定pod或pod内容器cpu高负载的演练任务,并执行演练任务,采集数据并记录日志。
89.4.5如果是pod i/o演练,生成针对指定pod或pod内容器i/0演练的任务,并执行演练任务,采集数据并记录日志。
90.4.6如果是pod时间演练,生成针对指定pod或pod内容器时间演练的任务,并执行演练任务,采集数据并记录日志。
91.4.7如果是http演练,生成针对指定pod或pod内容器http演练的任务,并执行演练任务,采集数据并记录日志。
92.5、如果是物理机方式,即kubernetes集群中节点对应的物理机或者虚机,演练控制器根据子任务类型做处理。
93.5.1如果是进程错误类型演练,生成进程错误演练的任务,并执行进程错误演练,采集数据并记录日志。
94.5.2如果是网络类型演练,生成网络错误演练的任务,支持网络分区、网络包错误、丢失、重复、高延迟、dns等类型的演练,并执行网络自动化演练,采集数据并记录日志。
95.5.3如果是cpu压力演练,生成cpu压力演练的任务,并执行cpu压力自动化演练,采集数据并记录日志。
96.5.4如果是内存压力演练,生成内存压力演练的任务,并执行内存压力演练,采集
数据并记录日志。
97.5.5如果是磁盘演练,生成磁盘演练的任务,支持磁盘读负载大小、写负载大小、磁盘错误等类型的演练,并执行磁盘自动化演练,采集数据并记录日志。
98.6、判断配置是否结束,如果没有结束,跳转到第2步。
99.实施例二
100.一种实现自动化演练云原生平台高可用场景的系统,所述该系统由读取模块、任务生成模块、收集模块、演练模块、采集模块以及记录模块构成;
101.读取模块,用于读取参数配置;读取参数配置前,通过自动化演练模型定义自动化演练云原生平台高可用场景的参数;
102.任务生成模块,用于生成一个自动化演练任务;生成一个自动化演练任务时,使用自定义模型定义数据,根据模型定义的数据分别生成kubernetes任务;
103.收集模块,用于根据配置采集平台和应用状态;根据配置采集平台和应用状态时,调用kubernetes命令生成job执行自动化演练并采集数据,基于自动化演练模型,把自动化演练模型中的配置参数翻译成自动化演练的任务文件;
104.演练模块,用于启动演练任务;启动演练任务时,根据需求配置自动化演练参数;演练控制器启动演练流程,根据模型参数判断演练方式;演练控制器根据主演练方式,跳转到对应分支做下一步处理;如果是kubernetes方式,演练控制器根据子任务类型做处理,否则跳过此步骤;
105.采集模块,用于演练结束后采集平台应用状态;
106.记录模块,用于测试结构写入文件。
107.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1