第 13 卷 第 12 期 2017 年 12 月
69
的使命从一开始就截然不同 :产品开发人员的目标
是尽快地实现系统的新功能并进行部署,从而让用
户尽快地使用到新版本和新功能。运维人员则希
望尽可能少地产生异常和故障。但是经过统计发
现,大部分的异常或故障都是由于配置变更或软件
升级导致的。因此,运维人员本能地排斥产品开发
人员部署配置变更或软件升级。他们之间的目标冲
突降低了系统整体的效率。此外,由于运维人员不
了解产品的实现细节,因此他们在发现问题后不能
很好地定位故障的根本原因。为了解决这一矛盾,
DevOps
1
应运而生。DevOps 最核心的概念是开发运
维一体化,即不再硬性地区分开发人员和运维人员。
开发人员自己在代码中设置监控点,产生监控数据。
系统部署和运行过程中发生的异常由开发人员进行
定位和分析。这种组织方式的优势非常明显 :能够
产生更加有效的监控数据,方便后期运维 ;同时,
运维人员也是开发人员,出现问题之后能够快速地
找出根因。谷歌的站点可靠性工程 (Site Reliability
Engineering, SRE) 就是 DevOps 的一种特例。
智能运维 (Artificial Intelligence for IT Opera-
tions, AIOps) :
自动化运维在手动运维基础上大大提
高了运维的效率,DevOps 有效地提升了研发和运维
的配合效率。但是,随着整个互联网系统数据规模的
急剧膨胀,以及服务类型的复杂多样,“基于人为指
定规则”的专家系统逐渐变得力不从心。因为自动化
运维的瓶颈在于人脑 :必须由一个长期在一个行业从
事运维的专家手动地将重复出现的、有迹可循的现象
总结出来,形成规则,才能完成自动化运维。然而,
越来越多的场景表明,简单的、基于人为制定规则的
方法并不能够解决大规模运维的问题。
与自动化运维依赖人工生成规则不同,智能运
维强调由机器学习算法自动地从海量运维数据(包
括事件本身以及运维人员的人工处理日志)中不断
地学习,不断地提炼并总结规则。换句话说, 智能
运维在自动化运维的基础上增加了一个基于机器学
习的大脑,指挥着监测系统采集大脑决策所需的数
据,
做出分析、决策并指挥自动化脚本去执行大脑
的决策,从而达到运维系统的整体目标(见图 2)。
Gartner Report 预测 AIOps 的全球部署率将从 2017
年的 10% 增加到 2020 年的 50%。
智能运维现状
关键场景与技术
图 3 显示了智能运维包含的关键场景和技术 ,
涉及大型分布式系统监控、分析、决策等。
在针对历史事件的智能运维技术中,
瓶颈分析
是指发现制约互联网服务性能的硬件或软件瓶颈。
热点分析
指的是找到对于某项指标(如处理服务请
1
DevOps,英文 Development 和 Operations 的组合。是一组过程、方法与系统的统称,用于促进开发(应用程序 / 软件
工程)、技术运营和质量保障 (QA) 部门之间的沟通、协调与整合。
图2 智能运维与自动化运维的最大区别是有一个基
于机器学习的大脑
运维
目标
测量
分析决策
控制 海量日志自动化脚本
基于机器学习的智能运维大脑
图3 智能运维的关键场景和技术
针对历史事件
针对当前事件
针对未来事件
瓶颈分析
热点分析 KPI聚类
KPI关联
关系挖掘
异常事件关
联关系挖掘
全链路模块
调用链分析
故障传播
关系图构建
异常检测 异常定位 异常报警聚合 快速止损 故障根因分析
故障预测 容量预测 趋势预测 热点分析
评论