智能运维AIOps的前世今生(上)

IT运维,从来都不是一项轻松的工作,无论是工作强度还是复杂度,运维工程师承受的压力都不小。运维又是各企业发展过程中至关重要的一环,在企业发展和壮大过程中起到了不可替代的作用,其重要性不言而喻。

2016年开始,历经大起大落的人工智能(AI)以高姿态重新回到人们视野,其带来多项技术的变革,迅速渗透到各行各业当中,包括运维行业。AI的应用进一步优化了目前运维的工作方式,提升了运维工作的整体效果,也为未来运维的发展模式指明了前进方向。

IT运维的定义与现状

运维,一般指的是对产品及其上运行系统的运营和维护,其核心目标是将交付的应用业务、系统软件和硬件基础设施高效稳健地整合,转换为可持续提供高质量服务的产品或平台,同时最大限度降低保障运行的成本,确保服务运行的安全。

传统的IT运维管理,其基本工作模式主要是手工运维辅以少量工具。由于缺乏高效的运维机制以及运维工具,运维工程师的日常工作就是处理各种简单重复的问题;而且由于在部署中未设置预警或者提示系统,只有当问题大规模出现并导致一定后果时,运维工程师才会被通知解决问题。这种工作模式下运维工作人员面对的问题往往比较复杂,同时由于故障处理不及时,事故时有发生。

提起运维工程师,很多人都会把他们和“消防员”联系起来,这种形象的出现与最初运维的方式——“救火式运维”有很大的关系。后来随着运维环境的改变、数据量的增加、系统复杂程度和集成程度的加大,运维工程师的工作量也逐渐加大,运维工程师开始面临更多挑战。
在这里插入图片描述
运维人员增速跟不上信息系统规模增长速度。信息系统规模增加,使得同一个系统需要更多的运维人员维护,人员需求量的快速增加也在某种程度导致了运维人力成本的增长。尽管如此,由于运维工作的特殊性与辛劳程度,很多人对这份哪怕是某种程度的高薪工作也只能望而却步,运维人员数量涨幅明显低于市场需求。
在这里插入图片描述
运维的系统架构转变增加运维难度。现有企业的系统架构,正在慢慢从传统的侧重于纵向扩展和以小型机、存储为主的IOE架构(即建立在IBM小型机+Oracle数据库+EMC存储设备上的数据处理架构),逐步演变成侧重于横向扩展、分布式部署和以大量的X86服务器为核心的分布式开源系统架构。这一转变也使得运维的工作量加大、难度指数提升。
在这里插入图片描述
“人肉运维”过渡到“技术运维”的难度。在“人肉运维”时代,运维人员习惯于“眼前的苟且”,运维模式主要是救火式(被动式)运维,但这种运维压力很大,需要通过人海战术来完成工作、倚重运维人员的技能与经验对事故作判断与完善。而在新的“技术运维”时代,运维人员追求的是“诗和远方”,运维工作主要采取预防式(主动式)运维进行,依托运维技能与经验,由机器提供“持续运维”服务。

运维的发展历程

随着科技的发展与市场要求的提高,运维的工作方式正在逐步改进,开始由最初的手动运维模式,逐步演变为更专业与更高效的智能运维模式。从发展历程来看,IT运维的演变大致可分为三个发展阶段:
在这里插入图片描述
1. 人工运维阶段
这个时期是IT运维的软件工具和流程初始化的时期,使用工具的目标仅仅是计算机化,运维的工作主要依靠人工完成,运维的流程尚属摸索阶段,还没有形成行业共识。

2. 自动化运维阶段
根据技术成熟度的不同,该阶段又可分为Pre-DevOps阶段与DevOps阶段(Development and Operations,即开发运维,是促进业务线、开发和 IT 运营之间开展紧密协作的方法)。

在Pre-DevOps阶段,ITIL(Information Technology Infrastructure Library,即IT基础架构库)、DevOps等理念被提出,这个时期开始了围绕如何落地DevOps工具链的技术研究,业内就IT研发与运维逐步达成了共识。

其次是DevOps阶段,此阶段DevOps的工具链已经比较成熟,这个时期的运维从某种程度上来说可以算作真正的自动化运维,此阶段更加强调从运维流程和运维措施等层面实现完全的自动化,甚至在特定情况下可以实现无人干预。

3. AIOps智能运维阶段
自动化运维给传统运维的效率带来了很大提升,但是系统软件只能预置和按照人类制定的流程运行工作,不能自主适应,甚至不能处理相似的“新”问题。此阶段恰逢AI重新崛起,人工智能的种种特质对运维当前的一些痛点提供了良好的解决方案,AI开始被运用到IT运维领域;而且运维与AI有天然的结合优势,不像其他领域需要数字采样(如语音和视觉的数字化转换),但运维领域的日志、配置、操作、脚本、程序等是计算机自动生成的,也是最利于AI处理的领域之一。

AI在运维领域的应用

在运维行业经历了初始、专业化、工具化、平台化、云化和智能化过程中,从手动运维阶段的无数据化,发展成规模化、结构化和智能化、非结构化数据的趋势。人工智能所扮演的角色也由充当辅助人类的助手角色,转变为今天运维的主要角色,成为新一代运维的主导。
在这里插入图片描述
1. 手动运维阶段
运维工作量小,运维人员的主要工作是查看监控屏幕。随着运维要求的提高,产生了稳定、便捷、可靠、快速的工作原则。人工智能在人的经验基础上,对结构化日志和配置等数据进行挖掘分析,找出数据中的信息,从而优化脚本等工具。

