分享AIOps 平台的误解,挑战及建议

Posted ABC技术研习社

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享AIOps 平台的误解,挑战及建议相关的知识,希望对你有一定的参考价值。

文章来源:来源网络

背景

概念的进化:ITOA -> AIOps -> AIOps

让我们回到2013年,著名的 Buzz word (时髦用语) 制造商 Gartner 在一份报告中提及了ITOA,当时的定义是,IT运营分析(IT Operations Analytics), 通过技术与服务手段,采集、存储、展现海量的IT运维数据,并进行有效的推理与归纳得出分析结论。

而随着时间推移,在2016年,Gartner 将ITOA 概念升级为了 AIOps,原本的含义基于算法的IT运维(Algorithmic IT Operations),即,平台利用大数据,现代的机器学习技术和其他高级分析技术,通过主动,个性化和动态的洞察力直接或间接地,持续地增强IT操作(监控,自动化和服务台)功能。 AIOps平台可以同时使用多个数据源,多种数据收集方法,实时分析技术,深层分析技术以及展示技术。

随着AI在多个领域越来越火爆,Gartner终于按捺不住了,在它的2017年年中一份报告中,顺应民意将AIOps的含义定义为了,Artificial Intelligence for IT Operations, 也就是现在大家都在说的智能运维。

在短短的不到1年时间中,伴随着AI的热炒,以及在各个领域的落地,运维界的同仁基本上把AIOps 看成是未来解决运维问题的必然方向。

个人认为,在企业内部构建AIOps,通过融合IT数据,真正打破数据烟囱,对监控,自动化,服务台进行支持,使得IT能够更好的支撑业务,利用大数据技术以及机器学习技术,回答以前很多单从业务口径,或者单从IT口径无法回答的问题。如,联通,电信,移动,电信的用户,哪种用户转化率较高。AIOps以创造商业价值为导向,对IT 运营以及业务运营产生持续洞察,为DevOps 提供持续反馈,加快企业在竞争日趋激烈市场环境中,数字化转型的步伐。

因此,Gartner 预测到2022年,大型企业中的的40%将会部署AIOps平台。

具体关于AIOps的概念,价值,Gartner 很多都已经说的很清楚,不是本文的重点,本文是根据我的理解,尝试从现实的角度,去谈AIOps 在落地过程中容易产生的误解,挑战以及一些建议。


【分享】AIOps 平台的误解,挑战及建议




AIOps 所应具备技术能力分析

个人认为,AIOps,本质上是ITOA 的升级版,让我们来看一下 Garnter 在2015年对ITOA 的所应该有的能力定义。

【分享】AIOps 平台的误解,挑战及建议



  1. ML/SPDR: 机器学习/统计模式发现与识别

  2. UTISI: 非结构化文本索引,搜索以及推断

  3. Topological Analysis: 拓扑分析

  4. Multi-dimensional Database Search and Analysis:多维数据库搜索与分析

  5. Complex Operations Event Processing: 复杂运维事件处理

然后, 我们对比一下,Gartner 对AIOps 的能力定义

  • Historical data management 历史数据管理

  • Streaming data management 流数据管理

  • Log data ingestion 日志数据整合

  • Wire data ingestion 网络数据整合

  • Metric data ingestion 指标数据整合

  • Document text ingestion 文本数据整合

  • Automated pattern discovery and prediction 自动化模式发现和预测

  • Anomaly detection 异常检测

  • Root cause determination 根因分析

  • On-premises delivery 提供私有化部署

  • Software as a service 提供SaaS服务

除去最后两个的交付方式,对比下来,我认为AIOps 比起原来的ITOA 有以下的进化:

强调历史数据的管理:

允许采集,索引和持续存储日志数据,网络数据,指标以及文档数据,数据大部分是非结构化或者半结构化的,而且数据量累积速度很快,格式多样,非常符合大数据的特征。总所周知,在新一轮以CNN , RNN 算法为代表的算法中,都需要大量有标准的数据来进行训练,因此, 对历史数据的管理,成了智能运维的第一重点。

强调实时的流数据管理:

