CN116991615A - 一种基于在线学习的云原生系统故障自愈方法及装置 - Google Patents

一种基于在线学习的云原生系统故障自愈方法及装置 Download PDF

Info

Publication number
CN116991615A
CN116991615A CN202310854222.9A CN202310854222A CN116991615A CN 116991615 A CN116991615 A CN 116991615A CN 202310854222 A CN202310854222 A CN 202310854222A CN 116991615 A CN116991615 A CN 116991615A
Authority
CN
China
Prior art keywords
self
healing
primary system
fault
cloud
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
CN202310854222.9A
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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202310854222.9A priority Critical patent/CN116991615A/zh
Publication of CN116991615A publication Critical patent/CN116991615A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/0636Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis based on a decision tree analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery

Abstract

本发明公开了一种基于在线学习的云原生系统故障自愈方法及装置,其中方法包括:获取云原生系统的指标数据集;对所述指标数据集进行异常值检测,得到异常数据;根据所述异常数据判断所述云原生系统是否发生故障;当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。本发明实施例通过自愈决策模型进行故障自愈处理,提升了决策依据的准确性和实时性,能够广泛应用于人工智能技术领域。

Description

一种基于在线学习的云原生系统故障自愈方法及装置
技术领域
本发明涉及人工智能技术领域,尤其是一种基于在线学习的云原生系统故障自愈方法及装置。
背景技术
云原生系统在运行过程中经常出现各种类型的故障,如网络故障、硬件故障、服务不响应和容器故障等,这些故障会影响用户体验,甚至造成重大财产损失。相关技术中故障自愈方法主要根据系统的运行特点和历史数据,定义一些规则和专家知识用于检测和诊断系统故障。但是这种静态规则方法无法自适应环境的变化,难以应对复杂多变的云原生环境,而且规则和专家知识的手动定义十分困难,同时也难以判断是否做出了最优的决策。综合上述,相关技术中存在的技术问题亟需得到解决。
发明内容
有鉴于此,本发明实施例提供一种基于在线学习的云原生系统故障自愈方法及装置,以提高云原生系统故障自愈的效率。
一方面,本发明提供了一种基于在线学习的云原生系统故障自愈方法,所述方法包括:
获取云原生系统的指标数据集;
对所述指标数据集进行异常值检测,得到异常数据;
根据所述异常数据判断所述云原生系统是否发生故障;
当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;
对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。
可选地,所述获取云原生系统的指标数据,包括:
在所述云原生系统中安装监控和警报系统;
通过所述监控和警报系统以时间序列数据的形式收集和存储得到所述指标数据集。
可选地,所述对所述指标数据集进行异常值检测,得到异常数据,包括:
从所述指标数据集中选择得到分割特征,根据所述分割特征对所述指标数据集进行划分处理,得到孤立树;
根据所述孤立树对所述数据集进行孤立树检测处理,得到异常数据。
可选地,所述根据所述异常数据判断所述云原生系统是否发生故障,包括:
当检测到多个异常数据时,确认所述云原生系统存在故障;
根据所述故障进行故障告警处理。
可选地,所述根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理,包括:
根据所述指标数据集确定所述故障自愈动作集中每一个自愈动作的特征向量;
获取所述故障自愈动作集中每一个自愈动作的特征系数;
根据所述特征向量和所述特征系数对所述故障自愈动作集进行选择奖励计算处理,得到选择奖励集合;
根据上置信区间计算公式结合所述选择奖励集合对所述故障自愈动作集进行选择概率计算处理,选择得到自愈动作;
根据选择得到的所述自愈动作对所述云原生系统进行故障自愈处理。
可选地,所述对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新,包括:
从所述云原生系统中获取选择动作反馈,以及与选择的所述自愈动作对应的自愈动作成本;
根据所述选择动作反馈和所述自愈动作成本进行反馈奖励计算,得到反馈奖励;
根据所述反馈奖励对所述故障自愈动作集中每一个自愈动作的特征系数进行更新,从而对所述自愈决策模型进行更新。
可选地,在所述将所述指标数据集输入自愈决策模型之前,所述方法还包括预先训练所述自愈决策模型,具体包括:
通过故障注入工具对所述云原生系统进行故障注入处理,得到注入故障;
根据所述注入故障对所述自愈决策模型进行模型更新处理,得到预先训练的自愈决策模型。
另一方面,本发明实施例还提供了一种基于在线学习的云原生系统故障自愈装置,所述装置包括:
第一模块,用于获取云原生系统的指标数据集;
第二模块,用于对所述指标数据集进行异常值检测,得到异常数据;
第三模块,用于根据所述异常数据判断所述云原生系统是否发生故障;
第四模块,用于当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;
第五模块,用于对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。
另一方面,本发明实施例还公开了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
另一方面,本发明实施例还公开了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
另一方面,本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明实施例通过将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;本发明实施例根据指标数据集考虑到故障发生时的上下文信息,通过自愈决策模型进行自适应决策,提升了故障自愈决策依据的准确性和实时性,能够更好地适应复杂多变的云原生环境。另外,本发明实施例对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新;能够自适应更新模型,降低算法效率不足带来的影响,自动化水平更高,减少人力成本和工作量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于在线学习的云原生系统故障自愈方法的流程图;
图2是本申请实施例提供的一种系统框架图;
图3是本申请实施例提供的一种云原生系统故障自愈的示意图;
图4是本申请实施例提供的一种不同算法在模拟数据集上的平均奖励-轮次折线图;
图5是本申请实施例提供的一种不同算法在模拟数据集上的故障自愈动作分布图;
图6是本申请实施例提供的一种在线实验评估结果示意图;
图7是本申请实施例提供的一种基于在线学习的云原生系统故障自愈装置的结构示意图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先,对本申请中涉及的若干名词进行解析:
云原生:一种基于云计算的应用开发和部署方式,包括容器、服务网格、微服务、不可变基础设施和声明式API(应用程序编程接口)等相关技术。
故障自愈:检测系统故障并自动执行故障修复动作,尝试使故障症状消失,而不必进行故障根因定位和修复潜在的错误。
在线学习:也被称作“增量学习”或“适应性学习”,指的是流式地接收训练样本并更新模型的一类机器学习算法。
多臂老虎机算法:在线学习算法的一种,是解决多个选择问题的一种有效策略。其中每个选择作为一个老虎机的臂,而选择所得到的收益则是从老虎机中获得的奖励。
Pod:Pod是Kubernetes调度和扩展的基本单位,包含了一个或多个容器,这些容器共享命名空间(namespace)、文件系统卷(volume)、IP和端口空间等资源。
相关技术中,故障自愈方法主要基于预定义的静态规则和流程,需要事先配置和维护大量的规则。这种方法的灵活性较差,无法完全适应复杂多变的云原生环境。规则的修改和维护也需要投入大量的人力成本。而传统机器学习方法通常需要进行批处理训练,无法实时自适应地根据流式数据更新模型。同时,仍需要人工操作来进行故障根因定位和修复潜在错误,自动化水平有限。
有鉴于此,本申请实施例中提供一种基于在线学习的云原生系统故障自愈方法,本申请实施例中的基于在线学习的云原生系统故障自愈方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件等。终端可以是平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
参照图1,本发明实施例提供一种基于在线学习的云原生系统故障自愈方法,包括:
S101、获取云原生系统的指标数据集;
S102、对所述指标数据集进行异常值检测,得到异常数据;
S103、根据所述异常数据判断所述云原生系统是否发生故障;
S104、当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;
S105、对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。
参照图2,在本发明实施例中,首先获取云原生系统的指标数据集,可以使用Python脚本调用Prometheus API,从而实时监测云原生系统的各项指标,其中,PrometheusAPI为监控和警报系统的应用接口。再对指标数据集进行异常值检测,得到异常数据。本发明实施例中采用iForest算法(孤立森林算法)检测指标数据中的异常值,从而判断云原生系统是否出现故障。当异常检测算法检测出故障时,即当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,主要将故障的特征向量(由各个监控指标组成)传递给自愈决策模型,促使自愈决策模型利用上下文多臂老虎机算法(LinUCB算法)做出满足最大化奖励的决策,从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理。在自愈决策模型做出决策后,在设定的时间窗口内观察得到的奖励,对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新,进而更新自愈决策模块的上下文多臂老虎机算法。本发明实施例提供的云原生故障自愈方法,能够充分考虑到故障发生时的上下文信息,提升决策依据的准确性和实时性,避免传统静态规则的限制,更好地适应复杂多变的云原生环境;同时,该方法能够实现自适应更新模型,降低算法效率不足带来的影响,自动化水平更高,减少人力成本和工作量。本方法还将故障自愈动作成本纳入奖励值的计算中,增加故障自愈决策的现实意义。
需要补充说明的是,在本申请的各个具体实施方式中,当涉及到需要根据目标对象的信息、目标对象的行为数据、目标对象的历史数据以及目标对象的位置信息等与目标对象身份或特性相关的数据进行相关处理时,都会先获得目标对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取目标对象的敏感信息时,会通过弹窗或者跳转到确认页面等方式获得目标对象的单独许可或者单独同意,在明确获得目标对象的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的目标对象相关数据。
进一步作为可选的实施方式,上述步骤S101中,所述获取云原生系统的指标数据,包括:
在所述云原生系统中安装监控和警报系统;
通过所述监控和警报系统以时间序列数据的形式收集和存储得到所述指标数据集。
在本发明实施例中,利用Prometheus来收集指标,以实现对云原生系统的性能监控和异常检测。Prometheus是一种监控和警报系统,它以时间序列数据的形式收集和存储指标(metric),即指标信息与时间戳一同存储。Prometheus同时提供了名为PromQL的查询语言,可以使用HTTP API实时收集系统的相关指标。本发明选取了Pod CPU使用量、Pod内存使用量、Pod IO吞吐量、Pod接收包速率、Pod发送包速率、Pod运行时长和节点磁盘使用率作为实验系统的关键性能指标来进行收集。
进一步作为可选的实施方式,上述步骤S102中,所述对所述指标数据集进行异常值检测,得到异常数据,包括:
从所述指标数据集中选择得到分割特征,根据所述分割特征对所述指标数据集进行划分处理,得到孤立树;
根据所述孤立树对所述数据集进行孤立树检测处理,得到异常数据。
在本发明实施例中,可以选择使用训练速度快的iForest算法来检测指标数据集中的异常值,其中,iForest算法是一种基于孤立树的异常检测算法,也被称为孤立森林算法。该算法的主要思想是通过一个或多个决策树对输入数据进行划分,并测量数据点变得“孤立”的难度。孤立点通常位于密度较低的区域,即很难被划分到某个特定子空间的数据点。因此,孤立点的决策树的深度通常比较低,更容易被孤立出来。本发明实施例具体通过输入指标数据集,设置当前树高为0,最大树高为l,其中l可根据实际情况进行设置;然后从数据集中随机选择一个特征作为分割特征;在选择的特征的最小值和最大值之间随机选择一个值作为分割阈值;根据选择的特征和阈值将当前的数据集划分为两个子集,一个子集包含小于等于阈值的样本,另一个子集包含大于阈值的样本;对于每个子集,递归地创建左子树和右子树;重复以上分割步骤,直到树的高度达到l或者数据量大小为1,建立得到多个孤立树。当多个孤立树构造完成后,可以利用它们产生孤立森林,具体通过输入指标数据集,设置孤立树的个数为t,子采样的大小为ψ,初始化孤立森林iForest为空,其中t、ψ可根据实际情况进行设置;计算孤立树的高度限制l=ceiling(log2ψ);从数据集中随机采样一个样本子集作为当前孤立树的训练数据,子集大小由ψ确定;利用iTree算法构造孤立树,并将构造的孤立树并入孤立森林中;重复以上步骤,直至孤立树的个数达到t。在孤立森林中,如果数据点被多个孤立树检测出来,那么可以得到异常数据点。还需要进行说明的是,本发明实施例还可以使用其他的异常检测算法,如统计学方法3-sigma、降维方法PCA、神经网络算法VAE等进行数据异常检测。
进一步作为可选的实施方式,上述步骤S103中,所述根据所述异常数据判断所述云原生系统是否发生故障,包括:
当检测到多个异常数据时,确认所述云原生系统存在故障;
根据所述故障进行故障告警处理。
在本发明实施例中,仅当发现连续两个或以上的异常点后,异常检测模块才认为存在故障,并进行相关的故障告警。这是因为单个异常点并不一定意味着存在故障,可能只是由于噪声或其他非故障原因引起的,若此时算法采取了无动作以外的故障自愈动作,会造成自愈成本的浪费。此外,任何指标的故障都将会激活故障自愈组件。检测到异常后,异常检测模块会将异常Pod的相关指标作为Pod的状态向量(包括CPU使用量、内存使用量和网络发送包速率等七个性能指标)传送给故障自愈组件,来触发故障自愈动作。本发明实施例中的算法能够高效检测指标数据中的异常值,准确率和ROC曲线下面积AUC都能达到98%以上。另外,本发明实施例进行故障告警可采用短信通知、系统信息推送或警报等处理方法。
进一步作为可选的实施方式,所述根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理,包括:
根据所述指标数据集确定所述故障自愈动作集中每一个自愈动作的特征向量;
获取所述故障自愈动作集中每一个自愈动作的特征系数;
根据所述特征向量和所述特征系数对所述故障自愈动作集进行选择奖励计算处理,得到选择奖励集合;
根据上置信区间计算公式结合所述选择奖励集合对所述故障自愈动作集进行选择概率计算处理,选择得到自愈动作;
根据选择得到的所述自愈动作对所述云原生系统进行故障自愈处理。
参照图3,在本发明实施例中,首先根据所述指标数据集确定所述故障自愈动作集中每一个自愈动作的特征向量,其中故障自愈动作集中的自愈动作包括无动作、重启、回滚、流量控制、扩容和迁移。无动作表示不采取任何故障自愈动作。重启表示重新启动故障的Pod。重启Pod可以将容器重新启动到初始状态,从而消除可能导致故障的问题。回滚表示重新应用Deployment配置文件,以将Pod回滚至未发生故障的版本。流量控制表示对流入Pod的网络流量速率进行限制。扩容表示增加Pod的replicas数,即副本数。迁移表示将Pod从当前节点移动到另一个节点。在一种可行的实施例中,由于在云原生故障自愈中,故障的修复比成本更为重要,所以本文将成本的取值范围限制在[0,0.2]之间,不同故障自愈动作的成本考虑如下:为无动作设置cost1=0,为重启设置cost2=0.05,为流量控制设置cost3=0.08,为回滚设置cost4=0.1,为扩容设置cost5=0.15,为迁移设置cost6=0.2。
本发明实施例将LinUCB算法应用于故障自愈决策中,首先设定探索参数α,并对候选故障自愈动作集中的自愈动作ai(i=1,2,3,4,5,6)对应的特征向量/>和特征系数初始化为零向量。在每一轮t,即每发生一次故障时,观察故障的上下文信息cxtt,将其作为每个自愈动作的特征向量/>这里的上下文信息即发生故障时的Pod指标向量,包括CPU使用量和内存使用量等上文提及的指标数据集。根据所述特征向量和所述特征系数对所述故障自愈动作集进行选择奖励计算处理,得到选择奖励集合,其中,选择奖励计算公式如下所示:
式中,表示选择奖励。
再根据上置信区间计算公式结合所述选择奖励集合对所述故障自愈动作集进行选择概率计算处理,选择得到自愈动作,上置信区间计算公式如下所示:
式中,α是该算法的探索因子,表示该算法在利用当前最佳自愈动作的同时探索其它自愈动作的程度,α越大,探索的程度越高。
本发明实施例选择具有最大的自愈动作ai,t,根据选择得到的所述自愈动作对所述云原生系统进行故障自愈处理。
进一步作为可选的实施方式,所述对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新,包括:
从所述云原生系统中获取选择动作反馈,以及与选择的所述自愈动作对应的自愈动作成本;
根据所述选择动作反馈和所述自愈动作成本进行反馈奖励计算,得到反馈奖励;
根据所述反馈奖励对所述故障自愈动作集中每一个自愈动作的特征系数进行更新,从而对所述自愈决策模型进行更新。
在本发明实施例中,从所述云原生系统中获取选择动作反馈benefitt,以及与选择的所述自愈动作对应的自愈动作成本,其中,该自愈动作成本可根据实际情况进行设定,在本实施例中采用上述定义的不同故障自愈动作的成本。然后根据所述选择动作反馈和所述自愈动作成本进行反馈奖励计算,得到反馈奖励,其中反馈奖励计算公式如下所示:
根据所述反馈奖励rt对所述故障自愈动作集中每一个自愈动作的特征系数进行更新,从而对所述自愈决策模型进行更新。在算法的初始阶段,算法会给出一个大概率有效的故障自愈动作,然后根据系统的反馈更新模型。每个自愈动作的特征系数随着每一轮的反馈不断更新,算法的置信区间不断减小,从而使LinUCB算法推荐的故障自愈动作更贴近实际能解决故障的动作。相较于基于静态规则的故障自愈方法,该算法能根据数据进行自适应更新,当系统发生变更时,算法也能及时地调整特征系数。因此,LinUCB算法更加灵活高效,适用于复杂多变的云原生系统。本发明的方法不仅可以用于云原生系统中的Pod故障,还可以扩展到应用程序故障和节点故障。
进一步作为可选的实施方式,在所述将所述指标数据集输入自愈决策模型之前,所述方法还包括预先训练所述自愈决策模型,具体包括:
通过故障注入工具对所述云原生系统进行故障注入处理,得到注入故障;
根据所述注入故障对所述自愈决策模型进行模型更新处理,得到预先训练的自愈决策模型。
在本发明实施例中,利用故障注入工具Chaosblade注入故障。考虑到Pod是Kubernetes调度和扩展的基本单位,本实施例主要针对云原生系统中的Pod故障进行故障自愈。可以选取Pod磁盘空间不足、Pod CPU负载过高、Pod内存负载过高、Pod IO负载过高、Pod网络延迟过高、Pod网络丢包、Pod网络负载过高和Pod部署故障作为注入的故障类型。本发明实施例故障注入是为了训练模型,注入故障的数量由注入脚本确定的,比如说每隔10分钟注入一个故障,一共注入120个故障,则故障注入会在120个故障注入后结束。
为验证所提出的方法的有效性,本发明实施例利用Kubernetes等云原生技术搭建实验环境,并在模拟数据集和实际在线环境中验证上述方法。实验集群中共包含四台云虚拟机,分别命名为vm1、vm2、vm3和vm4,它们部署在两个物理机pm1和pm2上。每台虚拟机的配置均为4个CPU核心、8GB内存和40GB的数据盘,安装的操作系统为Ubuntu 18.04。
本发明使用AverageBenefit、AverageCost和AverageReward来作为评估不同故障自愈算法的指标。将经典的在线学习算法与传统的静态规则算法相对比,需要进行分析比对的算法如下:Random算法,用于随机选取故障自愈动作;RuleBased算法,利用预先定义的规则,当系统指标超过某一阈值时,采取特定的故障自愈动作;ε-Greedy算法,该算法以1-ε的概率选择最优动作,并且以ε的概率随机选择其他动作。当ε=1时,ε-Greedy算法等价于Random算法;UCB算法,此算法相较于ε-Greedy算法,考虑了动作选择次数的影响,并选择具有最大置信上界的动作;Thompson Sampling算法,该算法基于贝叶斯推断,通过对每个动作的价值分布进行随机采样来选择动作,更适用于不确定性问题;以及本发明实施例中LinUCB算法。首先对各个算法在微服务recommendation的Pod模拟数据集上独立运行1000次,计算不同指标的平均值,从而公平比较不同算法的表现。如图4所示,可以直观地看到不同算法在recommendation Pod模拟数据集上的表现。迭代初期,RuleBased的表现优于其他五种算法,但是LinUCB会随着迭代轮次的增加不断学习数据特征,从而优化原有的模型。在迭代轮次超过360后,LinUCB算法的表现超过RuleBased并趋于稳定。这也反映了LinUCB学习能力和泛化能力较强的优点,其可以自适应系统变化,从而取得更优的表现。
参照图5,通过观察不同算法在recommendation数据集上的故障自愈动作分布,可以发现重启是这五种算法选择最多的故障自愈动作,这是因为重启的成本最低而且修复故障的成功率最高。非上下文Bandit算法选择重启动作的比例大于LinUCB和RuleBased,均超过了80%,这是因为它们倾向于选择故障自愈表现最好的重启动作,而没有考虑到上下文信息。LinUCB和RuleBased都利用了故障发生时的上下文信息,即Pod的各类指标,因此它们的故障自愈动作更加分散。
参照图6,为了评估LinUCB和RuleBased的实际性能,本发明进行了在线实验,将基于规则的自愈方法和基于LinUCB的方法应用在实验集群的微服务应用程序OnlineBoutique中,共注入120个Pod故障,每隔1小时随机注入一种Pod故障,故障持续时间为10分钟,实验时长5天。结果显示,LinUCB在AverageBenefit的整体提升率为9.98%,在AverageReward的整体提升率为9.62%。这也表明,无论是在模拟数据集上,还是在在线环境中,LinUCB的故障自愈能力都比RuleBased好。说明在云原生系统故障自愈中应用在线学习有助于提升系统的可用性和稳定性。
另一方面,参照图7,本发明实施例还提供了一种基于在线学习的云原生系统故障自愈装置,所述装置包括:
第一模块,用于获取云原生系统的指标数据集;
第二模块,用于对所述指标数据集进行异常值检测,得到异常数据;
第三模块,用于根据所述异常数据判断所述云原生系统是否发生故障;
第四模块,用于当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;
第五模块,用于对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。
参照图8,本发明实施例还提供了一种电子设备,包括处理器802以及存储器801;所述存储器用于存储程序;所述处理器执行所述程序实现如前面所述的方法。
与图1的方法相对应,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。综上所述,本发明实施例具有以下优点:本发明利用故障发生时的上下文信息,即与Pod相关的指标,作为决策模型的输入,以提高决策的可靠性。具体来说,本发明将Pod发生故障时的CPU使用量、内存使用量和网络接受包速率等指标传入上下文多臂老虎机算法,作为每个自愈动作的特征向量,然后学习特征系数,从而进行自愈决策。这种方法比非上下文多臂老虎机算法更能准确地评估每个自愈动作的效果,因此提升了云原生系统的故障自愈能力。本发明同时具备在线学习的探索利用特点,能在利用当前最优故障自愈动作的同时探索其他动作。与基于静态规则的传统故障自愈方法相比,本发明在系统发生变更后能自适应地调整模型,更适用于复杂动态的云原生系统。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种基于在线学习的云原生系统故障自愈方法,其特征在于,所述方法包括:
获取云原生系统的指标数据集;
对所述指标数据集进行异常值检测,得到异常数据;
根据所述异常数据判断所述云原生系统是否发生故障;
当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;
对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。
2.根据权利要求1所述的方法,其特征在于,所述获取云原生系统的指标数据,包括:
在所述云原生系统中安装监控和警报系统;
通过所述监控和警报系统以时间序列数据的形式收集和存储得到所述指标数据集。
3.根据权利要求1所述的方法,其特征在于,所述对所述指标数据集进行异常值检测,得到异常数据,包括:
从所述指标数据集中选择得到分割特征,根据所述分割特征对所述指标数据集进行划分处理,得到孤立树;
根据所述孤立树对所述数据集进行孤立树检测处理,得到异常数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述异常数据判断所述云原生系统是否发生故障,包括:
当检测到多个异常数据时,确认所述云原生系统存在故障;
根据所述故障进行故障告警处理。
5.根据权利要求1所述的方法,其特征在于,所述根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理,包括:
根据所述指标数据集确定所述故障自愈动作集中每一个自愈动作的特征向量;
获取所述故障自愈动作集中每一个自愈动作的特征系数;
根据所述特征向量和所述特征系数对所述故障自愈动作集进行选择奖励计算处理,得到选择奖励集合;
根据上置信区间计算公式结合所述选择奖励集合对所述故障自愈动作集进行选择概率计算处理,选择得到自愈动作;
根据选择得到的所述自愈动作对所述云原生系统进行故障自愈处理。
6.根据权利要求1所述的方法,其特征在于,所述对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新,包括:
从所述云原生系统中获取选择动作反馈,以及与选择的所述自愈动作对应的自愈动作成本;
根据所述选择动作反馈和所述自愈动作成本进行反馈奖励计算,得到反馈奖励;
根据所述反馈奖励对所述故障自愈动作集中每一个自愈动作的特征系数进行更新,从而对所述自愈决策模型进行更新。
7.根据权利要求1所述的方法,其特征在于,在所述将所述指标数据集输入自愈决策模型之前,所述方法还包括预先训练所述自愈决策模型,具体包括:
通过故障注入工具对所述云原生系统进行故障注入处理,得到注入故障;
根据所述注入故障对所述自愈决策模型进行模型更新处理,得到预先训练的自愈决策模型。
8.一种基于在线学习的云原生系统故障自愈装置,其特征在于,所述装置包括:
第一模块,用于获取云原生系统的指标数据集;
第二模块,用于对所述指标数据集进行异常值检测,得到异常数据;
第三模块,用于根据所述异常数据判断所述云原生系统是否发生故障;
第四模块,用于当所述云原生系统发生故障时,将所述指标数据集输入自愈决策模型,根据上下文多臂老虎机算法从故障自愈动作集中选择自愈动作对所述云原生系统进行故障自愈处理;
第五模块,用于对选择的所述自愈动作进行反馈奖励计算,根据计算得到的反馈奖励对所述自愈决策模型进行更新。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述存储器用于存储程序;
所述处理器执行所述程序实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
CN202310854222.9A 2023-07-12 2023-07-12 一种基于在线学习的云原生系统故障自愈方法及装置 Pending CN116991615A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310854222.9A CN116991615A (zh) 2023-07-12 2023-07-12 一种基于在线学习的云原生系统故障自愈方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310854222.9A CN116991615A (zh) 2023-07-12 2023-07-12 一种基于在线学习的云原生系统故障自愈方法及装置

