【51CTO.com原创稿件】2018年5月18-19日,由51CTO主办的全球软件与运维技术峰会在北京召开。此次峰会围绕人工智能、大数据、物联网、区块链等12大核心热点,汇聚海内外60位一线专家,是一场高端的技术盛宴,也是顶级IT技术人才学习和人脉拓展不容错过的平台。
在“容器下的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技术结合的体现,包括六个基本职能:系统理解、现实理解、意图理解、异常检测、问题分析和执行计划。任务机器人有任务和自主两种驱动模式,任务驱动关键是根据人的意图映射成系统可执行的操作,自主驱动关键是执行计划的生成,并且影响到执行的效果。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】