以Kafka Streams,Flink,Storm,Spark Streaming 为代表的流计算处理技术,已经成为了各大数据平台的必备组件,而面对IT 数据中海量的实时流式数据,某些场景里头,在数据进行持久化前,进行实时分析,查询,集合,处理,降低数据库(SQL or Nosql)的负载,成为了非常合理且常规的选择,因此AIOps平台中,含有数据流,非常合理。

强调多种数据源的整合:

我认为,这个是AIOps平台最大的价值点,因为Gartner第一次将多种数据源整合的能力,带入了ITOM 管理的领域,我们搞运维监控那么多年,终于第一次可以以大数据的视角,数据驱动的视角,去思考运维监控这个传统的行当。



Gartner 这里提及到了四种数据,Log Data, Wire Data, Metirc data,Document text。 这样的分类,我是个人持有保留意见,感觉很奇怪,特别是 Document text 的那块,需要用到NLP,主要是用于打通ITSM 产品,分析ITSM 工单。我对这个场景存在必要性,以及实现的ROI 表示怀疑。具体原因我可能稍后会写一篇文章,进行更详细的解释。

我认为,如果从宏观的类型来划分,应该这样划分 (下含部分我司产品介绍)

机器数据(Machine Data):是IT系统自己产生的数据,包括客户端、服务器、网络设备、安全设备、应用程序、传感器产生的日志,及 SNMP、WMI,监控脚本等时间序列事件数据(含CPU 内存变化的程度),这些数据都带有时间戳。这里要强调, Machine Data 不等于Log Data ,因为指标数据包含。在通常的业界实践中,这些数据通常通过运行在主机上的一个Agent程序,如LogStash, File beat,Zabbix agent 等获得,如果我们的LogInsight,Server Insight 产品,就是面向此类型数据。

网络数据(Wire Data): 系统之间2~7层网络通信协议的数据,可通过网络端口镜像流量,进行深度包检测 DPI(Deep Packet Inspection)、包头取样 Netflow 等技术分析。一个10Gbps端口一天产生的数据可达100TB,包含的信息非常多,但一些性能、安全、业务分析的数据未必通过网络传输,一些事件的发生也未被触发网络通信,从而无法获得。我司的Network Insight 主要面向的是这些数据,提供关键应用的 7 x 24 小时全方位视图。

代理数据(Agent Data): 是在 .NET、php、Java 字节码里插入代理程序,从字节码里统计函数调用、堆栈使用等信息,从而进行代码级别的监控。我司的Application Insight主要是解决这个问题而诞生,能获得真正用户体验数据以及应用性能指标。

探针数据(Probe Data):也就是所谓的拨测,是模拟用户请求,对系统进行检测获得的数据,如 ICMP ping、HTTP GET等,能够从不同地点模拟客户端发起,进行包括网络和服务器的端到端全路径检测,及时发现问题。 我司的Cloud Test,Cloud Performance Test 主要是产出这些数据的,CT的产品能从遍布全球的拨测点,对网站的可用性进行全天候的分布式监控。其中我们的CPT 给你带来从数百到数百万完全弹性的压力测试能力,获得应用在高压力的情况下的性能表现情况。

因为IT 监控技术发展实在是太庞杂,以上的划分不一定对,但是应该没有显著的遗漏。

但如果从微观技术的角度来看,不考虑数据的来源,只考虑数据本身的属性特点,我们可以这样划分:

指标数据( Metrics Data )

描述具体某个对象某个时间点这个就不用多说了, CPU 百分比等等,指标数据等等

日志数据 ( Logging Data )

描述某个对象的是离散的事情,例如有个应用出错,抛出了NullPointerExcepction,个人认为Logging Data 大约等同于 Event Data,所以告警信息在我认为,也是一种Logging Data。


调用链数据( Tracing Data ):

Tracing Data这词貌似现在还没有一个权威的翻译范式,有人翻译成跟踪数据,有人翻译成调用数据,我尽量用Tracing 这个词。 Tracing的特点就是,它在单次请求的范围内,处理信息。 任何的数据、元数据信息都被绑定到系统中的单个事务上。 例如:一次调用远程服务的RPC执行过程;一次实际的SQL查询语句;一次HTTP请求的业务性ID。 通过对Tracing 信息进行还原,我们可以得到调用链 Call Chain 调用链,或者是 Call Tree 调用数。



