当前位置: 首页 > news >正文

华为大咖说 | 浅谈智能运维技术

本文分享自华为云社区:华为大咖说 | 浅谈智能运维技术-云社区-华为云

本文作者:李文轩 ( 华为智能运维专家 )

全文约2695字,阅读约需8分钟


在大数据、人工智能等新兴技术的加持下,智能运维(AIOps,Artificial Intelligence for IT Operations)成为了高效管控物理设备、定位故障信息,快速迭代需求变更等新时代运维场景下不可或缺的解决方案,加强智能制造和智能服务已经写入“十四五”规划专栏。然而,面向存储领域的智能运维在华为,以及业界仍处于探索并快速发展阶段。

本文主要结合学术界的研究方向,探讨当前智能运维(AIOps)技术面临的挑战及各种方案的优劣,并提出自己对存储领域未来智能运维(AIOps)发展的一点看法,同大家一起探讨。

PART 01

智能运维发展方向及现状

传统运维(DevOps)的痛点在于依赖工程师花费大量时间归拢和梳理各个数据源的信息,结合对架构和代码的理解,逐步缩小问题范围,最终找到问题根因。然而,对于运维而言,时间是最贵的奢侈品,如果让计算机解决自动化计算,客观分析的繁琐任务,会极大地提高运维的效率,智能运维(AIOps)显然就带来了一种非常好的解决方案。

图1 AIOps分类[1]

智能运维(AIOps)面向问题可以划分为故障管理(Failure Management)和资源调度(Resource Provisioning)两大类。

故障管理主要是用于处理IT设备中告警乃至错误的场景,包含预防、预测、检测、根因分析和恢复;通过预防、恢复和提前预警,提高了整个设备的可用性和可靠性;资源调度的范围涉及更加广泛,包含资源整合,调度,电源管理、服务组合和负载预测,资源调度提高了设备的可观测性和总体性能。

总的来说,智能运维(AIOps)是一个非常广泛的概念,即通过结合人工智能技术和运维,增强人工解决问题和通过系统解决问题的能力。[2]

图2 AIOps论文在宏观领域和类别上的分布[3]

Notaro等学者收集了超过一千篇有关智能运维(AIOps)的论文,并对智能运维(AIOps)的各个分类下的论文数量进行了统计,如图2所示。显然,故障管理是所有智能运维(AIOps)相关论文中数量最多的分类,占据了超过一半(670篇,62.1%)的论文数量。在细分类中,故障检测(failure detection)、故障预测(failure prediction)和根因分析(root cause analysis)成为故障管理方向的主要热点

PART 02

智能运维(AIOps)的主要方法

 如前所述,智能运维(AIOps)是一个广泛的概念,涉及到解决不同的运维问题时会引入新的方法和模型。因此,本文将基于几篇论文,介绍部分典型的方法,并探讨目前智能运维(AIOps)所面临的问题。

1)基于日志日志信息是故障管理中常用的优质数据源,基于日志建模和分析是故障管理比较常见的方法。

2) 基于时序数据:通过建模分析IT设备运行过程中产生的时序数据,如带宽、时延等,检验或者预测是否存在数据异常,在故障检测,故障预测以及资源规划中都是常见的手段。

时间序列分析的一个困难就是如何从时间序列中提取关键特征,虽然深度学习的模型有很好的效果,但是可解释性较差。因此,有论文[4]提出了一种新的方法,通过提取时间感知的shapelets(一种时间序列特征提取方法)构造一个shapelets演化图,运用图嵌入算法DeepWalk(一种基于图的无监督特征学习方法)计算每个时间片段,该时间片段就可以表达各种下游任务,用于故障检测,该方法在多个开源数据集上均取得了较高的准确率。

除此以外,时序数据噪声大,数据量大也是在线分析的难点。有学者建议[5]结合离线和在线训练,采用基础的DBSCAN(一个比较有代表性的基于密度的聚类算法)算法对KPI(Key Performance Indicator 关键性能指标)进行聚类,把时间序列进行分类,在在线分析时,不同的类使用不同的检测模型来进行异常检测,训练时间相较于基线训练时间减少90%,效果(F-score)仅下降15%。

