系统容错测试方法、电子设备、存储介质与流程

文档序号:31874490发布日期:2022-10-21 20:58阅读:34来源:国知局
1.本技术涉及计算机
技术领域
:,尤其是涉及一种系统容错测试方法、电子设备、存储介质。
背景技术
::2.随着云计算技术的发展,云平台能够兼容的基础设施越来越多,供用户选择的云计算技术越来越多,为了促进技术的开放性,防止技术绑定,用户越来越倾向于使用混合云技术,希望云平台技术能够兼容不同的基础设施技术。3.kubernetes(k8s)是为容器服务而生的一种可移植容器的编排管理技术。kubernetes在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能。目前,基于kubernetes的容器平台由于其便携性、可用性,可扩展性被广泛的应用在生产环境中,虽然kubernetes本身具备完整高可用能力,但是如若发生了不可抗拒的数据灾难情况,集群本身的高可用就失去了作用。那么,如何准确测定云平台系统的容错指标,成为业内亟待解决的一大难题。技术实现要素:4.本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种系统容错测试方法、电子设备、存储介质,能够准确测定云平台系统的容错指标。5.根据本技术的第一方面实施例的系统容错测试方法,包括:6.获取功能特性类型信息和灾难模拟程序;7.基于所述功能特性类型信息将待测试的云平台系统进行层级划分,得到与所述云平台系统对应的云系统层级模型;8.基于所述灾难模拟程序,在所述云系统层级模型中模拟数据灾难环境;9.对处于所述数据灾难环境中的所述云系统层级模型进行容错测试,得到与所述云平台系统对应的容错指标。10.根据本技术的一些实施例,所述基于所述功能特性类型信息将待测试的云平台系统进行层级划分,得到与所述云平台系统对应的云系统层级模型,包括:11.基于所述功能特性类型信息对所述云平台系统进行层级划分,得到算力资源层、系统控制层、网络层以及应用层,其中,所述算力资源层用于为所述云平台系统提供算力资源、所述系统控制层包括所述云平台系统的控制平面,所述网络层用于管理所述云平台系统的网络数据通信,所述应用层用于使所述云平台系统为应用程序提供运行环境;12.将所述算力资源层、所述系统控制层、所述网络层以及所述应用层进行整合,得到所述云系统层级模型。13.根据本技术的一些实施例,所述基于所述灾难模拟程序,在所述云系统层级模型中模拟数据灾难环境,包括:14.基于所述灾难模拟程序,配置防火墙拦截所述算力资源层与所述系统控制层之间的资源交互数据;15.根据被拦截的所述资源交互数据,在所述云系统层级模型中模拟所述算力资源层处于所述数据灾难环境。16.根据本技术的一些实施例,所述对处于所述数据灾难环境中的所述云系统层级模型进行容错测试,得到与所述云平台系统对应的容错指标,包括:17.当所述云平台系统处于第一故障运行状态,配置所述算力资源层的资源调整指标,以使所述云平台系统脱离所述第一故障运行状态;18.当所述云平台系统从所述第一故障运行状态切换至正常运行状态,将配置后的所述资源调整指标纳入所述容错指标。19.根据本技术的一些实施例,所述基于所述灾难模拟程序,在所述云系统层级模型中模拟数据灾难环境,包括:20.基于所述灾难模拟程序,对应用程序编程接口服务器执行通信阻滞操作,所述通信阻滞操作用于全部或者部分中断所述应用程序编程接口服务器的通信数据;21.根据所述通信阻滞操作,在所述云系统层级模型中模拟所述系统控制层处于所述数据灾难环境。22.根据本技术的一些实施例,所述对处于所述数据灾难环境中的所述云系统层级模型进行容错测试,得到与所述云平台系统对应的容错指标,包括:23.当所述云平台系统处于第二故障运行状态,配置所述系统控制层的控制调整指标,以使所述云平台系统脱离所述第二故障运行状态;24.当所述云平台系统从所述第二故障运行状态切换至正常运行状态,将配置后的所述控制调整指标纳入所述容错指标。25.根据本技术的一些实施例,所述基于所述灾难模拟程序,在所述云系统层级模型中模拟数据灾难环境,包括:26.基于所述灾难模拟程序,通过弹性负载均衡控制对所述网络层的流量分发;27.根据所述弹性负载均衡对所述网络层的所述流量分发,在所述云系统层级模型中模拟所述网络层处于所述数据灾难环境。28.根据本技术的一些实施例,所述基于所述灾难模拟程序,在所述云系统层级模型中模拟数据灾难环境,包括:29.基于所述灾难模拟程序,通过混沌测试工具控制所述应用层中所述应用程序的停用或启用;30.根据所述应用程序的停用或启用,在所述云系统层级模型中模拟所述应用层处于所述数据灾难环境。31.第二方面,本技术实施例提供了一种电子设备,包括:存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本技术第一方面实施例中任意一项所述的系统容错测试方法。32.第三方面,本技术实施例提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如本技术第一方面实施例中任意一项所述的系统容错测试方法。33.根据本技术实施例的系统容错测试方法、电子设备、存储介质,至少具有如下有益效果:34.本技术实施例的系统容错测试方法中,先获取功能特性类型信息和灾难模拟程序,再基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型,进一步,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境,最终对处于数据灾难环境中的云系统层级模型进行容错测试,得到与云平台系统对应的容错指标。通过本技术实施例的系统容错测试方法,基于云系统层级模型来对云平台系统进行数据灾难模拟,从而进行容错测试得到云平台系统的容错指标,能够对云平台系统的容错指标进行更加准确的测定。35.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。附图说明36.本技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:37.图1为本技术实施例提供的系统容错测试方法流程示意图;38.图2为本技术实施例提供的系统容错测试方法另一流程示意图;39.图3为本技术实施例提供的系统容错测试方法另一流程示意图;40.图4为本技术实施例提供的系统容错测试方法另一流程示意图;41.图5为本技术实施例提供的系统容错测试方法另一流程示意图;42.图6为本技术实施例提供的系统容错测试方法另一流程示意图;43.图7为本技术实施例提供的系统容错测试方法另一流程示意图;44.图8为本技术实施例提供的系统容错测试方法另一流程示意图;45.图9为执行本技术实施例提供的系统容错测试方法的电子设备示意图;具体实施方式46.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。47.在本技术的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。48.在本技术的描述中,需要理解的是,涉及到方位描述,例如上、下、左、右、前、后等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。49.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。50.本技术的描述中,需要说明的是,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属
技术领域
:技术人员可以结合技术方案的具体内容合理确定上述词语在本技术中的具体含义。另外,下文中对于具体步骤的标识并不代表对于步骤顺序与执行逻辑的限定,各个步骤之间的执行顺序与执行逻辑应参照实施例所表述的内容进行理解与推定。51.随着云计算技术的发展,云平台能够兼容的基础设施越来越多,供用户选择的云计算技术越来越多,为了促进技术的开放性,防止技术绑定,用户越来越倾向于使用混合云技术,希望云平台技术能够兼容不同的基础设施技术。52.需要说明的是,kubernetes云平台是一个容器集群管理系统,提供以容器为中心的基础架构,用于让部署容器化的应用简单并且高效。kubernetes云平台支持自动化部署、大规模可伸缩、应用容器化管理,在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在kubernetes云平台中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。kubernetes云平台具有可移植、可扩展、自动化等优点。其中,可移植指的是kubernetes云平台支持公有云、私有云、混合云、多重云;可扩展指的是kubernetes云平台支持模块化、插件化、可挂载、可组合;自动化指的是kubernetes云平台支持自动部署、自动重启、自动复制、自动伸缩/扩展。kubernetes云平台为应用供了部署、规划、更新、维护等机制。应理解,传统的应用部署方式是通过插件或脚本来安装应用,其缺点在于应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。而kubernetes云平台则是通过部署容器方式实现对应用的部署编排,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。53.相关技术中,用户使用kubernetes的主要有两种模式:第一种是托管模式,即用户向云服务商购买现成的kubernetes服务,将整个kubernetes平台托管给云服务商维护,用户自身仅仅作为应用算力使用者;第二种是自托管模式,是用户自行在裸金属服务器,或者利用云服务商提供的计算资源维护自己的kubernetes平台。两种模式各有优劣,适用于不同的场景,其中托管模式更适合适用于公有云的应用服务,有着方便敏捷、有现成的配套服务的优点,劣势则在于受限于云服务商提供的服务;而自托管模式则更适合于企业构建自身的私有云原生服务,优势在于能构建适用于自身应用特点的云服务、具有私有云的优点,劣势则在于平台的配套服务需要劣势自行提供和维护,例如生产运行环境所需要的高可用性以及灾难恢复功能就需要依靠用户自身的设计维护。需要说明的是,本技术实施例示出的一种系统容错测试方法、电子设备、存储介质,既适用于托管模式中云服务商一端的kubernetes系统容错测试,也适用于自托管模式中用户自身的kubernetes系统容错测试。应理解,本技术各类实施例对应的应用场景可以包括,但不限于上述举出的具体实施例。54.kubernetes(k8s)是为容器服务而生的一个可移植容器的编排管理工具。kubernetes在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能,提高了大规模容器集群管理的便捷性和高可用性。目前,基于kubernetes的容器平台由于其便携性、可用性,可扩展性被广泛的应用在生产环境中,虽然kubernetes本身具备完整高可用能力,但是如若发生了不可抗拒的数据灾难情况,集群本身的高可用就失去了作用。那么,如何准确测定云平台系统的容错指标,成为业内亟待解决的一大难题。55.本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种系统容错测试方法、电子设备、存储介质,能够准确测定云平台系统的容错指标。56.下面以附图为依据作出进一步说明。57.参照图1,根据本技术的第一方面实施例的系统容错测试方法,包括:58.步骤s101,获取功能特性类型信息和灾难模拟程序;59.根据本技术提供的一些实施例,功能特性类型信息反映云平台系统中不同模块组件所实现的功能类型。例如,云平台系统中a1模块与a2组件共同负责为云平台系统提供算力资源的支持,那么a1模块与a2组件共同作用以实现提供算力资源的作用,因此功能特性类型可以反映出a1模块与a2组件所实现的功能类型为资源供应类型;又例如,云平台系统中b1模块与b2组件共同负责为云平台系统的控制平面提供支持,那么b1模块与b2组件共同作用以实现对云平台系统进行控制或者管理,因此功能特性类型可以反映出b1模块与b2组件所实现的功能类型为系统控制类型;再例如,云平台系统中c1模块与c2组件共同负责为调配云平台系统的网络数据交互,那么c1模块与c2组件共同作用以实现对云平台系统的网络数据进行调配,因此功能特性类型可以反映出c1模块与c2组件所实现的功能类型为网络交互类型;还例如,云平台系统中d1模块与d2组件共同负责为应用程序提供运行环境,那么d1模块与d2组件共同作用以实现云平台系统为应用程序提供运行环境,因此功能特性类型可以反映出d1模块与d2组件所实现的功能类型为应用环境类型。因此,功能特性类型信息可以反映出云平台系统中,各类模块组件进行分工协同所能够实现的各种功能类型。应理解,云平台系统中不同模块组件所实现的功能类型可以包括,但不限于上述举出的具体实施例。60.需要明确,灾难模拟程序指的是预先设置的、用于模拟数据灾难环境的程序。应理解,为了测试云平台系统面对数据灾难时的容错性、测定云平台系统面对数据灾难时的容错指标,需要以灾难模拟程序来模拟数据灾难,再进一步基于模拟数据灾难环境对云平台系统进行容错测试。61.步骤s102,基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型;62.根据本技术提供的一些实施例,由于云平台系统具有设计分层、模块化、接口化抽象的特征,因此若基于功能特性类型信息,对待测试的云平台系统进行层级划分,那么将减轻云平台系统的复杂度,便于有对云平台系统进行容错分析,从而能够更加精准地对云平台系统进行容错测试并得到与云平台系统对应的容错指标。因此,为了能够对云平台系统的容错指标进行更加准确的测定,本技术一些实施例中,在模拟数据灾难环境并进行容错测试之前,需要先基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型。63.需要强调的是,功能特性类型信息可以反映出云平台系统中,各类模块组件进行分工协同所能够实现的各种功能类型。因此,本技术提供的一些实施例,能够基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型。需要说明的是,云系统层级模型的各个层级之间能够基于功能类型的不同而作出的区分。例如,若功能特性类型信息能够反映出云平台系统中不同模块组件所实现的功能类型包括:资源供应类型、系统控制类型、网络交互类型、应用环境类型,那么就可以基于资源供应类型、系统控制类型、网络交互类型、应用环境类型来对云平台系统进行层级划分,可以将云平台系统对应划分为算力资源层、系统控制层、网络层以及应用层,而算力资源层、系统控制层、网络层以及应用层就共同构成了与云平台系统对应的云系统层级模型。根据本技术一些较为具体的实施例,云平台系统可以包括,但不限于kubernetes容器集群管理系统。64.步骤s103,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境;65.需要强调的是,灾难模拟程序指的是预先设置的、用于模拟数据灾难环境的程序。应理解,为了测试云平台系统面对数据灾难时的容错性、测定云平台系统面对数据灾难时的容错指标,需要以灾难模拟程序来模拟数据灾难,再进一步基于模拟数据灾难环境对云平台系统进行容错测试。需要说明,由于云系统层级模型中包括了基于功能特性类型信息划分得到的多个层级,因此云系统层级模型各个层级对应实现的功能不一样,本技术一些实施例中,分别针对云系统层级模型多个层级对应实现的多种功能,在灾难模拟程序中预先设置了多种类型的灾难模拟代码。其中,多种类型的灾难模拟代码分别对应用于在云系统层级模型的各个层级中营造数据灾难环境,由于各个层级对应实现的功能各不相同,因此多种类型的灾难模拟代码对各个层级营造数据灾难环境的方式也会存在差异。66.步骤s104,对处于数据灾难环境中的云系统层级模型进行容错测试,得到与云平台系统对应的容错指标。67.根据本技术提供的一些实施例,在云系统层级模型中模拟数据灾难环境之后,即可对处于数据灾难环境中的云系统层级模型进行容错测试,得到与云平台系统对应的容错指标。需要说明的是,对处于数据灾难环境中的云系统层级模型进行容错测试,往往需要对处于数据灾难环境中的云系统层级模型进行多方面的测试,可以包括,但不限于:测试云系统层级模型在多大强度的数据灾难环境中会陷入瘫痪、测试云系统层级模型陷入瘫痪之后需要哪些补偿条件能够使得系统回复运转、云系统层级模型中各个数据节点对于数据灾难环境的敏感程度等类型的多种测试。应理解,对处于数据灾难环境中的云系统层级模型进行容错测试之后,即可得到与云平台系统对应的容错指标。68.需要强调的是,由于云系统层级模型中包括了基于功能特性类型信息划分得到的多个层级,因此云系统层级模型各个层级对应实现的功能不一样。本技术一些实施例中,对处于数据灾难环境中的云系统层级模型进行容错测试,可以是对数据灾难环境中的云系统层级模型各个层级分别进行容错测试。应理解,由于云系统层级模型中的各个层级是基于功能特性类型信息对待测试的云平台系统进行层级划分而得到,因此对数据灾难环境中的云系统层级模型各个层级分别进行容错测试,能够在减轻云平台系统的复杂度的情况下,对云平台系统进行容错分析,从而能够更加精准地对云平台系统进行容错测试并得到与云平台系统对应的容错指标。69.本技术实施例的系统容错测试方法中,先获取功能特性类型信息和灾难模拟程序,再基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型,进一步,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境,最终对处于数据灾难环境中的云系统层级模型进行容错测试,得到与云平台系统对应的容错指标。通过本技术实施例的系统容错测试方法,基于云系统层级模型来对云平台系统进行数据灾难模拟,从而进行容错测试得到云平台系统的容错指标,能够对云平台系统的容错指标进行更加准确的测定。70.参照图2,根据本技术的一些实施例,基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型,包括:71.步骤s201,基于功能特性类型信息对云平台系统进行层级划分,得到算力资源层、系统控制层、网络层以及应用层,其中,算力资源层用于为云平台系统提供算力资源、系统控制层包括云平台系统的控制平面,网络层用于管理云平台系统的网络数据通信,应用层用于使云平台系统为应用程序提供运行环境;72.步骤s202,将算力资源层、系统控制层、网络层以及应用层进行整合,得到云系统层级模型。73.根据本技术提供的一些实施例,由于云平台系统具有设计分层、模块化、接口化抽象的特征,因此若基于功能特性类型信息,对待测试的云平台系统进行层级划分,那么将减轻云平台系统的复杂度,便于有对云平台系统进行容错分析,从而能够更加精准地对云平台系统进行容错测试并得到与云平台系统对应的容错指标。因此,为了能够对云平台系统的容错指标进行更加准确的测定,本技术一些实施例中,在模拟数据灾难环境并进行容错测试之前,需要先基于功能特性类型信息将待测试的云平台系统进行层级划分,得到与云平台系统对应的云系统层级模型。74.根据本技术提供的一些较为具体的实施例,云平台系统中a1模块与a2组件共同负责为云平台系统提供算力资源的支持,那么a1模块与a2组件共同作用以实现提供算力资源的作用,因此功能特性类型可以反映出a1模块与a2组件所实现的功能类型为资源供应类型,那么进一步,基于资源供应类型对云平台系统进行层级划分,可以从云平台系统对应划分出算力资源层。又例如,云平台系统中b1模块与b2组件共同负责为云平台系统的控制平面提供支持,那么b1模块与b2组件共同作用以实现对云平台系统进行控制或者管理,因此功能特性类型可以反映出b1模块与b2组件所实现的功能类型为系统控制类型,那么进一步,基于系统控制类型对云平台系统进行层级划分,可以从云平台系统对应划分出系统控制层。再例如,云平台系统中c1模块与c2组件共同负责为调配云平台系统的网络数据交互,那么c1模块与c2组件共同作用以实现对云平台系统的网络数据进行调配,因此功能特性类型可以反映出c1模块与c2组件所实现的功能类型为网络交互类型,那么进一步,基于网络交互类型对云平台系统进行层级划分,可以从云平台系统对应划分出网络层。还例如,云平台系统中d1模块与d2组件共同负责为应用程序提供运行环境,那么d1模块与d2组件共同作用以实现云平台系统为应用程序提供运行环境,因此功能特性类型可以反映出d1模块与d2组件所实现的功能类型为应用环境类型,那么进一步,基于应用环境类型对云平台系统进行层级划分,可以从云平台系统对应划分出应用层。需要说明的是,算力资源层用于为云平台系统提供算力资源、系统控制层包括云平台系统的控制平面,网络层用于管理云平台系统的网络数据通信,应用层用于使云平台系统为应用程序提供运行环境。因此,功能特性类型信息可以反映出云平台系统中,各类模块组件进行分工协同所能够实现的各种功能类型。应理解,在基于功能特性类型信息对云平台系统进行层级划分,得到算力资源层、系统控制层、网络层以及应用层之后,即可将算力资源层、系统控制层、网络层以及应用层进行整合,从而得到云系统层级模型。75.参照图3,根据本技术的一些实施例,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境,包括:76.步骤s301,基于灾难模拟程序,配置防火墙拦截算力资源层与系统控制层之间的资源交互数据;77.需要强调的是,灾难模拟程序指的是预先设置的、用于模拟数据灾难环境的程序。应理解,为了测试云平台系统面对数据灾难时的容错性、测定云平台系统面对数据灾难时的容错指标,需要以灾难模拟程序来模拟数据灾难,再进一步基于模拟数据灾难环境对云平台系统进行容错测试。需要说明,由于云系统层级模型中包括了基于功能特性类型信息划分得到的多个层级,因此云系统层级模型各个层级对应实现的功能不一样,本技术一些实施例中,分别针对云系统层级模型多个层级对应实现的多种功能,在灾难模拟程序中预先设置了多种类型的灾难模拟代码。其中,多种类型的灾难模拟代码分别对应用于在云系统层级模型的各个层级中营造数据灾难环境,由于各个层级对应实现的功能各不相同,因此多种类型的灾难模拟代码对各个层级营造数据灾难环境的方式也会存在差异。而步骤s301至步骤s302示出的实施例中,提供了一种对算力资源层模拟数据灾难模拟代码的方式。78.步骤s302,根据被拦截的资源交互数据,在云系统层级模型中模拟算力资源层处于数据灾难环境。79.根据本技术一些较为具体的实施例,云平台系统中a1模块与a2组件共同负责为云平台系统提供算力资源的支持,那么a1模块与a2组件共同作用以实现提供算力资源的作用,因此功能特性类型可以反映出a1模块与a2组件所实现的功能类型为资源供应类型,那么进一步,基于资源供应类型对云平台系统进行层级划分,可以从云平台系统对应划分出算力资源层。需要说明的是,算力资源层需要依靠与系统控制层之间的资源交互数据,才能将算力资源正常提供给云平台系统,其中资源交互数据指的是算力资源层与系统控制层之间用于协同、调配算力资源的交互数据。因此当算力资源层与系统控制层之间的资源交互数据被拦截,那么即可模拟算力资源层中的部分或全部计算节点失效,从而在云系统层级模型中模拟出算力资源层处于数据灾难环境。应理解,拦截算力资源层与系统控制层之间的资源交互数据可以通过多种方式实现,本技术一些实施例中通过配置防火墙的方式,来拦截资源交互数据。在本技术一些较为具体的实施例中,云平台系统可以包括,但不限于kubernetes容器集群管理系统。为了在kubernetes容器集群管理系统对应的云系统层级模型中模拟算力资源层处于数据灾难环境,可以通过iptables命令在input链与output链上拦截kubelet以及kube-proxy的端口流量,使得kubelet服务以及kube-proxy服务无法正常运转,即可模拟出算力资源层中的部分或全部计算节点失效,进而来对算力资源层进行数据灾难环境的模拟。需要说明的是,iptables命令是一种防火墙配置命令。其中,iptables可以直接配置,也可以通过前端或者图形界面进行配置。iptables命令是采用数据包过滤机制工作的,所以它会对请求的数据包的包头进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机而input链与output链是iptables命令中的规则链名,也被称为钩子函数(hookfunctions),其中input链用于处理输入数据包,而output链用于处理输出数据包。另外,kubelet是kubernetes工作节点上的一个代理组件,运行在每个节点上,kubelet是工作节点上的主要服务,定期从kube-apiserver组件接收新的或修改后的pod规范,并确保pod及其容器在期望规范下运行,同时该组件作为工作节点的监控组件,向kube-apiserver汇报主机的运行状况。kube-proxy是kubernetes工作节点上的一个网络代理组件,运行在每个节点上。kube-proxy用于维护节点上的网络规则,使得发往service的流量(通过clusterip和端口)负载均衡到正确的后端pod。应理解,在云系统层级模型中模拟算力资源层处于数据灾难环境的方式多种多样,可以包括,但不限于上述举出的具体实施例。80.参照图4,根据本技术的一些实施例,对处于数据灾难环境中的云系统层级模型进行容错测试,获取与云平台系统对应的容错指标,包括:81.步骤s401,当云平台系统处于第一故障运行状态,配置算力资源层的资源调整指标,以使云平台系统脱离第一故障运行状态;82.根据本技术提供的一些实施例,在云系统层级模型中模拟数据灾难环境之后,即可对处于数据灾难环境中的云系统层级模型进行容错测试,得到与云平台系统对应的容错指标。需要说明的是,对处于数据灾难环境中的云系统层级模型进行容错测试,往往需要对处于数据灾难环境中的云系统层级模型进行多方面的测试,可以包括,但不限于:测试云系统层级模型在多大强度的数据灾难环境中会陷入瘫痪、测试云系统层级模型陷入瘫痪之后需要哪些补偿条件能够使得系统回复运转、云系统层级模型中各个数据节点对于数据灾难环境的敏感程度等类型的多种测试。应理解,对处于数据灾难环境中的云系统层级模型进行容错测试之后,即可得到与云平台系统对应的容错指标。根据本技术提供的一些较为具体的实施例,第一故障运行状态指的是云系统层级模型的算力资源层面对数据灾难环境之后,云平台系统所陷入的故障运行状态。资源调整指标则指的是为了使云平台系统从第一故障运行状态切换至正常运行状态,而配置的调整指标。因此,当云平台系统处于第一故障运行状态,需要配置算力资源层的资源调整指标,以使云平台系统脱离第一故障运行状态。例如,当算力资源层中模拟失效的计算节点过多,云平台系统随即陷入第一故障运行状态,那么在此情况下配置算力资源层的资源调整指标(例如在算力资源层内新补充计算节点),即可使云平台系统从第一故障运行状态脱离,切换至正常运行状态。83.步骤s402,当云平台系统从第一故障运行状态切换至正常运行状态,将配置后的资源调整指标纳入容错指标。84.根据本技术提供的一些实施例,对处于数据灾难环境中的云系统层级模型进行容错测试的过程中,若云平台系统从第一故障运行状态切换至正常运行状态,则说明对应配置的资源调整指标能够准确反映云平台系统的容错性,那么在此情况下,即可将配置后的资源调整指标纳入容错指标。85.参照图5,根据本技术的一些实施例,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境,包括:86.步骤s501,基于灾难模拟程序,对应用程序编程接口服务器执行通信阻滞操作,通信阻滞操作用于全部或者部分中断应用程序编程接口服务器的通信数据;87.步骤s502,根据通信阻滞操作,在云系统层级模型中模拟系统控制层处于数据灾难环境。88.需要强调的是,灾难模拟程序指的是预先设置的、用于模拟数据灾难环境的程序。应理解,为了测试云平台系统面对数据灾难时的容错性、测定云平台系统面对数据灾难时的容错指标,需要以灾难模拟程序来模拟数据灾难,再进一步基于模拟数据灾难环境对云平台系统进行容错测试。需要说明,由于云系统层级模型中包括了基于功能特性类型信息划分得到的多个层级,因此云系统层级模型各个层级对应实现的功能不一样,本技术一些实施例中,分别针对云系统层级模型多个层级对应实现的多种功能,在灾难模拟程序中预先设置了多种类型的灾难模拟代码。其中,多种类型的灾难模拟代码分别对应用于在云系统层级模型的各个层级中营造数据灾难环境,由于各个层级对应实现的功能各不相同,因此多种类型的灾难模拟代码对各个层级营造数据灾难环境的方式也会存在差异。而步骤s501至步骤s502示出的实施例中,提供了一种对系统控制层模拟数据灾难模拟代码的方式。89.根据本技术一些较为具体的实施例,云平台系统中b1模块与b2组件共同负责为云平台系统的控制平面提供支持,那么b1模块与b2组件共同作用以实现对云平台系统进行控制或者管理,因此功能特性类型可以反映出b1模块与b2组件所实现的功能类型为系统控制类型,那么进一步,基于系统控制类型对云平台系统进行层级划分,可以从云平台系统对应划分出系统控制层,其中系统控制层包括云平台系统的控制平面。需要说明的是,应用程序编程接口服务器(apiserver)为云平台系统提供数据总线和数据中心,需要明确,系统控制层经由应用程序编程接口服务器将控制指令输送至云平台系统中的各模块组件,以使云平台系统能够正常运转。而通信阻滞操作,则指的是用于对应用程序编程接口服务器与云平台系统各模块组件之间的正常通信,进行阻碍或者使其停滞的操作,应理解,通信阻滞操作用于全部或者部分中断应用程序编程接口服务器的通信数据。在本技术一些较为具体的实施例中,云平台系统可以包括,但不限于kubernetes容器集群管理系统。由于kubernetes容器集群管理系统中kube-apiserver、kube-controller、etcd均参与构成kubernetes容器集群管理系统的数据总线或者数据中心,因此本技术一些实施例中,为了在kubernetes容器集群管理系统对应的云系统层级模型中模拟系统控制层处于数据灾难环境,可以通过对kube-apiserver、kube-controller、etcd执行通信阻滞操作,来使得kubernetes容器集群管理系统的控制平面无法正常运转,即可模拟出系统控制层中的部分或全部控制节点失效,进而来对系统控制层进行数据灾难环境的模拟。应理解,iptables命令是一种防火墙配置命令,因此iptables命令也能够以拦截系统控制层控制指令的方式,来执行通信阻滞操作。应理解,在云系统层级模型中模拟系统控制层处于数据灾难环境的方式多种多样,可以包括,但不限于上述举出的具体实施例。90.参照图6,根据本技术的一些实施例,对处于数据灾难环境中的云系统层级模型进行容错测试,获取与云平台系统对应的容错指标,包括:91.步骤s601,当云平台系统处于第二故障运行状态,配置系统控制层的控制调整指标,以使云平台系统脱离第二故障运行状态;92.根据本技术提供的一些实施例,在云系统层级模型中模拟数据灾难环境之后,即可对处于数据灾难环境中的云系统层级模型进行容错测试,得到与云平台系统对应的容错指标。需要说明的是,对处于数据灾难环境中的云系统层级模型进行容错测试,往往需要对处于数据灾难环境中的云系统层级模型进行多方面的测试,可以包括,但不限于:测试云系统层级模型在多大强度的数据灾难环境中会陷入瘫痪、测试云系统层级模型陷入瘫痪之后需要哪些补偿条件能够使得系统回复运转、云系统层级模型中各个数据节点对于数据灾难环境的敏感程度等类型的多种测试。应理解,对处于数据灾难环境中的云系统层级模型进行容错测试之后,即可得到与云平台系统对应的容错指标。根据本技术提供的一些较为具体的实施例,第二故障运行状态指的是云系统层级模型的系统控制层面对数据灾难环境之后,云平台系统所陷入的故障运行状态。控制调整指标则指的是为了使云平台系统从第二故障运行状态切换至正常运行状态,而配置的调整指标。因此,当云平台系统处于第二故障运行状态,需要配置系统控制层的控制调整指标,以使云平台系统脱离第二故障运行状态。93.步骤s602,当云平台系统从第二故障运行状态切换至正常运行状态,将配置后的控制调整指标纳入容错指标。94.根据本技术提供的一些实施例,对处于数据灾难环境中的云系统层级模型进行容错测试的过程中,若云平台系统从第二故障运行状态切换至正常运行状态,则说明对应配置的控制调整指标能够准确反映云平台系统的容错性,那么在此情况下,即可将配置后的控制调整指标纳入容错指标。95.参照图7,根据本技术的一些实施例,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境,包括:96.步骤s701,基于灾难模拟程序,通过弹性负载均衡控制对网络层的流量分发;97.步骤s702,根据弹性负载均衡对网络层的流量分发,在云系统层级模型中模拟网络层处于数据灾难环境。98.需要强调的是,灾难模拟程序指的是预先设置的、用于模拟数据灾难环境的程序。应理解,为了测试云平台系统面对数据灾难时的容错性、测定云平台系统面对数据灾难时的容错指标,需要以灾难模拟程序来模拟数据灾难,再进一步基于模拟数据灾难环境对云平台系统进行容错测试。需要说明,由于云系统层级模型中包括了基于功能特性类型信息划分得到的多个层级,因此云系统层级模型各个层级对应实现的功能不一样,本技术一些实施例中,分别针对云系统层级模型多个层级对应实现的多种功能,在灾难模拟程序中预先设置了多种类型的灾难模拟代码。其中,多种类型的灾难模拟代码分别对应用于在云系统层级模型的各个层级中营造数据灾难环境,由于各个层级对应实现的功能各不相同,因此多种类型的灾难模拟代码对各个层级营造数据灾难环境的方式也会存在差异。而步骤s701至步骤s702示出的实施例中,提供了一种对网络层模拟数据灾难模拟代码的方式。99.根据本技术一些较为具体的实施例,云平台系统中c1模块与c2组件共同负责为调配云平台系统的网络数据交互,那么c1模块与c2组件共同作用以实现对云平台系统的网络数据进行调配,因此功能特性类型可以反映出c1模块与c2组件所实现的功能类型为网络交互类型,那么进一步,基于网络交互类型对云平台系统进行层级划分,可以从云平台系统对应划分出网络层,其中网络层用于管理云平台系统的网络数据通信。需要说明,弹性负载均衡(elasticloadbalance,elb),指的是将访问流量根据分配策略分发到后端多台服务器的流量分发控制服务,其中,弹性负载均衡可以通过流量分发扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。在本技术一些较为具体的实施例中,云平台系统可以包括,但不限于kubernetes容器集群管理系统。为了在kubernetes容器集群管理系统对应的云系统层级模型中模拟网络层处于数据灾难环境,可以通过弹性负载均衡控制云平台系统的流量分发,使得云平台系统的网络通信无法正常运转,即可模拟出网络层部分或全部失效,进而来对网络层进行数据灾难环境的模拟。100.参照图8,根据本技术的一些实施例,基于灾难模拟程序,在云系统层级模型中模拟数据灾难环境,包括:101.步骤s801,基于灾难模拟程序,通过混沌测试工具控制应用层中应用程序的停用或启用;102.步骤s802,根据应用程序的停用或启用,在云系统层级模型中模拟应用层处于数据灾难环境。103.需要强调的是,灾难模拟程序指的是预先设置的、用于模拟数据灾难环境的程序。应理解,为了测试云平台系统面对数据灾难时的容错性、测定云平台系统面对数据灾难时的容错指标,需要以灾难模拟程序来模拟数据灾难,再进一步基于模拟数据灾难环境对云平台系统进行容错测试。需要说明,由于云系统层级模型中包括了基于功能特性类型信息划分得到的多个层级,因此云系统层级模型各个层级对应实现的功能不一样,本技术一些实施例中,分别针对云系统层级模型多个层级对应实现的多种功能,在灾难模拟程序中预先设置了多种类型的灾难模拟代码。其中,多种类型的灾难模拟代码分别对应用于在云系统层级模型的各个层级中营造数据灾难环境,由于各个层级对应实现的功能各不相同,因此多种类型的灾难模拟代码对各个层级营造数据灾难环境的方式也会存在差异。而步骤s801至步骤s802示出的实施例中,提供了一种对应用层模拟数据灾难模拟代码的方式。104.根据本技术一些较为具体的实施例,云平台系统中d1模块与d2组件共同负责为应用程序提供运行环境,那么d1模块与d2组件共同作用以实现云平台系统为应用程序提供运行环境,因此功能特性类型可以反映出d1模块与d2组件所实现的功能类型为应用环境类型,那么进一步,基于应用环境类型对云平台系统进行层级划分,可以从云平台系统对应划分出应用层,其中应用层用于使云平台系统为应用程序提供运行环境。需要说明的是,混沌测试,指的是通过构造各类异常,验证系统在碰到这些异常时是否有做好对应的监控告警、预案处理,针对性地进行加固,防范,从而避免故障发生时所带来的严重后果,通过对各类异常提前做好监控告警和预案处理,增强系统的抗干扰性。而混沌测试工具则指的是用于进行混沌测试的工具。在本技术一些较为具体的实施例中,云平台系统可以包括,但不限于kubernetes容器集群管理系统。为了在kubernetes容器集群管理系统对应的云系统层级模型中模拟应用层处于数据灾难环境,可以通过kube-monkey、powerfulseal或者其他类型的kube-monkey来对应用层进行数据灾难环境的模拟。需要说明,kube-monkey是一种遵循混沌工程原理的工具,可以随机删除kubernetes容器集群管理系统中的pod,检查服务是否具有故障恢复能力,并有助于提高系统的健康性,kube-monkey由toml文件配置,可以在其中指定要失效的应用程序以及何时练习恢复策略。powerfulseal是一种类似于kube-monkey的工具,同样遵循混沌工程原理,其中powerfulseal可以删除pod并从群集中删除/添加虚拟机,与kube-monkey相比,powefulseal具有交互模式,允许中断特定的群集组件。应理解,在云系统层级模型中模拟应用层处于数据灾难环境的方式多种多样,可以包括,但不限于上述举出的具体实施例。105.图9示出了本技术实施例提供的电子设备900。电子设备900包括:处理器901、存储器902及存储在存储器902上并可在处理器901上运行的计算机程序,计算机程序运行时用于执行上述的系统容错测试方法。106.处理器901和存储器902可以通过总线或者其他方式连接。107.存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本技术实施例描述的系统容错测试方法。处理器901通过运行存储在存储器902中的非暂态软件程序以及指令,从而实现上述的系统容错测试方法。108.存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。存储数据区可存储执行上述的系统容错测试方法。此外,存储器902可以包括高速随机存取存储器902,还可以包括非暂态存储器902,例如至少一个储存设备存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器902可选包括相对于处理器901远程设置的存储器902,这些远程存储器902可以通过网络连接至该电子设备900。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。109.实现上述的系统容错测试方法所需的非暂态软件程序以及指令存储在存储器902中,当被一个或者多个处理器901执行时,执行上述的系统容错测试方法,例如,执行图1中的方法步骤s101至步骤s104、图2中的方法步骤s201至步骤s202、图3中的方法步骤s301至步骤s302、图4中的方法步骤s401至步骤s402、图5中的方法步骤s501至步骤s502、图6中的方法步骤s601至步骤s602、图7中的方法步骤s701至步骤s702、图8中的方法步骤s801至步骤s802。110.本技术实施例还提供了计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述的系统容错测试方法。111.在一实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,执行图1中的方法步骤s101至步骤s104、图2中的方法步骤s201至步骤s202、图3中的方法步骤s301至步骤s302、图4中的方法步骤s401至步骤s402、图5中的方法步骤s501至步骤s502、图6中的方法步骤s601至步骤s602、图7中的方法步骤s701至步骤s702、图8中的方法步骤s801至步骤s802。112.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。113.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、储存设备存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。还应了解,本技术实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。114.以上是对本技术的较佳实施进行了具体说明,但本技术并不局限于上述实施方式,熟悉本领域的技术人员在不违背本技术精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本技术权利要求所限定的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1