【分享】AIOps 平台的误解,挑战及建议
官方OpenTracing 中的Call Tree例子。

在实践的过程中,很多的日志,都会有流水号,Trace ID, span ID, ChildOf, FollowsFrom 等相关的信息,如果通过技术手段,将其串联在一起,也可以将这些日志视为Tracing 。

Tracing信息越来越被重视,因为在一个分布式环境中,进行故障定位,Tracing Data 是必不可少的。

由于Tracing 相对于Logging 以及 Metircs 相对比较复杂一点,想深入了解的话,可以参考 :

《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》 http://bigbully.github.io/Dapper-translation/

Opentracing 的技术规范文档 https://github.com/opentracing/specification  如果我们将以上数据类型做成一个矩阵看看,我们可以得到这样一个表格,比较好的说清楚了相关关系。

举例就是,我们的Server Insight 基础监控产品,能采集及处理指标数据,及日志,但是基础监控产品,不会处理Tracing Data,而我们的Application Insight 产品能从JVM 虚拟机中,通过插码,获得应用的响应时间(Metris),Java异常( Logging ),应用间的调用拓扑关系,以及调用的响应时间(Tracing)。


【分享】AIOps 平台的误解,挑战及建议





【分享】AIOps 平台的误解,挑战及建议
我司AI 平台应用拓扑截图


回到Garnert 的AIOps 能力定义, 居然没有把 Tracing Data 纳入到数据整合的范围之中,个人认为不太合理,因为要去做根因分析,如果不知道服务和指标之间的关联关系,其实是比较难做到故障的根本定位的。

算法部分

其实可以看到,Gartner 在ITOA 定义的算法部分,如模式发现,机器学习等技术定义,都被比较顺滑的过渡到AIOPS 中来,一个方面可以看出Gartner 在定义ITOA 的时候有足够的前瞻性,另外一个方面可以看到,相关的算法问题,解决及演进的速度,是相对于基础大数据架构相对要慢上不少。

小结

AIOPS 概念与 ITOA 概念相比,在大数据技术部分进行了更细,更有指导性的阐述,所以我认为,AIOps 首先是大数据,然后才是算法。

误解:

AIOps 等于可以减少人力资源的投入

  • AIOps 不等于无人值守

  • AIOps 不等于 NoOps

  • AIOps 不等于可以减少人专家的参与

  • AIOps 可以降低人力成本

  • AIOps 在现阶段不等于可以省钱

AI 的确是一个非常性感的词汇,大家认为只要实现了智能化,就能够轻轻松松,不需要人的干预,这当然是一个非常理想的状况,但是,在短时间内,这个不能实现。这个的实现难度,个人认为,与自动无人驾驶,能实现第五等级是同样的难度,也就说,可能起码需要10年左右的时间,甚至可能更长时间。

AIOps平台本质上还是一个工具,在构建后,仍然需要人的参与,而且在目前的探索发展的投入阶段,有大量的工需要去做,需要运维专家,大数据工程师,算法科学家,业务专家,暂时看不到能削减人力成本的可能性,而且相关的投入可能需要多年的时间。

在平台建立后,在持续改进的情况下,仍然需要专家或者分析师,从不同的维度,从不同的业务口径,组合合适的可视化技术,机器学习技术,大数据分析技术,制定分析场景,平台才能够为IT运维,业务分析产生持续的洞察,提供商业价值。

所以,AIOps 不能取代人,在现阶段不可能减少人力投入,但在未来可能能促进部分运维人员转型为通晓业务,掌握运维知识的数据分析师。

算法和智能化是AIOps最重要的事情

算法很重要,但是我个人认为,在此阶段,大部分企业不应该以算法为第一着眼点。

这个应该是比较有争议,或者,或者说大家认知不太一致的部分。以下这张图是Gartnert 在 AIOps还在叫ITOA 时候,给定义的四个阶段:

  1. Data ingestion, indexing, storage and access

  2. Visualization and basic statistical summary

  3. Pattern discovery and anomaly detection

  4. True causal path discovery

