vlambda博客
学习文章列表

AIOps实现思路思考


世义

读完需要

3
分钟

速读仅需 1 分钟

我们将现有环境中的监控称之为眼,例如:APM、Zabbix、Flume、Tivoli、HMC、NPM、Netbase 等,通过眼获得了众多运维数据,包括:业务监控数据、中间件监控数据、数据库监控数据、IAAS 监控数据、PAAS 监控数据、系统监控数据、硬件监控数据、存储监控数据、网络监控数据、众多日志数据、变更数据等。

同时,我们将现有环境中的自动化工具称之为手,例如:IAAS、PAAS、Ansible、SaltStack 等,通过手执行自动化操作,包括:申请资源、部署应用、执行变更、处理故障等。现有环境中,眼和手都有比较成熟的解决方案,但眼和手之间存在鸿沟,无法自动联动,AIOps 正好可以充当桥梁,解决此问题。我们将 AIOps 称之为脑,接受眼的输入,做推理决策,让手去自动化执行。

AIOps 的实现思路大体可以分为四步:接入运维数据、建立知识图谱、编排智能算法、自动化执行。


1


   

接入运维数据。

将分散的运维数据集中起来,清洗入库(时序数据库、检索数据库等),包括:业务监控 KPI(交易数、成功率、失败率、响应率、响应时间)、基础监控 KPI(应用、数据库、中间件、操作系统、服务器、存储、网络等)、基础日志(应用、数据库、中间件、操作系统、服务器、存储、网络等)、告警信息、ITSM 变更信息。

2


   

建立知识图谱

接入 CMDB 和经验知识库数据:建立东西向的应用拓扑关系,即应用与应用间关系、服务与服务间关系;建立南北向的资源依赖关系,即服务依赖哪些机器;建立交易链;建立监控 KPI 与应用、服务、资源的关系。借助这些关系,分析故障传播链,进行根源分析。

3


   

编排智能算法

分为两个阶段:

  • 初级阶段是根据数据特征,人工选择算法,适配接入数据,再人工进行算法编排;

  • 终极阶段是根据书特征,自动选择合适的算法,自动进行算法编排,例如:小范围波动数据,选择静态阈值算法;周期类数据,选择同比算法;平滑类数据,选择环比算法。

4


   

自动化执行

自动化执行是确定性动作,一般企业有比较成熟的自动化方案,系统内的操作一般用自动化工具(例如 Ansible\SaltStack),系统外操作一般用云平台(例如 IAAS\PAAS)。

智能在于推理决策,推理决策是从不确定性向确定性无限逼近的过程,这个过程中需要不断地加入信息,100%的信息产生 100%的确定性,进行确定性推理决策,信息由数据和模型共同决定,往往数据不是完全的(可能维度不够,也可能数量不够),往往模型也不是最优的,这就决定了没有 100%信息,没有 100%确定性,因此是概率推理。

概率推理决定了不敢轻易用于自主决策,而是用于辅助决策,因为决策错误,可能会带来运维灾难,直接影响业务。做好 AIOps 的前提,是做好基础架构治理和数据治理,使得接入的数据是完全的,同时要不断地进行算法模型优化,使得算法模型是充分优化的,从而使得信息趋于 100%,确定性趋于 100%。不必 100%确定性,只要超过人的决策能力,就可以用 AIOps 进行自主决策。