摘要:ICT应用的普及让系统越来越复杂,管理运维的责任不断增大,成本和难度也日益攀升,逐渐解放人力和增加管理运维的智能化成为大趋势。
我们生活在一个数字化的时代,随着企业数字化转型的深入,社会、生活、工作以及金融、交通、 通信、物联网等各行各业的业务对信息通信系统的依赖程度越来越高。近些年,因系统出现故障导致对外服务受影响的案例屡见不鲜。比如,2019年3月20日,淘宝突现大范围故障和崩溃导致无法用户查看订单和网购;2020年6月3日,苹果 iCloud 云服务出现故障,导致用户在登录账户、iCloud 邮箱以及访问 iCloud.com 网页版应用程序时出错。所以保障信息系统稳定、可靠、高效运转,离不开好的管理运维,管理运维逐渐成为数字化企业一个基础设施级别的技术。
云计算、SDN、容器化、大数据等新技术的发展和应用推动ICT进入新的阶段,同时也使得ICT系统越来越精细、复杂,对其进行管理运维的难度越来越高。与此同时,用户对业务体验的要求并没有降级甚至日益挑剔。在当前运维仍大量依赖人力决策的情况下,发生故障时,面对大量监控数据和复杂系统,运维人员往往陷入力不从心的困境。在运维人的生活中,7X24小时时刻准备着应急,他们经常用“人少、事多,救火、背锅”来形容水深火热的工作。面对数字化的新挑战,在AI大潮的背景下,在管理运维领域逐渐减少人力执行与决策比例,增加人工智能执行与决策中的比例,走向解放人力的同时保证高效稳定的智能运维成为行业的趋势选择。
2017年Gartner提出AIOps(Artificial Intelligence for IT Operations)的概念,也即智能运维,Garnter预计到2022年,所有大型企业中40%的企业将会结合AI支持和部分取代现在5%以上的监控、服务台和自动化流程和任务。智能运维的目标是基于已有的运维数据(日志、监控信息、应用信息等),借助AI,通过主动发现、动态数据分析和预测,增强 ICT 的技术能力,实现所维护产品的更高质量、合理成本及高效服务。
AI在ICT运维中的应用场景
运维的主要目标是保障信息网络系统的稳定运行,故障的发现、定位和规避是三个最常见的运维场景。例如,我们常用的购物网站访问越来越慢,甚至发生崩溃,如何能快速的发现故障已经发生?故障发生时如何能立刻定位到故障的原因?如何在故障发生前,如访问刚开始变慢就能提前检测到异常,从而自动采取措施规避异常?这些都可以通过AI这个智能大脑来实现。
1. 故障发现
运维系统最基本的一项职能是监控系统的各种运行数据和指标数据,随着系统规模变大、复杂度提高,需要监控的数据量越来越大,运维人员难以从海量监控数据中发现异常。智能化的故障发现就是通过 AI 算法,自动地从监控数据中发现异常,实现对故障的主动提前发现,为后续的诊断、自愈提供基础。最常见的故障发现是指标异常检测,包括单指标异常检测及多指标异常检测,智能运维可以通过AI算法,实现自动学习阈值、自动调参,抑制告警风暴,提高告警的准确性。
2. 故障定位
故障定位是智能运维的核心,可以通过智能分析进一步解放运维人力,提高运维效率。智能运维可以综合故障数据和固化下来的人工经验,自动提取故障特征,主动匹配,最终确定故障原因;也可以根据故障特征和特征之间的依赖关系推演出可能的故障原因,并在人工确认后形成固化的知识。
3. 故障规避
故障的出现实际上很少是突然而至,在出现之前可能已经出现征兆,智能运维可以开展主动健康度检查,针对重要特性数据进行预测算法学习,提前预测故障的发生,从而帮助提前采取措施排除故障隐患,避免服务受损。比如对磁盘故障预测、光模块故障预测。另外,还可以对系统容量进行预测,从而辅助运维人员提前对系统扩容或升级进行规划。
智能运维涉及的相关AI技术
运维场景的问题通常无法直接基于某个通用AI算法直接整体解决所有问题,往往需要把问题拆解成更细的模块有针对性的解决。目前常见的面向 AIOps 的算法技术可以分为两大类:基于数据分析的AI技术和基于知识图谱的AI技术。
1. 基于数据分析的AI技术
具体包括指标趋势预测和异常检测以及关联关系挖掘。
指标趋势预测和异常检测:用于容量预测、容量规划、指标异常检测等场景,异常检测中又会涉及单指标异常检测和多指标异常检测。一般通过分析历史数据,预测未来一段时间趋势或获得动态域值。常见的通用机器学习算法有移动平均法、指数平均法、奇异谱分析、DBSCAN、神经网络等。选择合适的算法进行指标聚类、指标分布预测、相似曲线识别和异常区间对比。如果数据量大、曲线模式复杂,会需要根据情况考虑有监督的算法与无监督的算法相结合。
关联关系挖掘: 包括多指标联动、指标与事件、事件和事件间的关联关系。用于构建故障传播关系,从而应用于故障诊断。通过判断多个指标是否经常一起波动或增长找出指标间的关联。通过自动挖掘文本数据中的事件与指标之间的关系发现指标与事件的关联。通过分析异常事件之间的关联关系,把历史上经常一起发生的事件关联在一起。常见的算法有 Pearson correlation、J-measure、 FP-Growth 、随机森林、神经网络等。实际系统中,因KPI种类繁多、关系复杂,关联关系的挖掘挑战往往比较大。
2. 基于知识图谱的AI技术
一方面可以通过对运维数据自动挖掘构建运维知识图谱,涉及对各类运维主体、运维主体的特性规律和运维主体之间关系的分析和构建。运维主体包括系统软、硬件及其运行状态。软件是指服务、微服务、中间件、存储服务、数据库等等;硬件是指机房、机群、机架、服务器、虚拟机、容器、硬盘、路由器、交换机等等;在生成知识图谱过程中,会用到各类监控数据,包括指标、日志事件、Trace、变更、流程等等。
另一方面还可以通过对人工知识和运维经验进行固化形成知识图谱,比如对标准的网络协议过程进行整理固化后可以指导分析协议交互类的故障原因分析。
图1 智能运维涉及的相关AI技术
对于复杂的根因分析,根据需要会结合两类方法,比如在对故障传播关系挖掘过程中,会融合文本数据与指标数据,基于上述多指标联动关联挖掘、指标与事件关联挖掘、事件与事件关联挖掘等技术、由 tracing 推导出的模块调用关系图、辅以服务器与网络拓扑,构建组件之间的知识图谱故障传播关系。
智能运维5个发展阶段
智能运维并不意味着很快就能不需要人的干预,这是一个理想的状况,它提供了一个工具和平台,但却不能一蹴而就,需要有一个长期的发展过程。业界参照自动无人驾驶的分级,给出了以下五个发展阶段:
第一阶段开始尝试应用 AI 能力,还无较成熟单点应用。主要是手动运维和智能运维的探索阶段。在这个阶段适合先聚焦于数据采集和可视化。由于采集到的数据越来越多,但智能化水平又还不够高,在这个尝试阶段,对运维人员来说,有可能反而感觉增加了工作量,但实际却是为后续的演进打基础。另外,借助已经成熟的脚本批量化,可以实现一定的执行自动化。
第二阶段具备单场景的 AI 运维能力,可以初步形成供内部使用的单点智能应用模块。人工智能开始逐步发挥单项能力,比如指标监控,磁盘故障,光模块故障检测等。
第三阶段可以由多个单场景 AI 运维模块串联起来形成一定流程化 AI 运维能力。可以综合多个情况进行下一步的分析和操作,包括多维下钻分析寻找故障根因等。
第四阶段对主要运维场景均已实现流程化免干预 AI 运维能力,可以对外提供可靠的 AIOps 服务。可以基于故障的实际场景实现故障定位,然后进行故障自愈等操作。
第五阶段有核心中枢 AI,可以在成本、质量、效率间从容调整,达到业务不同生命周期对三个方面不同的指标要求,可实现多目标下的持续最优或按需最优。在这个阶段,人工参与的部分已经很少,从故障发现到诊断到自愈整个流程由智能大脑统一控制,并由自动化和智能化自主实施。
图2 智能运维五阶段
通过以上五个阶段,智能运维的建设可以先由无到局部单点探索、再到单点能力完善,形成解决某个局部问题的模块,再由多个具有 AI 能力的单运维能力点组合成一个智能运维流程,然后逐渐联合形成整体的智能流程,最终达到根据目标自动持续全面优化的能力。
结束语
随着互联网、云计算、企业数字化的快速发展,接入终端的增多,海量数据的增长,ICT技术种类的不断演变,使得管理运维难以继续完全基于人来满足运维服务要求。运维人在智能运维道路上的不断探索,实现以AIOps为大脑,大数据采集和分析为输入,智能决策为输出的智能运维,运维最终完成从人到智能的完全转变。通过智能运维,借助主动分析和预测,以更高质量、合理成本及高效服务完成运维工作成为大势所趋。