Gartner 在报告中强调,掌握后面阶段的前提是拥有前一阶段的能力,如果不拥有充分的前一阶段能力,将会影响ITOA 的落地效果。因此这四个阶段必须一个步一脚印,第三以及第四部时,才显著地引入了机器算法,或者AI的必要。

大家都知道,所谓的机器学习算法,统计算法,深度学习算法这些AI 的分类,其实是高度依赖于数据的。没有多种数据源,数据的采集,数据存储,数据统计,数据可视化,一切都只是空中楼梯。


【分享】AIOps 平台的误解,挑战及建议

来源: Gartner Report “Organizations Must Sequentially Implement the Four Phases of ITOA to Maximize Investment ” 2015.2.18

因此,AIOps的平台的建设首先应该是着眼点应该是大数据,然后才是算法,从而实现持续洞察和改进的目标。

一定要上深度学习才叫AIOps

我们可以先看看AI , Machine Learning , Deep Learning 的关系,他们的关系大概如下图。


【分享】AIOps 平台的误解,挑战及建议



学术界有不少学者,在探索部分深度学习算法智能运维中的应用,如犹他州大学的《DeepLog: Anomaly Detection and Diagnosis from System Logs through Deep Learning》 中利用 Long Short-Term Memory (LSTM)来实现日志模式的发现,从而实现异常检测。但是,其实智能运维所需要的大部分算法,决策树学习(decision tree learning)、聚类(clustering)、SVM(Support Vector Machine)和贝叶斯网络(Bayesian networks)等等算法,均是属于传统的机器学习范畴的,因此 我们不应该将深度学习与AIOps 挂上必然的联系。

甚至于,我们不用拘泥于概念,从解决问题的角度出发,在特定的场景,利用传统的规则集,设定一些规则,降低了运维人员的工作强度,提高了效率,也能叫智能运维。甚至在Gartner 的报告中,对AIOps 落地的第一步,是统计分析,可视化,而不是任何的机器学习算法。


它适合现阶段所有有规模的用户

这个比较好理解,就目前来看,AIOps 只适合大型的客户,原因如下:

  1. 中小型的客户缺乏多种数据源

  2. 中小型客户业务需求没有那么复杂

  3. 很多算法,其实是为了大规模运维的时候才用的上的,在规模小的时候,难以产生效果


运维自动化是智能运维的前提

我看到过不少的文章,将运维分成了四个阶段,将自动化运维放在智能运维的前一个阶段,把智能,又或者在智能运维这个体系里头,硬是塞了很多自动化运维,批量操作,批量规划的功能在里头,我觉得都是不对的。自动化运维更像是手,智能运维更像是眼镜及大脑,有了更全面数据,更充满的分析后,大脑能更好的指挥手进行操作。


【分享】AIOps 平台的误解,挑战及建议



因此,企业应该将自动化运维和智能化运维看成了两个有关联的体系,但是不应该混一谈,造成更多的误解。

挑战

挑战1:超越当前技术水平的期望

以下是其中一例,当用户期望超越当前技术水平的一个典型的例子,车毁人亡。


【分享】AIOps 平台的误解,挑战及建议



美国加州湾区高速上的一起致命车祸,。一辆价值$79,500的Tesla Model X,在行驶至山景城段101和85高速交界时,突然撞上隔离带,随后爆炸起火。

对此,遇难华裔司机的遗孀Sevonne Huang(下文简称Sevonne)首次公开发声透露,丈夫生前曾抱怨过,特斯拉的自动导航仪,好几次让车子开向冲上防撞栏。Sevonne说,将起诉特斯拉。

自动驾驶的安全性问题,再次把特斯拉推到风口浪尖上。然而事后,虽然特斯拉发声明称,抱歉发生这样的悲剧,但同时也将责任指向了死者,“车辆再三发出警告,提醒司机操控车子,但事发前,司机并没有把手放在方向盘上。自动驾驶仪并不能避免任何事故。”

司机对于特斯拉的AutoPilot 过度相信,最终导致了悲剧了发生。

虽然目前的智能运维,所造成的结果可能不会那么严重,但是按照Gartner 技术成熟度曲线来看,AIOps 还处于非常初期的阶段(左下角),超越现阶段的期望,是AIOps最大的风险。


