我们通过自有系统将所有数据收集起来,通过统一管道(统一管道包括kafka、宜信开源的DBus,DBus会对结构化的数据进行配置或预处理。)传送到实时分析平台,对数据进行后期加工,包括相关运算,最终数据会分类存储到数据中台的数据库中,比如关系、指标、文档/日志型数据会存储在ElasticSearch中、结构化数据会存储在Hive中,其他历史数据会存储在HDFS中。
3.4 智能场景 图10运维中的智能场景如上图所示。
智能中台根据运维中台提供的工单、编排规则、CMDB、画像、Tracing、KPIs、Logs等数据,通过算法为运维中台建设一系列模型和应用。
重点介绍一下编排规则。我们用的编排工具是StackStrom,我们把自动化的每个动作都抽象成一个原子(atom),比如重启服务、重启机器、修改配置,这些atom通过StackStrom建立成一个个的工作流,这些工作流是我们有经验的运维专家建立的一个更高级抽象、更语义化的模型。比如我想发布一个系统,包括扩容机器、无缝切换、涉及前端负载均衡的调整、后端应用的调整,这些都会是编排规则。
智能平台通过算法,包括NLP分析、根因分析、趋势预测、异常检测等,产生两个模型:知识图谱和搜索引擎。这两个模型应用于运维中台的问答后台、编排管理和监控系统中。
1)智能问答/执行 图11如图所示是智能问答/执行的案例,用户通过服务台的会话窗口提出问题,这些问题以请求的方式发送到问答后台,后台利用搜索引擎和知识图谱的数据自动化反馈信息,包括问答、动作执行等。
2)故障检测 图12目前的AIOps研究最多的是KPIs,将日志等各种数据,通过根因分析、趋势预测、异常检测等算法,生成对应的算法/模型,将这些算法/模型应用到监控系统中,就是监控报警部分。监控报警结果会展示到展板上,通知用户。
四、如何实现主动感知 4.1 痛点 图13我们的业务运行在IT环境中,这个IT环境就是承载业务的IT,包括数据中心、服务器、各种系统、三方应用、网络用户的设备等。而随着云平台的建设和微服务的发展,很多部分运维人员观察不到,再加上出于投入产出比的考虑,一些部分我们不会去观察,因此,实际上运维人员能够观察到的IT远远小于真正承载业务的IT。
在运维可观察的IT环境中,真实观察到的IT数据往往仅包括交换机的流量包、进程的运行状态、网卡流量、CPU使用率、请求数等数据。 如果要建设AIOps,数据的完整是非常重要的,观察的IT环境越多,获取的数据越完整,越有利于AIOps的建设,这时就需要用到主动感知。
4.2 主动感知定义 图14Wikipedia对主动感知的定义如下:
Active Perception is where an agents' behaviors are selected in order to increase the information content derived from the flow of sensor data obtained by those behaviors in the environment in question. ——Wikipedia
通俗来说,主动感知其实是赋予每个参与者一个身份,这个参与者会主动获取环境中的数据,同时会根据从环境中获取的数据主动进行进一步的发现并获取新的数据,目的是增加获得数据的信息量、信息价值。
上图展示了一个比较典型的主动感知流程,重点来看感知部分。感知器从环境中通过情景感知、情景理解和预见的方式去感知环境,产生一个决策,决策产生一个动作,动作反馈到感知。
4.3 主动感知领域 图15主动感知在人工智能领域并不是一个陌生的名词,它已经有大量的应用,包括:
机器人,机器人怎么观察环境、怎么查看边缘信息、怎么识别物体。
自动驾驶,如果将现实中获取的所有图像数据都交给一个中心去处理,这个信息量和计算量是非常大的,目前的芯片还不能满足这样的体量处理。我们的方式是在探知环境数据的时候感知变化,获取变化数据。
智能手机,主要体现在手机的GPS、摄像头,可以感知环境变化。直接作用并影响到人。
路网监控,路网识别,包括主动感知车速变化,判断行驶的车辆是否超速。
4.4 分布式主动感知 图16AIOps引入分布式主动感知: