西南油气田分公司通信与信息技术中心,四川 成都 610051
摘 要:随着数字化和工业化深度融合,油气行业纷纷加快自动化智能化等技术研发和应用,利用移动互联网技术、云计算及大数据等新兴信息技术发展企业的数字服务。随之而来的是规模不断扩大的IT系统、日益复杂的系统架构,以及海量的IT运维数据,面对这些新形势下的挑战,信息系统运维管理需要从原有的人工加被动响应,转变为更高效、更智能化的运维体系,为新形势下的IT系统保驾护航。当前传统的运维方式缺乏分析能力,虽然也能采集到运维数据,但无法对这些数据所包含的信息进行洞察,更加无法将数据进行知识化的本质提升。因此,智能运维势必会踏着人工智能的时代浪潮应运而生。
关键词:信息系统 人工运维 智能化运维
0 引言
以云计算、大数据、AI等为代表的革命性信息技术的兴起和应用,带动和促进了企业由信息化建设向数字化转型演进,大数据技术和人工智能技术的高速发展,将推动运维管理由传统的人工运维向智能运维转变,信息系统也朝着架构规模化、技术集约化、部署动态化等“敏态”方向变革,由此给运维工作带来巨大的冲击和挑战。“敏态”IT环境的需求,更注重对于运维事件的预测、分析和决策,更强调是对运维全过程的贯穿,需要一个强有力的“智慧大脑”来帮助,甚至代替人来自动完成。该研究旨在通过创新思维解决运维效率问题,逐步实现运维自动化管理,使之逐渐成为油气田企业数字化转型、智能化发展,强化本质安全,提高系统效率,控制运营成本,实现高质量发展的关键支撑。
1 信息系统传统人工运维现状
信息系统运行维护(简称运维),是信息技术服务的一类重要服务内容。是采用信息技术手段及方法,依据需方提出的服务级别要求,对其信息系统的基础环境、硬件、软件及安全等提供的各种技术支持和管理服务。运维是信息系统生命周期中最重要,也是最长的一个阶段,在这个阶段中,需要保障信息系统安全、平稳地运行,并按照业务要求的时限及时排除故障,发挥信息系统的效能,保证业务的顺利开展。
“三分建设,七分运维”,运维占据了整个信息系统从产生到消亡这一整个生命周期中“稳态”IT环境的运维通常围绕监测、处理、展现三个主要活动来展开,也就是常说的“监、管、控”,体现的“眼”和“手”作用。尤侧重于监测,强调对IT环境的运行监测的准确、及时、全面,最大的感知和体现是多种方式的告警或预警通知。在时间层面,它更多的是“事后型”,即在事件发生后展开一系列的运维活动。在处理的方式上,依赖于过往经验,以及“骨干”或“专家”的梳理与提炼,形成固化的规则或知识来指导运维。
传统的 IT 运维管理的人工日程巡检给运维人员带来无穷的压力,相关人员进行故障检测和故障定位时常常无迹可寻,造成故障排查和故障定位困难。监控设备种类繁多,生产厂商不一,监控没有统一的标准,监控的结果孤立,各个节点独立监控结果各不相同,关联分析比较困难,海量日志无法统一管理。
目前已有运维方法的主要难点是突发故障的发现、止损、修复和规避问题,也是运维人要解决的关键问题。这些难点导致运维人员工作量剧增,运维人员全年365天7×24小时救火、灭火,使得运维人员压力骤增,运维人员工作中如履薄冰,生活幸福指数降低。这就说明运维人员目前的工具还不足,在信息架构与应用系统日渐庞大的今天,如果再通过人工分析的运维方式,很难适应目前日益快速增长的业务需求。规模不断扩大的 IT 系统、日益复杂的系统架构,以及海量的 IT 运维数据对使用传统运维平台的运维人员而言工作量巨大,因此如果人工智能能帮助我们的话,运维的生产力将得到极大的提高。
2 信息系统智能化运维的优势和必要性
运维处于手工阶段,可能每天都在担心发生故障,如果能实现自动化、智能化运维,可以实现自动化脚本,把很多已知任务像流水线一样串起来,就像特斯拉电动机车流水线一样。很多故障都是突发的,在故障突发时,传统运维人员花很多时间解决问题,而自动化运维的目标是有可能需要一个半小时解决的问题两分钟就能搞定,在解决问题的过程中,每一分每一秒都在给企业带来持续损失。
云智慧智能业务运维的优势就是:应用大数据、人工智能、物联网等前沿技术,为实现互联网级运维和运营能力持续赋能,云智慧为我们构建的场景化智能业务运维整体解决方案,实现了线上关键业务环节的持续追踪和面向全栈的故障定位、根因分析,总能第一时间发现和解决问题,为我们的数字化转型提供了有力支撑。
应该说,智能化运维是运维工程师职业化的一个追求,虽然这是一个异常艰巨的任务:不断变更的业务、不规范化的应用设计、开发模式、网络架构变更、IDC变更、规范变动等因素,都可能会对现有自动化系统产生影响,所以需要模块化、接口化、变因参数化等因此,自动化相关工作,是运维工程师的核心重点工作之一,也是价值的体现。
传统IT运维管理平台,往往是为完成单一管理任务而设计的,更偏向于管理某一细分专业领域,而智能化运维平台则构建在传统运维平台的上层,把IT运维管理平台作为分析的源头,通过接口集成将各个平台组件中的孤立运维数据进行汇总,使其突破数据孤岛的壁垒,其次借助自身的关联分析、机器学习、数据建模、全局搜索能力,帮助企业从IT系统的行为、状态、配置、故障和事件中等多个维度,产生趋势预判、快速故障定位和商业洞察等价值。
因此,我们有理由相信智能化运维能够帮助企业及各类运维人员在大数据中找到合适的发展模式。现在是时候用一些类似人工智能的思维方式来为IT产业服务,使大数据的分析方向转到IT运维上了。
3 信息系统由人工运维向智能化运维转变的可行性
智能化运维最终的目标构建具备自我学习和迭代能力的运维“大脑”,智能化运维最大的价值在于构建了运维“大脑”,形成自我监测、分析、决策、修复和总结能力,并通过自我学习,形成自我迭代更新循环,从而冲破人的经验、能力和精力的局限,近乎无限地拓展运维的广度和深度,会在提升运维效率的同时, 将运维的质量与成本更加精细化,使安全的应变能力更强,从而确保IT环境运行的平稳高效。
3.1智能化运维应用范围
运维的场景有很多,但最重要的是运维质量、成本、效率和安全等几个主要维度。相应地,智能化运维在运维领域的应用于这些范围,通过构建的运维“大脑”,实现对运维事件的实时或准实时地分析、决策和修复:①在运维质量方面,主要进行异常检测、故障分析、故障预测、故障自愈,从而大幅提升运维的质量;②在运维成本方面,主要进行运维成本优化、资源优化、容量规划、性能优化等,花最合适的成本,用在最关键的地方,获取最大的收益;③在运维效率方面,主要进行智能变更、智能决策、容量预测等,给出快而准的运维决策方案。
3.2智能化运维实施及关键技术
传统的运维侧重于监测发现和操作执行层面,具备了运维之“眼”和“手”,而智能化运维则在在此基础上,有了“运维大脑”,从而具备了分析、决策和学习的特性,通过挖掘历史运维数据,提炼和总结出运维知识,并通过动态算法对具体运维场景进行决策,因此实施智能化运维涉及到的关键技术主要有三层面,即算据、算法、算力三要素:①数据源:需要通过各种数据采集工具,实时或准实时的收集各类IT环境中各类组件的运行状态数据;②大数据平台:用于处理历史和实时的多样运维数据;③计算与分析:通过已有的IT数据产生新的数据,例如数据清洗、去噪等;④算法:用于计算和分析,以产生和IT运维场景所需要的结果;⑤机器学习:这里一般指无监督学习,可根据基于算法的分析结果来产生新的算法。
3.3智能化运维能力分级
智能化运维的建设可以先由无到局部单点探索、再到单点能力完善,形成解决某个局部问题的运维AI“学件”,再有多个具有AI能力的单运维能力点或学件组合成一个智能的运维流程,如智能化的监控预测及告警,免干预的自动化扩缩容,免干预的性能调优、免干预的成本组成调优等。智能化运维的构建是一个系统工程,运维的标准化、工具化、自动化、数据化、场景化等是落地的前提条件,更为重要的是,它绝不仅是算法,或是一种技术,而是一种完整的运维理念。
4 信息系统人工运维向智能化运维转变方案和设计初探
智能化运维包含了异常检测、异常定位、根因分析和异常预测。故障止损、故障修复、故障预测在故障报出来之后,希望它能够有一些定位功能。那定位到什么粒度呢?定位的粒度足以实施运维专家提前准备好的修复预案,从而可以执行自动化的脚本回卷、动态扩缩、切流量等:
如果是变更导致了业务的异常,那运维人员把这个变更回卷一下就好了,如果业务不允许回卷,那么就需要快速部署更新过的新版本。把这个问题定义分解出来,智能运维的算法需要告诉运维人员哪个变更导致了这个业务的巨变。
运维人员需要监控流量的异常,并需要在数据中心、运营商、用户类型、浏览器等各个维度进行监控。一旦总流量出现了异常,它可能在各个维度都会出现报警。需要快速定位到具体哪些维度的组合导致了总流量的异常。比如,如果定位到根因是某个数据中心的某个集群的流量出现了异常,那就可以把该数据中心的流量切换掉就可以解决问题。
3)当业务指标发生剧烈波动时,找到该业务的哪些模块的哪些指标也同时发生了波动,并根据关联程度进行排序,给出最可能的根因位置,供运维人员进行定位。一个不完善组粒度的故障树也能起到故障定位的效果。另外,还可以对故障进行最粗粒度的故障定界,确定是网络、服务器、存储、还是用户的问题,快速明确责任单位,便于止损。最后,还可以判断故障是否为容量不足导致,以便迅速做出动态扩容决策。
根因分析的前提是报警,下一步就是构建故障树。由于软件模块之间的依赖关系太复杂,因此故障树的构建非常难,对所有的报警信息进行两两关联的计算量过大。一种思路是构建一个故障树的超集,通过模块调用链获得模块之间的逻辑调用关系,通过配置信息获得物理模块之间的物理关联。这两部分一起构成一个可能的故障树,这棵树是真正故障树的一个超集,之后对这个超集中的每个边进行联动分析、联动分析,对这棵树进行剪枝,构成最终的故障传播关系。
性能瓶颈预测、容量预测、故障预测等异常预测是故障规避的经典场景, 性能瓶颈被预测出来后,如发现哪个模块是整个系统性能的瓶颈,就可以对这部分进行代码优化,如果代码优化来不及的话,也可以选择定向扩容。容量预测之后,可以进行动态的扩缩容、资源预算等,故障预测可以帮助进行动态的切流量、替换硬件等。
5 信息系统人工运维向智能化运维转变的难点
预测今后几年,大型企业中 40% 将会部署智能化运维平台,智能化运维已然成为是未来解决运维问题的必然方向。但以目前的实施效果来看,还远未达到预期,需要一个长期的发展迭代。智能化运维平台包罗万象,包含异常检测,异常定位,根因分析,容量规划,故障预测,模式识别,告警压缩等多种功能。感觉有了智能化运维平台,运维工程师的工作就轻松了,然而要实现上述所有功能,甚至说只是部分实现,都是一个极具挑战的系统工程,有以下几个难点:
5.1数据采集
要实现好智能运维,全方位,实时,多维度,全量地对运维数据采集采集,是所有工作的第一步。一个典型企业级系统运维用户,大多数情况都有比较完整的运维体系,而且经年累月,积累并实施了很多成熟的运维工具,如果在软件工具都没有的情况下,将相应的数据导入到智能化平台中,相应的工作量可想而知。更难的是,很多软件或老旧一点的运维产品,是没有公开的数据接口的,某些工具即使通过各种方法把数据取出来,发现其数据也是不准确,或者是非实时的。
从IT监控运维的角度来说,接入智能化运维的数据包括,时序指标数据,日志数据,网络抓包数据,事务链数据,IT事件数据等等,从底层技术维度来看这些数据,可以把这些数据理解为,时序数据,半结构化数据,DAG图数据,结构化数据,很明显,要对这些这么多样化数据进行存储和分析,只用一种数据存储引擎是不够的,选择合适的数据存储引擎,如何将多个数据引擎进行有机结合,是一个考验。多样化的分析需求挑战,智能化运维监控运维,分析场景众多,维度复杂,在业务监控这块,部分还有很强的关联关系,还要结合一些传统的机器学习算法进行分析。
5.3数据治理挑战
可以想象,往一个数据湖里头,灌了那么多不同类型的,不同结构的数据后,如果没有合适的治理,这数据湖将肯定会变成一个泥潭,所以需要以下的治理能力:①元数据管理:需要将部分的历史数据,以粗粒度的形式进行汇聚后,丢弃细粒度原文。有的还需要进行永久保存,因此,必然需要有相应的历史数据管理方案。②数据流向管理:数据在平台内部, 必然要做相关的流转,关联,处理,需要对相应的数据流向流动,进行管控,保证数据加工的准确性。可以看到,这个数据中台的能力,是整个智能化运维平台的核心,架构,实现的难度非常大,非常考验架构师的功力。
在算法中面对的不再是运维应用场景与标准机器学习算法之间巨大的鸿沟,而是在中间加入了智能化运维基础算法层,和智能化运维关键技术层。其中关键技术层解决的是前一幅图中的挑战,而基础算法层为关键技术层和最终的运维场景提供基础的算法支撑。算法的挑战主要来自于人、期望、适用场景、工程化。从客观上来说,很多的算法研究员编码及工程化能力不太强,这基本上是一个普遍现象,另外一方面,这也是工程化和产品化的一部分,需要算法研究员与架构师一起,将算法的实现进行重构,并进行产品化,工程化。
6 结论
在追求运维智能化的道路上,注定不会平坦,智能化运维平台是一个开放领域,目前工业界和学术界并没有严格定义,大家都在不断研究和探索中,因此无论是异常发现、故障定位、知识管理、或面向场景的解决方案都是受欢迎的。智能化运维应具备以下三个特质:①时代性:特别是在云原生、容器、移动端等场景下,如何应对环境的复杂性;②通用:能够解一个或多个通用问题,并且方法有一定的泛化能力,这些问题是业务的痛点,能够引起共鸣,能够具备一定的复制能力;③启发:方法的创新性,能够给同行工作带来一定启示,至少能够开阔思路。笔者希望通过这篇文章汇聚力量,和同行进一步探讨智能运维的可行性算法,共同推进智能化运维的发展。
参考文献
[1] 刘月岐,IT运维的终极AIOps.
[2] GB/T 29264-2012标准信息技术服务分类与代码.
[3]裴丹,AIOps落地路线图看智能运维如何落地生根.
[4]Turn Big Data Inward With ITAnalytics.
[5]擎创夏洛克,从ITOM到AIOps:IT运维管理向智能运维的进化.
[6]GOPS,企业级AIOps实施建议白皮书,2018.