图片来自包图网
【51CTO.com原创稿件】应对 AIOps 自身挑战的技术路线是从全维监控到全维关联,最后到全维智能。任务机器人是 AIOps 系统的核心,基于它才能实现全维关联和全维智能。
2018 年 5 月 18-19 日,由 51CTO 主办的全球软件与运维技术峰会在北京召开。
在“容器下的 AIOps”分会场,宜信研发总监张真做了主题为《运维机器人之任务决策系统演进》的精彩演讲。
演讲过程中,作者分析了 AIOps 系统的目标与挑战,对运维机器人和任务决策系统进行了阐述、对任务决策系统演进做了深入的剖析。
AIOps 自身的目标与挑战
宜信是一家金融企业,业务关联复杂性非常高,如图 1 是由宜信 UAVStack(全维监控软件)产出的状态监控图。
图 1:UAVStack 产出的状态监控图
这张错综复杂的状态图,描绘了宜信所处的生产环境中,应用、数据库、服务和缓存等多个关联件之间的调用与关系。
面对这样复杂的业务规模,尤其是微服务架构上,即便是一个非常简单的微服务,排除故障都不是易事。
这样的状态下,自动化运维不再是最佳选择,AIOps 系统势必成为必然。
AIOps 系统可以通过深度洞察能力为运维提供持续、高质量的效率运转,相比自动化运维来说,不会再受限于人的生理极限和认知局限。
在做 AIOps 系统之前,需要设立明确的目标,更重要的是需要应对种种挑战并分析透彻。
三大目标
目标一:时效类。自动化运维虽大幅度提高了我们的时效,但核心决策者仍然是人。
当超越了人的生理极限,效率也将很难保证,但是 AIOps 系统则不存在上述问题。
目标二:深度洞察。人的认知有局限性,AIOps 系统则可以利用大数据,洞察更多现存问题与未知的运维模式。
目标三:自主调优。AIOps 系统可以自主保持系统最优状态,自主生成达成目标需要的执行计划。
六大挑战
理想与现实究竟有多远?构建 AIOps 系统的过程中需要面对的挑战如下:
- 如何获取高质量,高时效的监控数据。传统监控体系中,想要获得更多的数据就必然要建立各种系统。这些系统本身在时效和品控层面如何达成一致是个难题。
- 多维度数据如何实现高效关联。仅有数据不能解决任何问题,需要把所有数据有机有效进行关联才可以。
- 如何实现运维场景的实时感知。工程师之所以比传统监控和运维系统靠谱,主要是因为运维工程师了解非常多的现实认知能力,如机房、网络、虚机等相关详情。
如果希望 AIOps 系统做的更好,就需要增强其运维场景的感知能力。
- AI“工程化”的复杂性。实际过程中,把机器学习算法落地到实际场景的这个过程还有很多的路要走,相比实验室中的机器学习要难很多。
- 机器学习模型的训练困境。生产运维中 SLA(Service-Level Agreement,服务等级协议)的矛盾和故障样本太少,致使仿真模拟有局限。
- 遗留技术栈,混合架构的复杂性。初创公司会有大量历史的遗留技术栈与混合技术架构,遗留系统“业务需求”变更频繁。那么,要如何使它们很好的融合到 AIOps 系统呢?
确定目标,明晰挑战之后,宜信制定了适合自己的 AIOps 技术路线,如图 2 所示。
图 2:AIOps 的技术路线
AIOps 的技术路线分为三个步骤:全维监控、全维关联和全维智能。
全维监控阶段,需要将监控体系进行统一,尽量去获取高质量高时效的监控数据,利用监控软件去提取不同运维场景中的源数据,同时去适应和适配遗留技术栈和各种混合架构。
全维关联阶段,需要将多维数据进行高效关联,同时解决机器学习模型的训练困境问题。全维智能阶段,需要花费时间攻破 AI 工程化的复杂性。
运维机器人是 AIOps 系统的核心
确定 AIOps 的技术路线后,宜信首先落地的是权威监控平台——“运维机器人”。
运维机器人,也叫 AI-Mission-Robot(任务机器人),如图 3 所示:
图 3:运维机器人
任务机器人的设计理念是基于 CUI 形式交互,基于 API 形式执行,结合微智能、人工智能等前沿技术,使运维机器人实现真正意义上的决策,并且最终很好的向运维人员进行反馈。
任务机器人之所以是 AIOps 系统的核心,在全维关联和全维智能的作用很关键,如图 4 所示:
图 4:任务机器人是核心
任务机器人的作用是对接全维监控平台和大数据平台,同时也要面向 DevOps 工具链和业务系统。
在介绍了任务机器人的基本概况后,张真对任务机器人的任务决策系统及其职责进行了浅析。
什么是任务决策系统
了解认知和决策之间的关系,是理解任务决策系统的前提,如图 5 所示:
图 5:认知和决策的关系
认知智能的理解、解释、规划和推理四部分和决策息息相关,映射到智能运维场景中,对应的便是如图 5 所示的四点,从中可以看出,任务决策的前提是增强现实感知。
图 6:增强现实感知的过程
图 6 是增强现实感知的过程。通过这种方式,实现对用户场景的感知。在这个过程中,AI 提供了很多决策能力。
如利用机器学习技术进行分类判断和回归检测、知识图谱的构建和系统加深对事物的认知、以及搜索技术实现模糊和精确的匹配等。
任务驱动模式和自主驱动模式是任务机器人的两种驱动模式:
任务驱动模式是被动任务,当收到发出的指令,理解指令的意图后,任务决策的同时决策任务执行方式,最后执行任务并反馈结果。
自主驱动模式是主动接受来自施令者的期望,对意图进行理解之后,规划任务实施方案去主动执行任务,应需反馈结果。
任务决策系统的六大职责
为了支撑任务驱动模式和自主驱动模式这两种驱动模式,任务决策系统需要具备六大职责,如图 7 所示:
图 7:任务决策系统的六大职责
接下来,张真对每个职责的基本工作原理进行了详尽的解读。
职责一:意图理解
图 8:意图理解的工作原理
如图 8 所示,意图理解首先进行自然语言理解,再把自然语言映射成机器人能够理解的语素,再进入意图路由。
意图路由的作用是理解人的指令,基本上可以分为四种:
- 人和机器人之间进行多轮对话。
- 人给出直接性的指令(ChatOps 指令)。
- 判断是否需要进入指令理解的过程。指令理解就是把偏向于自然语言的语素翻译成偏向于机器人理解的语素。
- 扩展意图,在这个过程中,需要使用图计算技术。图计算包含算法、整个图的构造和查询过程三部分。
职责二:系统理解
图 9:系统理解的工作原理
如图 9 所示,系统理解首先是构造知识图谱,分为 API 语义和细粒度画像两部分。
之后再结合指令理解的结果,进行一个图计算的过程,带来两个效果:一个是可以帮助选择要用的 API,另一个是做参数填充。
职责三:现实理解
图 10:现实理解的工作原理
如图 10 所示,现实理解也要先做知识图谱,这就需要收集多维数据,如基础、关联和业务画像等。
之后通过图计算的方式,解决 What 型和关联型两个需求。最后,在之前工作的基础上,协助问题定位、根因分析和现实判断。
职责四:异常检测
图 11:异常检测的工作原理
异常检测的工作原理如图 11 所示,把全维指标(也就是全维监控阶段拿到的数据)转换成指标关联模型,涉及高效计算和高精度计算这两种模型。先由高效计算模型进行计算,粗略得出来一个结论,再交给高精度模型实现。
职责五:问题分析
图 12:问题分析的工作原理
如图 12 所示是问题分析的工作原理,当有异常检测的结果或者异常特征图谱(数学空间中的一套模型)输入后加上现实理解,通过计算和图 12 中所示的三大协助分析能力,最终得出一系列的关联认知需求、问题定位、关联根因和影响评估。
职责六:执行计划
图 13:执行计划的工作原理
如图 13 所示,是执行计划的工作原理,主要分为预设计划,现实理解和系统理解这三个层次。执行计划职能是对之前五个职能的理解与整合,是自主驱动模式中最重要的点。
当有了这样的执行计划后,很多执行计划就可以相互嵌套,当嵌套到一定复杂度时,便可以形成一个非常复杂的工作过程,这个工作过程就是任务机器人慢慢趋近于人,逐步智能化的过程。
任务决策系统的具体演进
紧接着,张真通过一些案例,剖析了任务决策系统的具体演进。任务决策系统是 AIOps 平台架构中的一个版块,如图 14 所示:
图 14:AIOps 平台框架
AIOps 平台框架底层是微服务计算平台,基于这个平台之上,构建全维监控服务和任务机器人系统。
任务机器人系统包含 Interaction、Think 和 Handson 三大部分,任务决策服务是 Think 其中之一的版块。
任务驱动架构的四次迭代
第一代任务驱动架构,指令理解、参数填充是在代码层进行实现,包括任务确定,全维监控之间的关系,也是靠服务注册发现来完成的。
第二代任务驱动架构,不仅加入了自然语言和指令理解,初步引入知识图谱,还实现了基于语意模板的方式进行回复。
第三代任务驱动架构,构建了微智能知识图谱的同时,加入多轮对话的管理,已经基本可以判断清楚人的意图,并且可以对整个报警进行简单统计。
图 15:第四代任务驱动架构
如图 15 所示,第四代架构丰富了很多功能,如多轮对话支持扩展意图的连接、知识图谱本身管理服务、引入问题分析等。
自主驱动架构的两次迭代
对比报警之后再进行处理的任务驱动模式,自主驱动方式使得运维从被动变为主动。
自主驱动就是宜信正在做的智能巡检场景,这等同于运维工程师对系统进行常规巡检的效果。
智能巡检异常检测、问题定位、根因分析、影响评估和自愈计划是智能巡检场景的五个步骤。实现智能巡检,有两个基本过程:记忆期望和主动实施。
自主驱动(第一代)过程一:记忆期望
图 16:记忆期望
如图 16 所示,首先任务机器人要记住我们的某个期望,在理解业务的前提下,高频执行。
判断我们给的期望和其中的某个计划相一致,并且把结果进行存储,这个过程中存储的是预设计划结果,并不是真正的执行计划。当真正执行时,就可以根据上下文生成一个具体的工作列表。
自主驱动(第一代)过程二:主动实施
图 17:主动实施
如图 17 所示,当机器人真正去执行时,遵循执行计划的工作原理,基于图计算全自动生成执行计划。
同时执行计划针对知识图谱进行调度 API 调用,进而对现实进行理解。通过模型计算对调度进行异常检测,这一代以单指标为主,不涉及问题分析。
自主驱动(第二代)
图 18:自主驱动(第二代)架构图
如图 18 所示,自主驱动(第二代)增加问题分析结果的引导,实现结果主动反馈,实时向专业人员请求借助。
指标关联模型的异常检测方面,加入了问题定位和根因分析的过程,同时在预警服务部分引入了事件关联。
任务决策系统的未来
任务决策系统的未来将针对以下方面进一步攻克:
- 准确率需要不断的提高。
- 针对问题诊断结果进行影响面的评估(系统/应用/业务层面),从而决定自愈执行的手段。
- 人机互助增强,在系统寻求人的协助基础上,实现双向的协作支持。
- ChatOps 命令意图理解全自动化,也就是实现部署即理解。
- 引入一些半自动化协助手段,帮助预设计划建模,降低预设计划建模复杂性。
- 目前还是针对特定场景的建模方式,通用性不足,高指标关联模型的通用性还有待提高。
最后,张真对本次演讲行总结:应对 AIOps 自身挑战的技术路线是从全维监控到全维关联,最后到全维智能。
任务机器人是 AIOps 系统的核心,基于它才能实现全维关联和全维智能。任务决策是认知智能与 AI 技术结合的体现,包括六个基本职能:系统理解、现实理解、意图理解、异常检测、问题分析和执行计划。
任务机器人有任务和自主两种驱动模式,任务驱动关键是根据人的意图映射成系统可执行的操作,自主驱动关键是执行计划的生成,并且影响到执行的效果。
张真,宜信研发总监。负责金融基础服务,智能运维,微服务计算,DevOps 平台,云计算等;开源软件 UAVStack 创始人,多家公司应用于测试/生产监控运维;曾就职于 IBM,参与应用服务器,云计算,语音识别,机器翻译等产品;拥有多个国际专利,开源社区活跃贡献者。目前关注微服务+人工智能+容器等技术在智能运维/运营解决方案的应用。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】