CN114996955A - 一种云原生混沌工程实验的靶场环境构建方法及装置 - Google Patents

一种云原生混沌工程实验的靶场环境构建方法及装置 Download PDF

Info

Publication number
CN114996955A
CN114996955A CN202210666363.3A CN202210666363A CN114996955A CN 114996955 A CN114996955 A CN 114996955A CN 202210666363 A CN202210666363 A CN 202210666363A CN 114996955 A CN114996955 A CN 114996955A
Authority
CN
China
Prior art keywords
environment
target
container
shooting range
flow
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
Application number
CN202210666363.3A
Other languages
English (en)
Inventor
朱柯
潘星文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tongchuang Yongyi Technology Development Co ltd
Original Assignee
Beijing Tongchuang Yongyi Technology Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tongchuang Yongyi Technology Development Co ltd filed Critical Beijing Tongchuang Yongyi Technology Development Co ltd
Priority to CN202210666363.3A priority Critical patent/CN114996955A/zh
Publication of CN114996955A publication Critical patent/CN114996955A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种云原生混沌工程实验的靶场环境构建方法及装置,包括:获取实际生产环境中的容器云Kubernetes集群的资源信息;将资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;获取实际生产环境中的实际调用流量;将实际调用流量转发至靶场环境,以实现靶场环境流量的构建;响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。本发明基于云原生的备份、恢复技术实现基础环境的复制、基于流量复制技术复制生产的流量到靶场环境,从而完全仿真生产环境,达到混沌工程测试的最佳效果。

Description