Publications (1)

Publication Number Publication Date
CN116991615A true CN116991615A (zh) 2023-11-03

Family

ID=88522373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310854222.9A Pending CN116991615A (zh) 2023-07-12 2023-07-12 一种基于在线学习的云原生系统故障自愈方法及装置

Country Status (1)

Country Link
CN (1) CN116991615A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117273392A (zh) * 2023-11-16 2023-12-22 四川省致链数字科技有限公司 家具生产决策方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117273392A (zh) * 2023-11-16 2023-12-22 四川省致链数字科技有限公司 家具生产决策方法、装置、电子设备及存储介质
CN117273392B (zh) * 2023-11-16 2024-02-09 四川省致链数字科技有限公司 家具生产决策方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10805329B2 (en) Autonomous reconfigurable virtual sensing system for cyber-attack neutralization
US11126493B2 (en) Methods and systems for autonomous cloud application operations
JP7103274B2 (ja) 検知装置及び検知プログラム
US20180082217A1 (en) Population-Based Learning With Deep Belief Networks
CN112800116B (zh) 一种业务数据的异常检测方法及装置
US11693763B2 (en) Resilient estimation for grid situational awareness
EP3183622B1 (en) Population-based learning with deep belief networks
Wu et al. Performance diagnosis in cloud microservices using deep learning
US20210097431A1 (en) Debugging and profiling of machine learning model training
US11860721B2 (en) Utilizing automatic labelling, prioritizing, and root cause analysis machine learning models and dependency graphs to determine recommendations for software products
CN113516174B (zh) 调用链异常检测方法、计算机设备以及可读存储介质
Dou et al. Pc 2 a: predicting collective contextual anomalies via lstm with deep generative model
US20230102786A1 (en) Ccontinuous knowledge graph generation using causal event graph feedback
US11874732B2 (en) Recommendations for remedial actions
CN116991615A (zh) 一种基于在线学习的云原生系统故障自愈方法及装置
CN114943321A (zh) 一种针对硬盘的故障预测方法、装置及设备
US11468365B2 (en) GPU code injection to summarize machine learning training data
CN116668083A (zh) 一种网络流量异常检测方法及系统
Wang et al. Incremental causal graph learning for online root cause analysis
CN114503132A (zh) 机器学习模型训练的调试和剖析
CN112699048B (zh) 基于人工智能的程序故障处理方法、装置、设备及存储介质
KR20080087571A (ko) 상황 예측 시스템 및 그 방법
Strasser et al. An empirical evaluation of Bayesian networks derived from fault trees
Chakraborty et al. ESRO: Experience Assisted Service Reliability against Outages
Jin et al. Anomaly-detection and health-analysis techniques for core router systems

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