2. 规模化阶段
随着DevOps概念的推出和大量工具涌现,很少有一家公司可以生产覆盖所有DevOps生命周期的工具。另外,随着一些创业型公司崛起,运维工作量爆发式增长,为了保证业务的连续性,此时期产生了SRE(Site Reliability Engineer ,即网站可靠性工程师,是软件工程师和系统管理员的结合),主要目标是通过软件工程技术实现业务大幅增长和保持运维工作平稳。人工智能可以做的是通过迭代、收敛与反馈、逼近工作,确保自动化运维的稳定性以及系统的性能。

3. 生态化阶段
随着互联网发展,少数大公司承担起了基础设施的工作,通过高度集中提升数倍的运维效率让云计算客户专注于业务的发展,并将基础设施运维交给云计算平台。市场规模继续增长的同时,一个公司无法使用一套解决方案覆盖所有细分市场的需求,生态化开始产生。此时大量的数据恰恰为人工智能的实用化夯定了基础,人工智能可以做的是:比如不同公司负责一部分问题形成生态圈,在其中结合新的感知能力辅助人类在巨大数据量、变化的规律中做出各项操作决策。

AIOps的定义与应用

1. AIOps的概念
在人工智能再次崛起的这几年里,新技术不断涌现,利用数据科学和机器学习来推进日益复杂的企业数字化进程成为现实,“AIOps” 应运而生。
根据Gartner公司预测,到2020年,将近 50% 的企业将会在他们的业务和IT运维方面采用AIOps,占比远远高于今天的10%。而2016年,Gartner就已正式将AIOps定义为新的运维类别,Gartner认为当今的时代,数据科学和算法正被用于传统的 IT 运维任务和流程来帮助企业进一步简化运维工作,把人类从耗时又容易出错的流程中解放出来。人们不再需要在遗留的管理系统中定义和管理无穷无尽的规则和过滤器。

为了更好理解AIOps的概念,需要理解AI、机器学习、深度学习几个概念,可以用一张图来表示:
在这里插入图片描述
简单来说,人工智能(AI)是一个广义概念,早期提出时人们的愿景是希望AI能够完全具备人类智慧,这属于“强人工智能”(General AI)。不过在实践中,通常是在某个非常具体和特定的领域,机器逐渐赶超人类,如战胜人类围棋选手的阿尔法狗,这些人工智能的应用,称之为“弱人工智能”(Narrow AI)。这些应用的实现手段得益于机器学习算法的进步,机器学习算法只是实现AI的其中一种手段,而深度学习又是机器学习领域精深的一部分。
在这里插入图片描述
AIOps拆分为AI+ Ops会准确一些,也就是Ops与AI相结合,即人工智能运维。AIOps涉及的技术,从AI的角度主要是机器学习算法,以及大数据相关的技术。因为涉及到大量数据的训练和计算,从Ops的角度是运维自动化、智能化相关的技术。

通俗的讲,AIOps是对Ops的AI化,即将人工总结运维规律的过程变为自动学习的过程。具体而言,是对我们平时运维工作中,长时间积累形成的自动化运维和监控等能力,将其监控、规则、配置、执行等部分进行自学习的“去规则化”改造,最终达到终极目标:“有AI调度中枢管理和质量、成本、效率三者兼顾的无人值守运维,力争所运营系统的综合收益最大化”;或者说,利用大数据、机器学习和其他分析技术,通过预防预测、个性化和动态分析,直接和间接增强IT业务的相关技术能力,实现所维护产品或服务的高质量、合理成本和高效支撑。

2. AIOps的组成与主要作用
功能方面,根据Gartner的定义,AIOps平台拥有11项能力,包括历史数据管理、流数据管理和日志数据提取等。为了更好的理解和落地,可以将前9项能力分别纳入数据接入层、大数据管理层、大数据分析层、应用模块层和可视化展现层,这五层逻辑架构中,各层的功能如下:

数据接入层:通过开放的API接口,广泛接入企业IT系统的历史数据、流数据、日志数据、网络数据、算法数据、文本和NLP文档数据,以及APP数据、浏览器数据、业务系统运营指标数据等不同数据源的数据;

大数据管理层:对业务系统和IT支撑系统产生的结构化和非结构化数据进行统一、高效的存储、管理和调度;

大数据分析层:聚合数据建模、大数据分析能力,实现业务和IT数据的关联分析,通过人工智能对业务波动、故障判断、修复操作等依靠人力决策的环节进行持续学习和自动化响应;

应用模块层:针对基础设施、应用和业务系统之间的逻辑拓扑,提供覆盖全部技术栈的基础设施监控、应用性能管理、业务决策分析以及异常检测、根因分析和统一告警服务;

可视化展现层:以可视化大屏或页面的形式实时展现业务系统运行状态、IT资源利用率等智能运维的关键指标,第一时间发现IT对业务的影响,辅助商业决策。

注:本文内容与图片均来自于网络,相关内容作了一定的修改