之前我写的一篇文章《IT运维发展趋势及运维人的转型升级》谈到了企业IT运维的几个趋势,很多从事IT系统运维的朋友与我就这个话题展开了一些沟通和讨论,其中一个大家都比较关注的正是IT运维工具平台。
这可能与我们所处的岗位和角色有密切关系,毕竟大家都是干运维这个行当,对于手上是否有称手的工具或平台帮助有着共同的诉求。然而,不同企业的IT环境和IT发展阶段导致了他们的IT运维平台处于不同发展阶段。
就此稍稍归纳了一下朋友们在IT运维平台建设中常见四个阶段,发现IT运维平台与我们社会生产发展阶段居然有着极其相似的地方,大致分别对应为IT运维的“农耕时代”、“工业时代”、“信息时代”以及“智能时代”。
一、IT运维农耕时代——手工运维
一些IT信息化建设程度还不算高的企业,正在以他们的核心业务为中心构建IT信息化的支撑和管理系统。例如,我刚毕业时就维护过电信行业的97系统,首次将业务受理、管线信息管理、业务开通等电信行业的核心业务和信息实现统一的信息管理。
当时的系统架构及基础设施架构异常简单,数十台服务器及一些基础软件如中间件、数据库等,就是企业信息化的全部家当。同时,IT运维体系以及业务对IT系统依赖程度等因素,决定了这个时候运维人员对于IT工具和平台的需求暂时相对较低。
在IT系统手工运维阶段,企业IT规模较小和技术栈的单一,使企业的运维水平往往决定于团队中核心运维人员的经验,几个技术大牛往往是运维团队的核心。所以,这种以人为核心运维机制下,使运维人员往往都形成自己的维护脚本库,将一些日常工作中常用到的解决方案和操作方式以脚本的存储下来,成为各自的运维“葵花宝典”。
(那些年,我们用过的宝典)
存在的问题
总体而言,手工阶段体现了人类农耕时代的特点——以人为主劳动,效率相对较低。因此,在这个阶段当企业IT系统发展到一定规模后,就会引发很多问题,例如:
1、运维资源不足的困境
企业IT系统规模、复杂度和运维团队的人力资源之间并不对等的增长,两者之间的差距往往越拉越大。此外,企业IT环境中还逐步引入如云、开源软件等新技术。这些新技术引入更加剧了运维资源不足的困境。
2、运维知识体系转移较慢
例如,大量运维的经验和知识分散在各自的“葵花宝典”中,不利于团队中运维知识的有效传播。
即使增加人力资源,新运维人员加入需要大量的时间熟悉环境,并需要在实际环境和团队成员传、帮、带过程中积累经验,上手过程往往非常长;同时,运维团队中关键人员的离开,也会引起不同程度IT运维质量波动。
3、运维标准化程度低
不同的人根据其经验做同一个操作可能带来不同的效果,甚至引起大规模的故障。我曾经就碰到过一个“给数据库增加数据空间”这样的常规操作导致系统瘫痪半天的事件,究其原因正是运维人员想当然,没有按规范的操作执行造成。
4、企业对IT系统依赖过高
企业对IT系统的依赖与日俱增,IT系统一旦出现故障对企业业务产生巨大影响,单靠人力的运维模式已经远不能满足这种要求。
因此,在手工运维阶段后期,许多运维团队也自发性地编写一些简单的工具以便利于自己的运维工作。同时,更多企业为解决这些迫切的问题,开始着手引入各式的专业运维工具,解决存在的各种各样问题,逐步走向自动化运维。
二、IT运维工业时代——自动化运维
在手工运维的时代,其实许多有远见的技术大牛深感这种运维方法的不足,开始着手建立各种运维工具去解决运维效率低下、操作不规范等问题。
例如,我们公司及dbaplus社群专家邹德裕,早在十多年前就为运维团队用简单的shell脚本开发出一套极简的OraZ工具。
此工具堪称当时Oracle数据库运维的神作,它将大多数Oracle数据库操作、性能分析、问题分析和查询的脚本整合集于一身。此工具攫得数据库运维团队喜爱,到了后来我们服务一些新客户时,运维工程师第一反应就是从笔记本上将这个工具上载到客户的环境中并部署使用。原因无他,离开了它就需要凭记忆写大量操作语句,会令操作效率大打折扣。
因此,针对于不同场景下的各类专门的自动化运维工具和平台应运而生,例如:
● 自动化监控类: 各种提供应用性能监控、基础软件服务监控、主机存储设备、网络设备等自动化监控和告警的软件服务。● 管理类: 各种提供IT运维支撑服务以及配置管理等方式的软件服务,例如,各种ITSM系统和CMDB软件系统。
● 自动化运维类: 各种提供自动化运维手段的工具和软件。
● 其他专项工具: 如应用性能管理APM、数据库运维管理DPM等工具。
带来的意义
1、代表了人类社会工业化的精神
从本质上而言,自动化运维代表了人类社会工业化的精神。以机器代替人类大部分机械而又重复的手工劳动,解决了系统运维工作与人力资源不足之间的矛盾,原来监控、巡检、软件安装部署等耗时且易出事的工作通过工具和平台交由机器来处理。
2、实现企业IT运维的集约化
自动化运维实现了企业IT运维的集约化,通过一个运维UI界面可以监控和管理企业范围内所有的软、硬件设备。集约化使运维人员简化了在一个复杂运维环境中的运维操作及管理,进一步减轻运维人员的工作量。
3、实现运维操作的标准化
实现运维操作的标准化,同时通过专家评审下的完善脚本管理和标准操作,进一步约束运维操作,以工具和平台的方式固化不同场景下的运维操作,避免给数据库增加数据空间这样常规操作导致系统瘫痪的悲剧发生。
4、实现运维操作的专业化
各种专业化工具平台提供不同场景下的专业级运维服务,一定程度上补充许多运维团队专业技能上存在的不足。例如,专业的DPM数据库运维管理平台,可以实现常见关系型数据库的各种数据采集、问题分析和处理等专家级的能力。
5、实现运维知识有效传承
最后,自动化运维还实现运维知识有效传承。各种运维专家的精力得以从繁重的工作中解放出来,他们得到将有效的运维知识以场景化方式沉淀到运维平台中,不断丰富和完善运维平台的能力。
(基于运维场景的运维自动化)
因此,运维自动化平台的建设本质是运维团队基于运维场景的服务化能力的变现过程,它让我们从大量重复无规律的人肉操作中解放出来,专注于运维服务质量的提升。如何进一步提升运维质量,大家都不约而同地开始研究运维工作与数据的结合。
三、IT运维信息时代——数据化运维
自动化运维工具和平台大幅度提升运维效率,让运维团队从机械、重复的劳动中解放出来。此时,运维人员得以重新审视整个运维过程,发现我们现有的运维过程中仍然出现一些问题,自动化运维体系仍然未对这些问题做出很好解答。
自动化运维体系仍存在的问题
1、基于运维者经验/拍脑袋决策
例如,运维操作和问题分析过程仍然是基于运维者的经验做出判断,很大程度上缺少了数据化和量化的支撑,仍然是依靠运维者的经验甚至直觉来分析处理,运维决策靠各种经验判断和拍脑袋决策。
2、运维操作与事件间深层次关系不明
许多运维操作和事件之间的深层次关联关系未能有效评估和分析出来。例如,我们即将上线一个全新版本的应用,这个应用将会涉及到多方面的变更操作。那么,这些变更的操作影响面究竟将会有多大,可能会影响到其他应用和系统的运行,上线前需要知会哪些具体的相关人员。
运维工具数据化趋势
一些运维出现的故障或者问题,其实是长时间积累的结果。
例如,一个数据库的数据空间出现空间容量不足的故障,绝大多数情况下并非一朝一夕造成,它的发生是一个较为长时间积累的过程。
通过对空间容量数据基于时间轴跟踪分析,可以在一个较长的时间段之前就可以做出较为准确前瞻性预测,这样我们就可以提前做出应对和处理,避免故障和问题的发生。
早在十多年前,IT行业中数据仓库、BI等领域利用业务数据进行专门的数据分析和挖掘。而如今,大数据更成为企业业务的主要推动力,这为IT运维提供了重要的启迪,如何利用运维过程中产生各种数据,进行有效的分析和应用,进一步提升运维质量。因此,运维工具数据化成为自动化之后的必然趋势。
运维数据化的特征
所以,运维数据化的特征之一是将一切运维事件和操作数据化,将来自于各种监控系统、自动化运维、CMDB、日志文件以及各种专业运维工具等各种各样的数据进行采集、清洗、整合和结构化,并将所有的数据整合集中到运维数据平台,让原来孤立于企业IT环境中的各种运维数据产生更多连接和碰撞。
其次,构建一个更为开放且透明的运维数据体系,让更多的运维人员参与到运维数据分析中,让运维人员各展所长,从不同的角度去分析和应用数据。因为,如同业务数据一样,数据价值体现于应用的过程中,应用越多数据价值才越高。
另外,建立一套简单且有效的可视化运维数据分析手段,让运维人员通过可视化数据分析图表和报表,可以直观地洞悉运维数据中潜在的关系和趋势。
最后,基于运维数据分析的可视化运维大屏,使运维工作更为显性化。让运维工作这个原来领导看不见“黑匣子”,用可视化技术形象直观地展现出来,一方面,可视化将运维工作更加公开、透明,提升其他部门对运维的感知,提升运维工作的体验;另一方面,运维可视化实现程度的高低,在一定程度上反映出我们对运维工作的理解程度。可视化程度越高,运维就越简单,运维效率也就越高。
通过采集当前环境中的运维数据,集成现有运维平台和工具,利用大数据及数据分析的技术,对IT系统中各个环节的问题进行快速定位、故障排除和预测。对来自业务环节中各个分布系统的数据进行整体分析,合理优化IT服务。
四、IT运维智能时代——智能化运维
最近一两年,AI人工智能成为业界的研究热点。运维人也开始着手研究如何将AI与运维相结合,让机器实现真正自我管理。
目前,业界对智能化运维(AIOps)有着两种不同的解读,其实我认为无论AIOps是指基于算法(Algorithmic IT Operations)的IT运维还是基于人工智能(ArtificialIntelligencefor IT Operations)的IT运维,两者的本质并没有实质的差距,都是围绕海量的运维数据通过大数据、现代机器学习及更多高级数据分析技术,提供具备主动性、人性化及动态管理的能力,使运维工作一定程度上摆脱对人经验和知识的依赖。
目前常见的应用场景包括:
● 异常告警: 根据历史监控指标数据,运用基于时序的相关算法对监控指标异常分析,并对出现异常的监控指标发出精准告警。● 告警收敛: 根据历史事件和告警数据,发现这些事件和告警之间的关系,整合频繁一起出现的事件和告警,并将其认看作同一类故障的告警,从而把多个告警和指标合并,推送给运维人员,做到精细化告警,避免传统监控工具因一故障而导致的告警风暴,生产告警噪音。
● 故障分析: 通过运维数据及事件、告警,结合以前发现问题的经验知识库和模型,建立故障树分析,结合决策树等相关算法,通过推导路径使运维人员对于问题的定位更加快速、直观,使得问题的解决更加容易。
● 趋势预测: 进行历史数据拟合等算法,进行资源趋势/容量预测。例如,主机CPU,交换页不足、内存不足、存储不足会逐渐导致系统故障或应用故障,该系统建立关联模型,提醒用户可能后继会发生系统故障或应用故障。在故障产生真正业务影响前,告知运维人员事先解决问题。
● 故障画像: 通过采集多维度运维数据,构建多元结构化底层运维数据模型,配合各类运维场景,并在场景里对故障进行画像,通过各种故障画像标准形式来辅助企业进行IT运维决策和处理过程。
总体来说,我认为AIOps是自动化运维及基于数据分析的运维的进一步延伸。利用自动化运维阶段积累的大量运维数据,基于运维数据分析和自动化运维时打下的基础的各种运维场景和应用,结合各种人工智能技术,提供更为便捷运维操作和分析。
运维近几年才逐步跨入智能时代,它的目前的应用场景集中于异常告警、告警收敛、故障分析、趋势预测以及故障画像等一些比较基础的方面,但是它体现了运维工具平台未来的主要发展趋势。有理由相信,随着AI技术的不同发展及运维人的不断努力,AIOps将会逐步完善并实现更多的应用场景,未来实现无人值守的IT运维系统或将不只是一个空想。
五、企业IT运维平台的规划
最近一次讨论中,有个朋友问了一个问题:“我们企业IT运维里面碰到了很多问题,是否可以跳过自动化这个阶段,直接实施AIOps智能运维这个阶段呢?”
对于这个问题,我的观点是否定的。原因主要来自于两个方面:
一方面,正如《IT运维发展趋势及运维人的转型升级》一文中提到的例子:经济基础决定上层建筑。
我个人认为:IT运维平台或工具总是必须与企业IT技术架构及运维体系阶段相匹配。IT运维平台落后于整个技术架构和运维体系,会产生很多问题,例如,运维人力资源的不足、各种问题反复出现得不到根治等等。IT运维平台要是过于超前,也会出现用不起、不必要的投资浪费,甚至出现更多反效果。
如果是一些IT信息化程度还不高,并且IT环境规模也不大的企业,它的IT运维平台可以考虑先从自动化监控做起,逐步完善集中化的操作体系。后面,随着IT信息化程度的逐步提升,再逐步引入IT运维平台其他方面的功能与模块,有步骤、有规划地建设IT运维平台,将有限的预算和资源投入到关键的地方。
另一方面,IT运维平台的建设也如经济建设的过程一样,是有规划分多个阶段、循序渐进地持续建设过程,而不能一蹴而就。
这是因为:
首先,运维平台建设和落地需要一个过程,运维平台也涉及到运维的方方面面。
例如,以自动化运维平台为例、它本身就会涉及到监控、自动化运维、配置管理数据库(CMDB)、日志采集以及其他专业工具等各种不同方面的功能建设。“罗马不是一天建成”,适合企业特点的运维平台当然也更是如此。
再者,企业IT运维平台的建设对当时的IT体系有巨大的驱动作用,IT体系需要根据运维平台的建设而做出必要的调整。
例如,自动化运维的落地使大量日常人工完成的工作转由机器完成,运维人员从繁重的工作中解放出来,必然会对当前的运维体系带来改变,需要将富余的人力资源投入到更为重要的岗位和角色中,如丰富自动化运维的场景、将更多复杂的运维操作标准化等,进一步提升企业IT运维的质量和效率。这种调整并不是一朝一夕的事情,需要逐步转化、调整和消化的过程。
最后,运维平台建设的四个阶段有极强关联性和前后顺序,后一阶段往往需要前一个阶段的积累和经验为基础。
例如,手工运维阶段中运维人员头脑中或各自宝典中的经验和脚本,将以运维场景的方式在自动化运维阶段实现标准化、集中化和自动化;而自动化运维中积累的大量运维数据,又为运维数据信息化分析和智能运维提供了必要的基础;智能运维,则是运维数据分析数据、算法和场景的结合体。
因此,运维平台每一个阶段的建设,往往对后续阶段有重大影响。
(结合企业现状及痛点的平台整体愿景和分阶段建设规划)
因此,对于如火如荼的企业运维平台建设,我的观点如下:
● 企业运维平台建设非常重要,它直接推动企业IT运维效率的巨大提升,降低企业运维资源投入,同时也是企业运维质量提升的不二利器。● 运维平台建设将会对整个运维体系有明显的驱动作用,运维体系包括管理制度、流程、人员等各种因素需要与之做出适当的调度。
● 需要针对企业现有的IT环境及未来一段时间的发展做出合理的运维平台未来蓝图和建设规划。规划很重要,有规划才能有计划、有目的地进行运维平台建设。
● 企业运维平台需要有一定的前瞻性,但是由于落地实施需要时间和资源的配合,绝不能贪大求全。
● 基于运维平台构建企业自身特点和需求的各种运维场景,建设自身的运维平台,并不能生搬硬套,适合自己的才是最好的。
● 运维数据可视化是体现运维价值的一个重要途径,将运维数据更为公开、透明,让企业管理层带来更明确的运维体验。
● 企业IT运维人员是运维平台建设的主力,他们长期在企业运维中积累的思想、经验和知识,将归纳和总结到运维平台中并传承下去。
原文发布时间为:2018-11-9
本文作者:梁铭图