一种云原生混沌工程实验的靶场环境构建方法及装置
技术领域
本发明涉及云原生技术领域,特别是涉及一种云原生混沌工程实验的靶场环境构建方法及装置。
背景技术
混沌工程是在分布式***上进行实验的学科,目的是建立对***抵御生产环境中失控条件的能力以及信心。云原生是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。
在传统的软件测试中,主要是验证代码逻辑的正确性,但是这仅仅是不足够的。而当在云原生场景下进行混沌工程的实验时,通常感兴趣的是整个***作为一个整体的行为,代码只是整个***中比较重要的一部分,而除了代码,整个***还包含很多其他方面,特别是状态、输入以及第三方***导致的难以预见的***行为。
在生产环境中进行实验对混沌工程来说是至关重要的,要在生产环境中建立对***的信心,所以需要在生产环境中进行实验。否则,仅仅是在传统的测试环境中建立对***的信心,这会大大削弱这些实践的价值。即便不能在生产环境中进行实验,也要尽可能地在离生产环境最近的环境中进行。越接近生产环境,对实验外部有效性的威胁就越少,对实验结果的信心就越足。因为混沌工程测试本身存在风险,通常无法在生产环境实施,而是使用测试,准生产一类环境来进行混沌工程测试,但由于与真实的生产环境的配置差异,以及无法接入真实的流量导致无法完全模拟真实生产环境,从而不能完全发挥混沌工程测试的能力,达到全面的测试效果。
发明内容
针对于上述问题,本发明提供一种云原生混沌工程实验的靶场环境构建方法及装置,实现了对生产环境的仿真,提升了混沌工程实验的测试效果。
为了实现上述目的,本发明提供了如下技术方案:
一种云原生混沌工程实验的靶场环境构建方法,包括:
获取实际生产环境中的容器云Kubernetes集群的资源信息;
将所述资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;
获取所述实际生产环境中的实际调用流量;
将所述实际调用流量转发至靶场环境,以实现靶场环境流量的构建;
响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。
可选地,所述获取实际生产环境中的容器云Kubernetes集群的资源信息,包括:
确定获取实际生产环境中的容器云Kubernetes集群的资源范围;
基于目标接口,获取所述资源范围内的实际生产环境中的容器云Kubernetes集群的资源信息,所述目标接口为基于容器云Kubernetes的应用程序接口。
可选地,所述将所述资源信息复制到靶场环境的Kubernetes集群,包括:
获取所述资源信息对应的编排文件,并将所述编排文件存储目标位置;
响应于将所述目标位置的编排文件复制到所述靶场环境的Kubernetes集群,控制Kubernetes集群创建与所述编排文件对应的目标对象;
响应于在靶场环境的工作节点上启动持久化容器节点,通过所述持久化容器节点读取生产环境中的业务持久化容器节点的持久化存储数据的挂载目录;
将所述挂载目录复制到靶场环境,以实现持久化存储数据复制到靶场环境。
可选地,所述将所述实际调用流量转发至靶场环境,包括:
确定流量转发配置信息,所述流量转发配置信息用于在实际生产环境的容器中增加用于流量转发的容器;
通过所述流量转发配置信息将实际生产环境的流量进行拦截,并将拦截后的实际调用流量发送给实际生产环境的业务容器的同时,将所述实际调用流量转发至靶场环境。
可选地,还包括:
获取携带有目标混沌实验任务的任务信息;
基于所述任务信息确定故障注入信息;
将所述故障注入信息注入到目标靶场环境。
可选地,所述方法还包括:
响应于基于所述目标靶场环境完成注入的故障测试后,对所述目标靶场环境进行恢复,得到恢复后的靶场环境。
一种云原生混沌工程实验的靶场环境构建装置,包括:
第一获取单元,用于获取实际生产环境中的容器云Kubernetes集群的资源信息;
复制单元,用于将所述资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;
第二获取单元,用于获取所述实际生产环境中的实际调用流量;
转发单元,用于将所述实际调用流量转发至靶场环境,以实现靶场环境流量的构建;
目标获取单元,用于响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。
可选地,所述第一获取单元具体用于:
确定获取实际生产环境中的容器云Kubernetes集群的资源范围;
基于目标接口,获取所述资源范围内的实际生产环境中的容器云Kubernetes集群的资源信息,所述目标接口为基于容器云Kubernetes的应用程序接口;
其中,所述复制单元具体用于:
获取所述资源信息对应的编排文件,并将所述编排文件存储目标位置;
响应于将所述目标位置的编排文件复制到所述靶场环境的Kubernetes集群,控制Kubernetes集群创建与所述编排文件对应的目标对象;
响应于在靶场环境的工作节点上启动持久化容器节点,通过所述持久化容器节点读取生产环境中的业务持久化容器节点的持久化存储数据的挂载目录;
将所述挂载目录复制到靶场环境,以实现持久化存储数据复制到靶场环境。
可选地,所述转发单元具体用于:
确定流量转发配置信息,所述流量转发配置信息用于在实际生产环境的容器中增加用于流量转发的容器;
通过所述流量转发配置信息将实际生产环境的流量进行拦截,并将拦截后的实际调用流量发送给实际生产环境的业务容器的同时,将所述实际调用流量转发至靶场环境。
可选地,还包括:
第三获取单元,用于获取携带有目标混沌实验任务的任务信息;
确定单元,用于基于所述任务信息确定故障注入信息;
故障注入单元,用于将所述故障注入信息注入到目标靶场环境;
恢复单元,用于响应于基于所述目标靶场环境完成注入的故障测试后,对所述目标靶场环境进行恢复,得到恢复后的靶场环境。
相较于现有技术,本发明提供了一种云原生混沌工程实验的靶场环境构建方法及装置,包括:获取实际生产环境中的容器云Kubernetes集群的资源信息;将资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;获取实际生产环境中的实际调用流量;将实际调用流量转发至靶场环境,以实现靶场环境流量的构建;响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。本发明基于云原生的备份、恢复技术实现基础环境的复制、基于流量复制技术复制生产的流量到靶场环境,从而完全仿真生产环境,达到混沌工程测试的最佳效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种云原生混沌工程实验的靶场环境构建方法的流程示意图;
图2为本发明实施例提供的一种靶场环境构造场景的示意图;
图3为本发明实施例提供的一种靶场环境构造与应用的示意图;
图4为本发明实施例提供的一种云原生混沌工程实验的靶场环境构建装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在本发明实施例中提供了一种云原生混沌工程实验的靶场环境构建方法,该方法是基于云原生的备份、恢复技术实现基础环境的复制、基于流量复制技术复制生产的流量到靶场环境,从而完全仿真生产环境,达到混沌工程测试的最佳效果。
其中,靶场环境是基于虚拟化技术对真实环境进行模拟的技术,例如,对真实网络空间中的网络架构、***设备、业务流程的运行状态及运行环境进行模拟和复现的技术或产品,以更有效地实现与网络安全相关的学***。
本发明实施例是基于Kubernetes(容器云)平台实现的,容器云(Kubernetes,简称k8s)是一款开源的容器操作平台,其可以实现将若干个容器组合成一个服务及动态地分配容器运行的主机等功能,为用户使用容器提供了极大的便利。
参见图1,为本发明实施例提供的一种云原生混沌工程实验的靶场环境构建方法的流程示意图,该方法可以包括以下步骤:
S101、获取实际生产环境中的容器云Kubernetes集群的资源信息。
在本发明实施例中首先要进行靶场环境的构建,即主要是构建同实际生产环境完全一致的环境,便于后续在靶场环境实施混沌故障注入测试。
云原生上的混沌工程试验对象是Kubernetes的资源,即获取的实际生产环境中的容器云Kubernetes集群的资源信息主要包含包含用于运行容器的Kubernetes集群物理节点Node、用于编排容器运行方式的工作负载,如Pod、Deployment、ReplicaSet、StatefulSet、DaemonSet、Job、CronJob等、用于定义容器的负载均衡器服务Service、用于持续化保存业务数据的持续存储PV、用于容器配置的ConfigMap,Secret以及其他的自定义CRD资源。
在本发明实施例的一种实现方式中,所述获取实际生产环境中的容器云Kubernetes集群的资源信息,包括:确定获取实际生产环境中的容器云Kubernetes集群的资源范围;基于目标接口,获取所述资源范围内的实际生产环境中的容器云Kubernetes集群的资源信息,所述目标接口为基于容器云Kubernetes的应用程序接口。
具体的,目标接口可以是Kubernetes Restful API(容器云应用程序接口),通过API获取生产环境Kubernetes集群的混沌演练资源,比如工作负载,以及持续存储PV等;将获取的数据复制到靶场环境的Kubernetes集群,通过Kubernetes API将复制的数据写入到靶场环境的Kubernetes集群,达到将生产环境的混沌演练资源迁移到靶场环境,从而构建一套同生产环境完全一致的混沌测试的靶场环境。
在获取资源信息时,首先要指定获取的ubernetes的资源范围,可以是Kubernetes里的任何资源,比如Pod、ConfigMap、Secret一个或者多个资源。通过直接指定资源名称,或者用标签的方式选择。对于Kubernetes里面的业务,同一个业务的资源包含一个相同的标签,比如业务A,包含Pod、PVC等多种资源,都被设置App=A的标签。范围指定的时候指定App=A的所有资源,进行整体获取。
S102、将所述资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建。
在一种实施方式中,所述将所述资源信息复制到靶场环境的Kubernetes集群,包括:获取所述资源信息对应的编排文件,并将所述编排文件存储目标位置;响应于将所述目标位置的编排文件复制到所述靶场环境的Kubernetes集群,控制Kubernetes集群创建与所述编排文件对应的目标对象;响应于在靶场环境的工作节点上启动持久化容器节点,通过所述持久化容器节点读取生产环境中的业务持久化容器节点的持久化存储数据的挂载目录;将所述挂载目录复制到靶场环境,以实现持久化存储数据复制到靶场环境。
具体的,在获得了资源范围后,即可以进行相关资源和数据的复制,复制是以Kubernetes API方式实施的。针对Kubernetes的资源复制方法为:对于指定的资源,调用Kubernetes的Api获取该资源的编排文件,并且保存到本地或者其他的对象存储中。通过文件复制的方式将保存在本地或者对象存储中的数据传输到靶场环境中,通过调用Kubernetes的Api将复制的编排文件写入到靶场环境的Kubernetes集群中,写入后Kubernetes会创建相应的对象。
Pod是Kubernetes中的最小部署单元,Pod是由一个或多个容器组成,通常Pod会对PV数据进行存储,而PV是一种持久存储卷,PV数据可以理解为是k8s上的一种标准资源,在本发明中为了便于描述将PV数据称为持久化存储数据,将Pod称为持久化容器节点。具体的,针对Pod挂载的持续化存储PV数据,也需要对PV数据通过底层存储进行复制,支持文件级别进行复制,可以保证数据的一致性。具体方法是在Kubernetes的每个工作节点上启动一个DaemonSet Pod,该Pod读取业务Pod所在节点上的PV挂载目录,备份挂载目录中的文件到本地或者对象存储中,备份过程支持增量备份。备份完成后,备份的数据复制到靶场环境,在靶场环境中申请新PV,并将备份的PV的数据复制到新申请的PV中,达到持续化PV数据的复制。
S103、获取所述实际生产环境中的实际调用流量。
S104、将所述实际调用流量转发至靶场环境,以实现靶场环境流量的构建。
靶场环境构建完成后实施靶场环境流量的构建,靶场流量构建的目的是将实际生产环境上的真实调用流量,通过转发的方式注入到靶场环境,从而达到在靶场环境完全模拟生产环境的状态。
本发明采用的基于Kubernetes Pod层的流量转发技术。Kubernetes Pod采用边车Sidecar的方式给需要转发的Pod添加一个流量转发的Sidecar容器。通过配置Kubernetes的服务,将生产环境的流量首先转发到Sidecar容器,按照对Sidecar容器的转发策略配置,Sidecar容器再将流量分别发送给生产业务容器,以及靶场环境的业务容器。
在本发明实施例的一种实现方式中,所述将所述实际调用流量转发至靶场环境,包括:确定流量转发配置信息,所述流量转发配置信息用于在实际生产环境的容器中增加用于流量转发的容器;通过所述流量转发配置信息将实际生产环境的流量进行拦截,并将拦截后的实际调用流量发送给实际生产环境的业务容器的同时,将所述实际调用流量转发至靶场环境。
具体的,通过流量转发配置信息可以确定对应的转发范围、目的地址等信息,例如,对Pod级别的流量转发,首先需要在生产环境对要转发的流量增加配置,给集群增加一个Kubernetes的ConfigMap,该ConfigMap定义了流量转发的策略,包含转发的百分比,转发的目标地址等。
通过流量转发配置信息进行策略配置后,在生产环境对要转发的业务Pod进行配置,给业务Pod增加一个Sidecar容器,该容器会拦截所有进入该Pod的流量,将流量发给实际的业务容器,同时按照配置的转发策略将流量转发给目标地址,从而实现生产流量构建。配置完成后,通过滚动升级的方式逐个使Pod的流量转发生效。
S105、响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。
通过将实际生产环境中的容器资源的复制以及调用流量的转发,完成了靶场环境和靶场环境流量的构建,即得到了与实际生产环境匹配的目标靶场环境,后续可以在该目标靶场环境中实施混沌工程实验。
参见图2,为本发明实施例提供的一种靶场环境构造场景的示意图。生产环境中包括多个集群,如集群1和集群2,每一个集群中包括多个业务容器,如pod-1-1、pod-1-2、pod-1-3,以及pod-2-1、pod-2-2、pod-2-3,然后将这些容器资源复制到靶场环境中对应的容器,并且将生产环境中的请求流量转发至靶场环境,从而构建出与生产环境一致的靶场环境。
在完成了目标靶场环境的构建后,可以在该目标靶场环境实施混沌工程实验。在本发明实施例中还包括:获取携带有目标混沌实验任务的任务信息;基于所述任务信息确定故障注入信息;将所述故障注入信息注入到目标靶场环境。
其中,任务信息可以是指目标混沌实验任务的测试任务信息,故障注入信息可以包括故障注入类型、故障注入方式、故障具体信息等。靶场环境以及生产流量构建完成后,可以在靶场环境实施混沌工程实验。故障注入是指在靶场环境,利用混沌工程的思想进行故障演练,比如注入工作节点CPU、内存负荷高,Pod的网络延迟等。针对业务Pod以及其依赖的各种资源,比如工作节点,集群等注入故障,来验证在业务***稳定性。
在本发明实施例对故障注入的方式并不进行限制,故障注入的方式有很多,比如通过开源工具chaosblade实施故障注入,或者通过一些混沌工程平台实施。故障类型包含,节点重启宕机、节点CPU、内存高负荷、Pod内存高负荷、Pod重启、Pod网络异常等各种常见的或者自主开发的故障。
故障注入过程中需要实时观察各种监控指标,包含基础资源、平台,以及业务的指标,通过指标的变化情况来判断***以及业务的稳定性。如故障注入后,业务的TPS是否下降,错误率是否上升。
对应的,在本发明实施例中还包括:响应于基于所述目标靶场环境完成注入的故障测试后,对所述目标靶场环境进行恢复,得到恢复后的靶场环境。
故障注入测试完成后,可以对靶场环境进行恢复。包括恢复注入的故障,停止生产环境的流量转发,拆除构建的靶场环境。其中,故障恢复包含取消对***注入的故障,如终止导致节点Cpu高负荷的进程,使节点的Cpu使用量恢复到故障注入前的状态。流量恢复是在生产环境中,删除负责进行流量转发的Sidecar容器,并且删除定义流量转发策略的ConfigMap。
参见图3,为本发明实施例提供的一种靶场环境构造与应用的示意图,其中,总体流程主要包括:靶场环境构造、流量构造、故障注入和环境恢复。具体的,环境构造主要包括指定资源范围、k8s资源复制以及PV数据复制。在流量构造过程中包括:开始流量转发、配置流量转发、配置目标pod以及转发生效。在故障注入过程中包括开始注入故障、故障注入、监控观测。环境恢复过程包括:开始环境恢复、故障恢复、流量恢复、环境拆除。其中,涉及的具体处理过程请参见本发明前述实施例中的描述,此处不再进行详述。
在本发明实施例中还提供了一种云原生混沌工程实验的靶场环境构建装置,参见图4,包括:
第一获取单元201,用于获取实际生产环境中的容器云Kubernetes集群的资源信息;
复制单元202,用于将所述资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;
第二获取单元203,用于获取所述实际生产环境中的实际调用流量;
转发单元204,用于将所述实际调用流量转发至靶场环境,以实现靶场环境流量的构建;
目标获取单元205,用于响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。
在一种实施方式中,所述第一获取单元具体用于:
确定获取实际生产环境中的容器云Kubernetes集群的资源范围;
基于目标接口,获取所述资源范围内的实际生产环境中的容器云Kubernetes集群的资源信息,所述目标接口为基于容器云Kubernetes的应用程序接口;
其中,所述复制单元具体用于:
获取所述资源信息对应的编排文件,并将所述编排文件存储目标位置;
响应于将所述目标位置的编排文件复制到所述靶场环境的Kubernetes集群,控制Kubernetes集群创建与所述编排文件对应的目标对象;
响应于在靶场环境的工作节点上启动持久化容器节点,通过所述持久化容器节点读取生产环境中的业务持久化容器节点的持久化存储数据的挂载目录;
将所述挂载目录复制到靶场环境,以实现持久化存储数据复制到靶场环境。
在另一种实施方式中,所述转发单元具体用于:
确定流量转发配置信息,所述流量转发配置信息用于在实际生产环境的容器中增加用于流量转发的容器;
通过所述流量转发配置信息将实际生产环境的流量进行拦截,并将拦截后的实际调用流量发送给实际生产环境的业务容器的同时,将所述实际调用流量转发至靶场环境。
在一种实施方式中,该装置还包括:
第三获取单元,用于获取携带有目标混沌实验任务的任务信息;
确定单元,用于基于所述任务信息确定故障注入信息;
故障注入单元,用于将所述故障注入信息注入到目标靶场环境;
恢复单元,用于响应于基于所述目标靶场环境完成注入的故障测试后,对所述目标靶场环境进行恢复,得到恢复后的靶场环境。
基于前述实施例,本申请的实施例提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上任一项的节点选取方法的步骤。
本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现的节点选取方法的步骤。
本发明提供了一种云原生混沌工程实验的靶场环境构建装置,包括:获取实际生产环境中的容器云Kubernetes集群的资源信息;将资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;获取实际生产环境中的实际调用流量;将实际调用流量转发至靶场环境,以实现靶场环境流量的构建;响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。本发明基于云原生的备份、恢复技术实现基础环境的复制、基于流量复制技术复制生产的流量到靶场环境,从而完全仿真生产环境,达到混沌工程测试的最佳效果。
需要说明的是,本实施例中各个单元以及子单元的具体实现可以参考前文中的相应内容,此处不再详述。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种云原生混沌工程实验的靶场环境构建方法,其特征在于,包括:
获取实际生产环境中的容器云Kubernetes集群的资源信息;
将所述资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;
获取所述实际生产环境中的实际调用流量;
将所述实际调用流量转发至靶场环境,以实现靶场环境流量的构建;
响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。
2.根据权利要求1所述的方法,其特征在于,所述获取实际生产环境中的容器云Kubernetes集群的资源信息,包括:
确定获取实际生产环境中的容器云Kubernetes集群的资源范围;
基于目标接口,获取所述资源范围内的实际生产环境中的容器云Kubernetes集群的资源信息,所述目标接口为基于容器云Kubernetes的应用程序接口。
3.根据权利要求1所述的方法,其特征在于,所述将所述资源信息复制到靶场环境的Kubernetes集群,包括:
获取所述资源信息对应的编排文件,并将所述编排文件存储目标位置;
响应于将所述目标位置的编排文件复制到所述靶场环境的Kubernetes集群,控制Kubernetes集群创建与所述编排文件对应的目标对象;
响应于在靶场环境的工作节点上启动持久化容器节点,通过所述持久化容器节点读取生产环境中的业务持久化容器节点的持久化存储数据的挂载目录;
将所述挂载目录复制到靶场环境,以实现持久化存储数据复制到靶场环境。
4.根据权利要求1所述的方法,其特征在于,所述将所述实际调用流量转发至靶场环境,包括:
确定流量转发配置信息,所述流量转发配置信息用于在实际生产环境的容器中增加用于流量转发的容器;
通过所述流量转发配置信息将实际生产环境的流量进行拦截,并将拦截后的实际调用流量发送给实际生产环境的业务容器的同时,将所述实际调用流量转发至靶场环境。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取携带有目标混沌实验任务的任务信息;
基于所述任务信息确定故障注入信息;
将所述故障注入信息注入到目标靶场环境。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于基于所述目标靶场环境完成注入的故障测试后,对所述目标靶场环境进行恢复,得到恢复后的靶场环境。
7.一种云原生混沌工程实验的靶场环境构建装置,其特征在于,包括:
第一获取单元,用于获取实际生产环境中的容器云Kubernetes集群的资源信息;
复制单元,用于将所述资源信息复制到靶场环境的Kubernetes集群,以实现靶场环境构建;
第二获取单元,用于获取所述实际生产环境中的实际调用流量;
转发单元,用于将所述实际调用流量转发至靶场环境,以实现靶场环境流量的构建;
目标获取单元,用于响应于完成靶场环境和靶场环境流量的构建,获得目标靶场环境。
8.根据权利要求7所述的装置,其特征在于,所述第一获取单元具体用于:
确定获取实际生产环境中的容器云Kubernetes集群的资源范围;
基于目标接口,获取所述资源范围内的实际生产环境中的容器云Kubernetes集群的资源信息,所述目标接口为基于容器云Kubernetes的应用程序接口;
其中,所述复制单元具体用于:
获取所述资源信息对应的编排文件,并将所述编排文件存储目标位置;
响应于将所述目标位置的编排文件复制到所述靶场环境的Kubernetes集群,控制Kubernetes集群创建与所述编排文件对应的目标对象;
响应于在靶场环境的工作节点上启动持久化容器节点,通过所述持久化容器节点读取生产环境中的业务持久化容器节点的持久化存储数据的挂载目录;
将所述挂载目录复制到靶场环境,以实现持久化存储数据复制到靶场环境。
9.根据权利要求7所述的装置,其特征在于,所述转发单元具体用于:
确定流量转发配置信息,所述流量转发配置信息用于在实际生产环境的容器中增加用于流量转发的容器;
通过所述流量转发配置信息将实际生产环境的流量进行拦截,并将拦截后的实际调用流量发送给实际生产环境的业务容器的同时,将所述实际调用流量转发至靶场环境。
10.根据权利要求7所述的装置,其特征在于,还包括:
第三获取单元,用于获取携带有目标混沌实验任务的任务信息;
确定单元,用于基于所述任务信息确定故障注入信息;
故障注入单元,用于将所述故障注入信息注入到目标靶场环境;
恢复单元,用于响应于基于所述目标靶场环境完成注入的故障测试后,对所述目标靶场环境进行恢复,得到恢复后的靶场环境。
CN202210666363.3A 2022-06-14 2022-06-14 一种云原生混沌工程实验的靶场环境构建方法及装置 Pending CN114996955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210666363.3A CN114996955A (zh) 2022-06-14 2022-06-14 一种云原生混沌工程实验的靶场环境构建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210666363.3A CN114996955A (zh) 2022-06-14 2022-06-14 一种云原生混沌工程实验的靶场环境构建方法及装置