【分享】AIOps 平台的误解,挑战及建议



中国的企业用户往往有大而全的建设方案,如何从企业的实际情况出发,制定节奏合适的规划,我认为是一个很大的挑战。

挑战2:算法应用场景分散,成熟度不一致,通用性差,产品化,工程化困难,大部分场景距离实际应用有一定的距离

从目前来看,大家期望利用算法解决的场景包括:

  • 单指标异常检测

  • 多指标异常检测

  • 日志模式异常检测(参照 Log Compare)

  • 故障根因分析

  • 容量预估

  • 告警智能压缩 (基于根因,基于事件日志模式)

  • 故障预测(较为常用的场景为硬盘的故障定位)

  • 基于知识图谱(运维经验)故障定位

以上的每个智能场景,每个场景所需要用到的算法都不一样,而且成熟度也不一样。

以最为简单,但应用最为广泛,成熟度最高的单指标异常检测来举例,从学术的角度来看,如果你到Google里头去搜索,你会发现有大约60000多条的记录,时间跨度从上世纪90年代到几天前的都会有。

从商业化的角度来看,目前从我看到,比较成熟的也只有Elastic公司所收购的 Prelert 的异常检测技术,是产品化的比较好的,普通的用户是容易理解,容易使用的。


【分享】AIOps 平台的误解,挑战及建议



这已经是30年来,集合了那么多顶尖的智慧,所能达到的产品化程度最高,通用性最强的场景了。其他的场景,成熟度,或者通用性肯定是不如本场景。

例如故障预测,目前比较好的案例是预测硬盘故障,前提是你拥有大量同样型号,相同批次的硬盘,其中某一些硬盘出故障了,从S.M.A.R.T 信息中,你才能够获得训练集,然后利用模型去预测同一个批次的故障。这种前置条件,通常只会在特定的用户,例如腾讯,百度的数据中心,一次性购置上千块的,才能出现1到15块的故障硬盘 (据统计,硬盘的故障率在0.1%~1.5% 左右),而且就算有用户根据硬盘的情况,训练好的模型因为每个用户的机房,电压,温度都不一样,很可能没有办法进行复现,因此,此场景通用性极差。

如果要将用于预测硬盘故障的算法,用到某一个IT业务系统之上故障上,基本上也是不可能的,因为一个系统,相应的参数,变量,可能影响系统平稳运行因子太多,已经是没有办法套用到预测硬盘故障的算法里头来了。

还有,部分的算法,在实验室中的效果非常好,准确率和召回率都很高,但是,消耗资源巨大,实时性差,没有办法投入真正的生产使用的可能性。

因此,在算法上,我们应该先去落地成熟,ROI显著的场景。

挑战3:现有运维监控体系没有完善

在无人驾驶技术领域,最核心的一个组件是LiDar(激光雷达),一种运用雷达原理,采用光和激光作为主要传感器的汽车视觉系统,LiDAR传感器赋予了自动驾驶汽车能够看到周边环境的“双眼”。

世界上,几乎所有的汽车厂商( Tesla 除外,Tesla 用的是通过摄像头而实现视觉识别技术,所以我个人高度怀疑特斯拉的事故与此有关)在研发无人驾驶技术的时候,都会给车辆安装上激光雷达。

而类比到运维的场景,如果眼睛不够,数据不足,事情看不清楚,其实是很难做到明确的决策的,具体表现如下:

  • 缺乏足够的数据源: 有的客户,没有日志管理系统,也没有任何业务监控的手段,只有CPU 内存,硬盘等基础监控,这个时候,其实我个人上是不建议在现阶段做AIOps的,因为AIOps

  • 监控指标深度,专业华程度不够: 这个问题很多时候反应的数据库监控上,由于数据库专业化程度较高,因此对数据库的很多关键的指标未能识别,导致了关键信息的遗漏,可能会大大影响AIOps 的落地效果。

  • 配置管理不完善: CMDB 缺乏维护, 无法获取系统间关系的描述,拓扑依赖,相关运维监控数据元数据缺乏管理,都会降低落地效果,特别是在故障根因定位中,缺乏关系描述所形成的有向无环图,就很难利用传播关系算法去帮助定位根因。当然,这个可以通过由APM ,或者NPM 工具,所生成的应用拓扑去部分弥补。