这类方法的有效性高度依赖于数据的质量,数据中的噪声可能对最终结果产生影响,方法总体的准确率并不高,且分析效率较低。因此业界在实现这类方法时,通常会使用用户自身的历史数据进行构建,或者直接从数据库服务中调用。总的来说,这类方法需要大量且高质量的数据和范式,以及适当的数据模型。

3) 基于代码:基于代码的分析是一种常用的根因分析及故障预防的手段。其核心思路是通过建模分析识别代码中的潜在问题,提高问题定位效率。这种方法不仅适用于智能运维(AIOps),而且在开发测试过程中也会有很大的收益。其中,有文章提及[6]通过解析程序二进制文件,构建静态依赖图(SDG, Static Dependency Graph),分析因果相关事件之间的关系,并过滤影响性较小的因素,在性能问题快速定位上具有较好的效果。

这类方法的局限性在于构建因果关系和分析需要耗费大量的时间,且很难存在一种方法可以适应所有场景的解决方案,适用于所有问题。

PART 03

总结和未来

智能运维(AIOps)是一个相对年轻,远非成熟的技术,它面临的挑战主要有以下几个方面:

首先,为了更快、更准确地发现潜在的SLA(Service-Level Agreement,服务水平协议)违规问题,它需要不断整合其他研究领域的成果,并引入新的建模技术

其次,数据质量问题也是智能运维(AIOps)发展的关键挑战,现网IT设备运行过程中大量的监控数据中并不是都是有效的,一旦脏数据对结果产生影响,就会导致性能下降甚至服务复位,从而增加额外的成本(比如存储领域误判故障盘,慢盘等)。

最后,找到合适的智能运维(AIOps)应用场景,需要对业务有深入理解,且构造合适的建模方法比较困难。智能运维(AIOps)的用例分析和识别是整个IT运营环境中的挑战和机遇,如果没有准确识别潜在的问题,那么采用智能运维(AIOps)可能不会有收益。

智能运维(AIOps)在存储领域上已经得到了一定的应用,并较好地提高了存储设备的可靠性和可观测性,例如波动检测和器件故障的预测。

未来,存储领域的智能运维具备着广阔发展前景,例如文中利用LLM(大语言模型)进行根因分析或许准确率并不高,但是利用类似的方法可以制作一个运维对话机器人,提高运维的效率,在移动端远程运维智能场景会有很多的应用空间。

此外,在可观测性上, 智能运维(AIOps)大有发展空间,构造完整的告警视图,智能地根据告警的不同场景提供该告警所需的更全面的指标、告警、变更、日志相关数据,供运维工程师在一个视图下完成对告警的综合分析、响应和处置操作。更进一步地,打造一体化的“统一运维平台”,自主配置自动化告警处理方式,通过特定的场景将指标,日志,变更,告警等数据组合在一起来帮助减少告警噪音、增强告警处理效率、提供运维人员更多的告警上下文。

尽管不存在任何一个解决方案可以永久性地解决所有问题,但智能运维(AIOps)会给整个运维产业带来新的进化


参考文献

[1] Rijal L, Colomo-Palacios R, Sánchez-Gordón M. Aiops: A multivocal literature review[J]. Artificial Intelligence for Cloud and Edge Computing, 2022: 31-50.

[2] what is aiops (2023) redhat. Available at: https://www.redhat.com/zh/topics/ai/what-is-aiops (Accessed: 2023).

[3] Notaro P, Cardoso J, Gerndt M. A systematic mapping study in AIOps[C]//International Conference on Service-Oriented Computing. Cham: Springer International Publishing, 2020: 110-123.

[4] Cheng Z, Yang Y, Wang W, et al. Time2graph: Revisiting time series modeling with dynamic shapelets[C]//Proceedings of the AAAI conference on artificial intelligence. 2020, 34(04): 3617-3624.