Publications (1)

Publication Number Publication Date
CN114996955A true CN114996955A (zh) 2022-09-02

Family

ID=83034254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210666363.3A Pending CN114996955A (zh) 2022-06-14 2022-06-14 一种云原生混沌工程实验的靶场环境构建方法及装置

Country Status (1)

Country Link
CN (1) CN114996955A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115643112A (zh) * 2022-12-22 2023-01-24 杭州默安科技有限公司 一种安全防护能力的测试方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115643112A (zh) * 2022-12-22 2023-01-24 杭州默安科技有限公司 一种安全防护能力的测试方法及装置

Similar Documents

Publication Publication Date Title
US8910172B2 (en) Application resource switchover systems and methods
KR102047216B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
JP6788178B2 (ja) 設定支援プログラム、設定支援方法及び設定支援装置
US7984332B2 (en) Distributed system checker
CN107193607B (zh) 用于更新代码文件的方法和装置、存储介质、处理器以及终端
US11132274B2 (en) Establishing and monitoring programming environments
CN104765678A (zh) 对移动终端设备上的应用进行测试的方法及装置
US9824000B1 (en) Testing calling code dynamically with random error injection based on user-specified configuration
CN110084486B (zh) 一种资源管理方法及装置
US10048978B2 (en) Apparatus and method for identifying a virtual machine having changeable settings
US20170083643A1 (en) Reproducing problems in a cloud-based replica of a network
CN112631846A (zh) 一种故障演练方法、装置、计算机设备及存储介质
CN110727575B (zh) 一种信息处理方法、***、装置、以及存储介质
US20170371641A1 (en) Multi-tenant upgrading
Oliveira et al. Delivering software with agility and quality in a cloud environment
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
CN114356504A (zh) 集群中数据迁移方法、装置、电子设备和存储介质
De Iasio et al. A framework for microservices synchronization
US8671396B2 (en) Dynamic interface reduction for software model checking
CN115617668A (zh) 一种兼容性测试方法、装置及设备
CN115080309A (zh) 数据备份***、方法、存储介质以及电子设备
CN113268206B (zh) 一种网络靶场资源热插拔实现方法与***
JP2023044720A (ja) クラッシュしたアプリケーションを修復するためのコンピュータ実装方法、コンピュータプログラム製品、およびリモートコンピュータサーバ(クラッシュしたプロセスのリモート修復)
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质
CN114756293A (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