挑战4:大数据基础复杂,性能及多样性要求高,元数据管理

整个AIOps 平台最核心数据平台的部分,是要满足以下的需求:

  • 高吞吐量,能实时处理海量,不同类型的数据(Metrics , Logging , Tracing)

  • 具备强大的流式计算能力

  • 数据在插入后,能被准实时的检索,聚合

  • 数据变化多样,会不停地新增动态列,数据存储模型随时会改变

  • 超高的分析聚合计算性能,需要提供多维列式数据库的分析能力

  • 提供强大的实时搜索分析能力,可以通过关键字对事件信息进行检索

  • 具备一种或多种的数据查询DSL,便于实现不同的分析场景

  • 具备历史数据和近线数据的分别处理的能力

  • 数据存储能对接到多种的ML框架中,作为数据源,训练模型

  • 数据要能实现上卷预聚合,在进行长时间范围聚合的时候,如月报等逻辑时,可以节约计算时间

  • 大的查询进入到平台,平台要有自我保护机制,不会造成故障

  • 良好的元数据管理的能力,包括如果从那么多数据中,按照模型还原相应的指标,以及指标间的关联关系

  • 能够与在线的算法模块进行集成

以上的描述,都是AIOps 的数据能力要求,往往需要多个大数据处理,存储组件,才能满足这种苛刻的要求,而且还需要无缝的整合起来,相应的工程技术难度非常大。

挑战5:人才匮乏

目前在国内,无论是算法人才,还是大数据人才,都是比较匮乏的及昂贵的,在人才招募,项目预算制定的时候,要充分考虑相关因素。

从人才的意愿来看,大部分的算法工程师及大数据工程师,更愿意去参与一些离变现比较容易的场景,如推荐系统,视觉识别系统等,如何吸引更多的人才,特别是算法科学家等,让他们感兴趣,加入到AIOps的场景中来,也同时获得较好的经济回报,是整个业界需要考虑的地方。

建议

  • 企业结合自身的情况,合理控制期望,分阶段进行演进,查漏补缺

  • 建立一个完整的运维数据大数据体系是项目运维的关键,也是为智能化打下良好的基础

  • 以将整合指标数据、日志数据作为切入点,落地逐步整合更多的数据源,产生更大的收益

  • 智能化部分的落地场景优先聚焦在监控的异常检测,以及日志的智能聚类

  • 立足运维,面向业务,将Operation的含义演绎为运营,为业务提供商业价值

总结

AIOps 的确是一个非常革命性的概念框架,它从大数据和AI 的能力视角,去颠覆或者完善现在的 ITOM 运维体系,给学术界,工业界,最终用户,指明了一个明确,可持续高速发展5-10年的发展方向。可以预计,在未来5-10年内,大量关于AIOps 的新思想,新理论,新技术,将会像寒武纪生命大爆炸时,不断的涌现,创新源源不断,作为业界工作者,作为企业,作为厂商,如何在这次的周期中抓住属于自己的机会,这是一个很值得思考的命题。

AIOps 让运维部门一下成了公司层面拥有数据最多的部门,运维人如何自身进化,从运维到运营,对大部分运维人来说,都是一个巨大的机会及挑战。

虽然AIOps的确给我们带来很多的想象空间,但是我们还是要以实际落地,实际帮助企业产生效率为导向,要避免跳入AI 过热的炒作风,一步一脚印,直面挑战,持续演进,不断吸收世界先进的经验及思想,从而迎接未来这10年的黄金时代。


内容来源:来源网络


【分享】AIOps 平台的误解,挑战及建议
【分享】AIOps 平台的误解,挑战及建议


以上是关于分享AIOps 平台的误解,挑战及建议的主要内容,如果未能解决你的问题,请参考以下文章

AIOps背景/所应具备技术能力分析(上)

AIOps对监控报警架构的挑战

AIOps 对监控报警架构的挑战

先行者:如何设计AIOps平台的架构?|活动通知

“2020国际AIOps挑战赛线上启动会”定于3月21日举行

荐读!微博大规模分布式 AIOps 系统探索与实践