根据2015年程序性能监控调查显示,60%被调查的公司都拥有超过10种的不同监控工具。尽管仪器的性能和收集到的数据量都有所增长,但企业几乎不会去使用更大的数据集来进行根本原因分析和事件的预测以提高其可用性和性能过程的有效性。
为了弄清楚这些成堆的数据,IT运维转向机器学习寻找解决方案。
这个领域研究的是如何设计出合适的机器学习算法,这些算法可以通过观察数据,从数据中挖掘出有用信息,开发出可以自动适应和自我定制的系统,并且设计出合适的方案来解决由于过于复杂又消耗成本而难以实现所有情况的系统(就像搜索引擎和自动驾驶)。
在IT运维中,机器学习应用程序的数量已经有了显著的增长,这很大程度上取决于机器学习理论、算法和计算资源需求的日益增加。许多机构发现,机器学习可以让他们更有效地去分析大量数据,获得有价值的信息,减少事故调查时间,确定哪些是相关性强的警报、哪些又造成了事件风暴,甚至是在第一时间阻止事件的发生。
例如,美国最大的政府承包商之一——VSE公司,他们实施了一个机器学习的方案来精减其大量的数据。通过这种方式,VSE能够提供一种在极大程度上减少事件调查时间的方法,这将有助于检测环境的变化并且帮助VSE在法规范围内提高工作效率。
为了解决当下IT运维所面临的主要挑战,以下是之前被使用过的六种不同的机器学习趋势
趋势一:自然语言中的行为洞察力
审查,处理和解释越来越多的数据已经成为IT运营的日常业务中的一个组成部分。一个典型的场景:一个IT运维用户正查看包含着不同维度数据的仪表盘,并且试图去通过一些由手动绘制的饼状图或趋势线来分析这些数据。
为了达到一定程度的自动化,通常情况下,用户必须对他们面前的数据有一个初步的理解,选择部分(即整个数据中一部分的数据集),并选择适合分析的分析工具(如趋势公式,图表参数等)。对于少量的数据来说,或许任务不会那么艰巨,但是这些少量的数据同样无法精确地整体描述整个数据的信息。
当需要更准确的结果或者是我们拥有一个庞大的可用数据量时,常用的基于手动处理数据的工具就可能显得不够合适,而最坏的情况则可能是变得无法使用。
去年,我们能看到ITOA(ITOperations Analytics)在空间混合和关联多个数据源方面所取得的重大进展。然而,大多数ITOA的解决方案仍然要求客户将混合分析的结果进行剥离,以便以一种复杂的专业的方式来解释和呈现这些结果。
今年,ITOA科技将利用机器学习中的最新进展来对数据进行自动解读。其结果将成为一代具体的,易于理解的表达方式,IT运维团队无需投入大量的培训和费用调查就可以运用。分析机制对于用户而言是透明的,将会自动生成以用户母语显示出来的调查结果,指南和说明。
趋势二:智能聊天机器人
聊天机器人是科技圈中一个令人兴奋的新趋势,它开始成为企业级的应用,被称为“新应用程序”,企业也正在逐步适应这种聊天机器人平台来提高企业自身运作效率,促进IT圈间的相互联系,并帮助用户找到信息完成任务。
如今的聊天机器人还非常原始,但是在不久的将来他们将变得更富有科技感。他们将提供能让用户从天气资讯,个人财产管理,网购等方面、做各种事情的自动对话。当然,在商业上的应用是无限的。
聊天机器人的认知系统通过使用一套包含自然语言理解,机器学习和人工智能的体系来进行工作。聊天室能越过明确的指令去理解语言,记住会话中的上下文,并且从他们已掌握的对话中学习,进而变的更加智能。
趋势三:使用行为特征检测异常
检测关键性能指标的基本问题之一就是决定采取合适的行动。一般来说,我们对以下两个方面最感兴趣:
1 监控潜在的不利情况,这种方法通常被认为是识别已知问题的策略 。(例如,低剩余磁盘空间的警报阀值)
2 监测有利的情况并获悉什么时候该事件停止。这对于弄清那些未知的问题是非常重要的,例如偏离了稳定状态,系统的行为变化和性能突然下降,等等。
检测这种情况的方法通常依赖于用标准偏差计算动态阀值。这是为了来检测这种误差,但是在实践中,这种模型太过简单以至于不足以处理卷积信号,造成了太多虚假警报。
机器学习算法来解决这个问题,是为了弄清常规的系统行为并汇报任何与其偏离的异常状态。这可以通过构建一段时间内的行为特征,并在其之上应用异常检测算法来实现。
这种算法首先要观察系统的正常运行情况,然后才会开始报告与之相关的显著偏差。此外,该算法能够不间断的去适应它的行为特征库,从而了解行为是怎样随着时间的变化而改变的。
趋势四:警报收集-建立情景意识
随着IT圈的扩张,警报数量也会随之增加。例如,一家大型国际银行在40,000台服务器上安装了一套监控工具,它们每小时能产生60万个事件。反过来,这些监控工具每年又会产生47000次维修信息,其中包含2000多个2级升级——平均每天超过60次升级。然而,在大多数情况下,各个警报之间密切相关。
操作系统驱动的更改可能会导致数据库服务的脱离,从而导致依赖于该数据库的各种应用程序发出警报的狂潮。查看每个独立的警报会导致响应时间长,交易失败,服务不可用等问题。每个独立的警报不会对发生的情况作出明确答复。而调查又将会花费大量时间,精力和专门人员去确定根本原因。我们能自动检查数以万计的警报,然后得出相同的结论吗?这就是机器学习的范畴了,尤其是聚类算法。聚类是一种无监督的机器学习技术,它将一些相似的对象合乎逻辑地组合在一起。 “无监督”的机器学习表明,即便是没有包含学习导向性 - 该算法也将会自动识别那些有意义的关系。聚类有两种基本的方法:从上到下和自下而上,在自下而上的情况中,算法首先将每个警报作为自己的类别进行处理,然后反复合并相似的类别,直到剩余的都是些彼此间不相同的类别。相似度可以被定义为在时间,主机,服务等方面的距离。自上而下的方法是从预选的一组集合开始的,然后反复将每一个警报添加到最近的一个类别里。从而通过使用消除多余的低质量警报和将警报集中到一些有意义的组群中的方法来建立高阶情境意识。
趋势五: 使用因果推理的根本原因分析
根本原因分析是IT运维团队正在攻克的几大问题之一。
Gartner报告说,“相对于2005年平均花费的8天,且仅有2%的事件能被预测来说,在2016年中,性能问题的根本原因平均需要7天才能得到诊断,并且有3%的事件能够被预测。”
用于监控和管理应用程序生命周期的IT工具通常不会相互交流。 例如,要部署新服务,一个新的更改请求就会通过自动部署的脚本被打开并且被执行。 一旦应用程序启动并运行,它的性能和可用性将通过日志,网络活动和主要的APM指数来监控。 没有人会用一条红线将所有事件串联成一个关于业务操作的整体性概述。 自动根源分析能力取决于是否建立了数据源之间的关系。相关事件,票证,警报和更改可以弄清数据间的因果关系。为了实现这一点,机器学习可以分成两个阶段的应用。
第一个阶段是链接来自不同IT工具的数据,第二个阶段是确定哪里的关联是最有意义的。在处理非结构化数据的第一阶段,联系的过程是并不明显的。 机器学习可以推断出不同数据源之间的关系,并确定如何才能将它们链接到有关的运行环境中去。 算法包括模糊的匹配规则和如何去识别同时频繁出现的事件的关联规则,自然语言中的数据语言分析和根据预测模型建立的估算系统。而在这个过程中又产生了一系列的跨数据的带有语义标注的数据样本。
第二阶段建立了基于环境拓扑,组件依赖关系和配置依赖关系的环境依赖模型。
这样的环境依赖模型可以被应用于基于拓扑结构的相关性中,通过拓扑关系分析出无法访问的环境中问题产生的根本原因。另一方面,这种关联图可以用概率贝叶斯网络建模,但这可能会增加模型的误差传播,使其缺陷被放大,造成严重影响。
建立这样一个模型实际上是不可行的,因为即使不考虑不断发展的环境结构,环境组件之间也有很多的因素需要确定。然而,通过利用机器学习和大量能描述历史性能的数据,建立一个能自动估算所有必需可能因素,并且可以即时更新的数据模型是可行的。
趋势六:IT过程挖掘
精密的仪器和收集的大量数据不仅可以使每个机构去跟踪规定的流程,还可以去辨别在IT基础架构中所发生的一些的非正式的,没有记录的流程和活动。 这个任务背后的核心机器学习技术就是过程挖掘。过程挖掘将会自动搜索IT系统中现有的更改请求记录,事件记录,部署信息,事件日志和事实的更改,以确定在一个组织中的IT操作流程。幕后的算法能分析出事件之间的依赖关系,并标识出频繁出现的步骤。相同类型的算法支持电子商务中对零售行业的分析,确定哪些是人们经常会一起购买商品,客户可能购买的下一个产品是什么,以及如何将产品/服务捆绑在一起以便能最大限度地提高收入。 这种分析不仅可以让人对整个事件的发生过程有个更好理解,还可以促使过程挖掘自身的改进并加强自动化能力。
结论
IT运维的发展足以使所有的可自动化功能变得自动,并使用精密的组件工具来确保一切正常运行。IT运维分析已经进入了一个新的时代 - 一个由算法处理IT运维的领域,将学习算法的过程融入在收集的大量数据,警报,票证和测量中,以提取出其被深深隐藏的洞察力,这种洞察力将能够提供准确的警报,建立情景感知意识 ,找到根本原因,甚至能预测事件。
原作者:Bo?tjanKaluza
Bo?tjan Kalu?a is the chief datascientist at Evolven Software
译者:李凌
原文链接:https://www.information-management.com/opinion/the-6-top-machine-learning-trends;
CIO之家 www.ciozj.com 公众号:imciow