本文转载自公众号“读芯术”(ID:AI_Discovery)
智能运维(ArtificialIntelligence-based Operations, AIOps)是AI与传统即时通信(Active Messenger, AM, or Instant Messenger, IM)技术的集合。就如同AI引发了其他所有领域的革命,AI也将深刻影响运营管理。当AI的力量应用于运营,它将重新定义应用程序及支持应用程序/基础结构的管理模式。
多个应用程序同时运行会产生大量的数据。数据在网络层生成,经隐藏的API接口到达终端用户。用户都期待拥有完美的应用体验,容不得一点故障。
从完全不同的层中收集数据,使其成为蕴含丰富洞见的资源库,这样的做法是可行的。由于操作复杂,智能运维平台应运而生。智能运维平台运用AI及ML技术,从监测数据中获取洞见,通过强化人工决策推进自动化解决方案。
重要应用案例及解决方案
1. 定位故障
在软件开发周期中,管理软件质量是一个重要的关注点。几乎所有的软件在发布后都或多或少出现了一些小故障。在进入生产环境之前发现并修复故障是很重要的。生产中出现的任何故障都会大幅增加成本。当可用资源有限时,定位故障被视为最耗时间的艰巨工作。因此,软件工程师需要半自动/全自动技术来改善人工调试过程。如果开发人员能够获得提示,知道故障可能在哪,调试将变得更为高效。
解决方案
许多图挖掘算法/技术能帮助开发人员定位软件故障。这些技术依赖于检测失败记录及通过记录之间的判别图。当故障不在罕见的代码模式中时,这些方法可能不合适。另一方面,很多方法主要筛选可能有错误的程序组件(如statements接口和predicates接口),然后根据怀疑程度给这些组件排序,根据控制流图排列执行跟踪的上下文。
2. 达到基准
性能基准决定了在不同负载情况下应用组件和基础结构的运行方式。负载情况包括正常负载、工作负载、准负载、尖峰负载、断点负载等等。基准则是一整套各参数的规则和阈值,这些参数将在一定范围内波动。传统的做法是,收集了一定时间的性能数据后,通过机器学习算法构建以上关系的模型并即时部署,以便性能出现偏差时通报。这一方法适用于发展缓慢的组件,却让快速的现代发展方式“失去了意义”。
解决方案
超融合基础架构管理、领域驱动的应用程序开发、分布式计算的兴起和多语言编程及维护改变了软件组件开发和部署的方式。不断更新换代的软件组件需要持续地部署在动态缩放的底层基础架构之上。这一模式的转变要求模型构筑使用近实时数据,与应用程序及基础架构组件的最新变化保持同步。这些模型需要实时输入数据,从而学习新规则,实现持续发展。
3. 应用监控
应用指标追踪不同时段的响应时间、每分钟请求数量、错误率并识别变化趋势。另外,CPU利用率、内存利用率、负载等基础结构参数能帮助我们理解基础结构层是如何适应应用的不同负荷情况的。随着应用复杂性提升,从预期模式中检测到异常并非易事。如果无法检测出异常,可能产生潜在的程序中断风险。
解决方案
我们能在不同的层发现并分析变化模式,包括应用层、服务层、事务层和外部依赖。首先,确定正常系统行为的构成,然后识别偏离正常的系统行为。智能运维能够通过精确搜索资源,准确标识出异常值,这有助于更好地开展实时根因分析 (Root Cause Analysis,RCA) ,还能避免潜在中断及基础结构故障。
4. 预警问题
应用性能监测软件(ApplicationPerformance Monitor, APM) 中的智能警报能够动态检测异常。要实现警报智能化,检测软件必须是可配置的,这样它才能理解应用程序的特性及行为并检测异常。设置静态阈值是很常见的做法,比如设置在服务请求的响应时间超过三秒时发出警报。然而,对于不同的应用使用模式,识别需要监控的重要参数及其阈值是非常繁重的工作。因此,需要通过智能的方式来设定应用程序正常状态的基准,在出现反常行为时通报。
解决方案
随着算法技术的进步,警报也变得非常智能。它可以进行初步的数据分析,能够在标准差、百分比、预测分析等预测手段的基础上发出警报。今天,检测软件已经足够智能,它可以理解应用的行为并设定基准,在分析请求与开发人员的基准有出入时,允许开发人员自行定义分析策略,在真正出现了需要开发人员关注的问题时发出智能警报。
来源:Pexels
5. 事务跟踪
从简单的应用连接间点对点的信息同步交换到更为复杂的异步通讯,都属于商业事务的范畴。事务跟踪要求精密的跟踪监控方案。长期的多步骤异步事务会传输IT基础结构,要求跨越多种技术和层级,等等。
解决方案
复杂事务往往多变且分散,其标签和统计取样技术使得标准跟踪和分析失去了用武之地。智能运维通过检验方法调用及单个信息负载内容,将事务关联在一起,直观地视觉化展示预期行为和性能中即将出现或已经存在的漏洞。