[5] Li Z, Zhao Y, Liu R, et al. Robust and rapid clustering of kpis for large-scale anomaly detection[C]//2018 IEEE/ACM 26th International Symposium on Quality of Service (IWQoS). IEEE, 2018: 1-10.

[6] Ren X J, Wang S, Jin Z, et al. Relational Debugging---Pinpointing Root Causes of Performance Problems[C]//17th USENIX Symposium on Operating Systems Design and Implementation (OSDI 23). 2023: 65-80.

相关文章:

华为大咖说 | 浅谈智能运维技术

本文分享自华为云社区:华为大咖说 | 浅谈智能运维技术-云社区-华为云 本文作者:李文轩 ( 华为智能运维专家 ) 全文约2695字,阅读约需8分钟 在大数据、人工智能等新兴技术的加持下,智能运维(AI…...

creo toolkit二次开发学习之获取任意选择模型作为元件,并进行获取约束等

获取任意选择模型作为元件进行操作前,先了解组件路径和程序集的构成:creo toolkit二次开发学习之程序集(ProAsmcomp)和装配体组件路径对象(ProAsmcomppath)-CSDN博客 代码如下 ProError test1() {ProError…...

sanitize-html 防止 XSS(跨站脚本攻击)

sanitize-html 是一个用于清理和验证 HTML 的 JavaScript 库,主要用于防止 XSS(跨站脚本攻击)。它允许你定义一套规则来决定哪些 HTML 标签和属性是可以被信任的,从而确保用户输入的内容不会包含潜在的恶意代码。 主要功能 HTML…...

【JavaEE】文件io

目录 文件类型 File概述 属性 构造方法 常用方法 Reader Writer InputStream OutputStream 字节流转字符流 通过Scanner读取InputStream 通过PrintWriter转换outputstream 示例 文件类型 从编程的角度看,文件类型主要就是两大类 文本(文…...

FlinkPipelineComposer 详解

FlinkPipelineComposer 详解 原文 背景 在flink-cdc 3.0中引入了pipeline机制,提供了除Datastream api/flink sql以外的一种方式定义flink 任务 通过提供一个yaml文件,描述source sink transform等主要信息 由FlinkPipelineComposer解析&#xff0c…...

蓝桥杯-洛谷刷题-day2(C++)

目录 1.小写字母与大写字母的转换 2.使用string(额外开一章持续补充) i.访问字符串最后一位 3.保留N位小数输出 i.C侧 ii.C语言侧 iii.总结 4.高精度相加 i.各种数据类型转字符型 ii.三元运算符 iii.循环条件中的carry 1.小写字母与大写字母的…...

16008.行为树(五)-自定义数据指针在黑板中的传递

文章目录 1.1 背景1.2 xml文件定义1.3 代码实现1.3 执行结果1.1 背景 自定义数据结构指针,通过黑板的形式,在树的节点中进行指针的传递。 1.2 xml文件定义 xhome@ubuntu:~/opt/groot_pro$ cat unit_t1.xml<?xml version="1.0" encoding="UTF-8"?&…...

javascript Vue

DOM对象 什么是DOM DOM(Document Object Model)&#xff1a;文档对象模型&#xff0c;就是Javascript将HTML文档的各个组成部分封装为对象&#xff0c;通过修改HTML元素的内容和样式动态改变页面。 如何获取DOM对象 获取DOM中的元素对象&#xff08;Element对象/标签&…...

《揭秘观察者模式:作用与使用场景全解析》

在软件开发的世界中&#xff0c;设计模式就像是建筑师手中的蓝图&#xff0c;指导着软件系统的构建。其中&#xff0c;观察者模式是一种极为重要且广泛应用的设计模式。今天&#xff0c;我们就来深入探讨一下观察者模式的作用和使用场景。 一、观察者模式是什么&#xff1f; …...

【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题

前言 qt、qml项目经常会涉及访问MySQL数据库、网络服务器&#xff0c;并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据&#xff0c;如果网络不通&#xff0c;卡个几十秒&#xff0c;会让用户觉得非常的不爽&#xff0c;本文从技术调研的角度讲解解决此类问…...

下划线命名json数组转java对象

/*** 将驼峰式命名的字符串转换为下划线方式* @param camelCase* @return*/ private static String toUnderlineCase(String camelCase) {return StrUtil.toUnderlineCase(camelCase); }/*** 下划线-赋值给-驼峰* @param source 源数据* @param target 目标数据*/ public stati…...

实测运行容器化Nginx服务器

文章目录 前言一、拉取Nginx镜像二、创建挂载目录三、运行容器化Nginx服务器四、访问网页测试 总结 前言 运行容器化Nginx服务器&#xff0c;首先确保正确安装docker&#xff0c;并且已启动运行&#xff0c;具体安装docker方法见笔者前面的博文《OpenEuler 下 Docker 安装、配…...

显示器接口种类 | 附图片

显示器接口类型主要包括VGA、DVI、HDMI、DP和USB Type-C等。 VGA、DVI、HDMI、DP和USB Type-C 1. 观察 VGA接口:15针 DP接口&#xff1a;在DP接口旁&#xff0c;都有一个“D”型的标志。 电脑主机&#xff1a;DP(D) 显示器&#xff1a;VGA(15针) Ref https://cloud.tenc…...

C++初阶——list

一、什么是list list是一个可以在序列的任意位置进行插入和删除的容器&#xff0c;并且可以进行双向迭代。list的底层是一个双向链表&#xff0c;双向链表可以将它们包含的每个元素存储在不同且不相关的存储位置。通过将每个元素与前一个元素的链接和后一个元素的链接关联起来&…...

软件设计师-排序算法

冒泡排序 每一趟冒泡排序&#xff0c;从第0个元素开始&#xff0c;和后面的元素比较&#xff0c;如果大于就交换&#xff0c;否则不变&#xff0c;每次冒泡可以把最大的元素放到最后一个&#xff0c;第一次冒泡的终点是n-1,第二趟的是n-2,直到最后剩下一个元素。时间复杂度O(n…...

即插即用篇 | YOLOv8 引入 代理注意力 AgentAttention

Transformer模型中的注意力模块是其核心组成部分。虽然全局注意力机制具有很强的表达能力,但其高昂的计算成本限制了在各种场景中的应用。本文提出了一种新的注意力范式,称为“代理注意力”(Agent Attention),以在计算效率和表示能力之间取得平衡。代理注意力使用四元组(Q…...

020_Servlet_Mysql学生选课系统(新版)_lwplus87

摘 要 随着在校大学生人数的不断增加&#xff0c;教务系统的数据量也不断的上涨。针对学生选课这一环节&#xff0c;本系统从学生网上自主选课以及课程发布两个大方面进行了设计&#xff0c;基本实现了学生的在线信息查询、选课功能以及教师对课程信息发布的管理等功能&…...

LabVIEW导入并显示CAD DXF文件图形 程序见附件

LabVIEW导入并显示CAD DXF文件图形 程序见附件 LabVIEW导入并显示CAD DXF文件图形 程序见附件 - 北京瀚文网星科技有限公司 LabVIEW广泛应用于自动化、数据采集、图形显示等领域。对于涉及CAD图形的应用&#xff0c;LabVIEW也提供了一些方法来导入和显示CAD DXF文件&#x…...

《云原生安全攻防》-- K8s安全防护思路

从本节课程开始&#xff0c;我们将正式进入防护篇。通过深入理解K8s提供的多种安全机制&#xff0c;从防守者的角度&#xff0c;运用K8s的安全最佳实践来保障K8s集群的安全。 在这个课程中&#xff0c;我们将学习以下内容&#xff1a; K8s安全防护思路&#xff1a;掌握K8s自身提…...

鸿蒙系统的发展及开发者机遇

鸿蒙系统&#xff08;HarmonyOS&#xff09;凭借其分布式架构和跨设备协同能力&#xff0c;展现出强大的发展潜力&#xff0c;在智能手机、智能穿戴、车载、家居等行业领域应用日益广泛&#xff0c;已逐渐形成与安卓、iOS 三足鼎立的市场格局。 开发者面临的挑战 1. 技术适应与…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...