深入浅出AIOps,运维十年回顾

2020-02-25 作者:亚洲城动态   |   浏览(137)

2008 年到 2019 年这 10 年多的时间里爆发了很多重要的技术和技术浪潮,运维技术也在这十年间发展到了深水区。随着云计算技术的普及以及容器技术的兴起,运维效率大大提升,运维平台得以将运维人员从繁重的人工操作中解救出来;而人工智能的发展也使得 AIOps 成为可能,让运维人员能够先用户发现故障,更好得保障业务运行。

今年是CNUTCon的第三年,极客邦科技InfoQ中国的第十年。有一些CNUTCon的老用户可能会看到,今年CNUTCon的主题和去年前年不一样,之前都是容器,而今年我们定位是智能时代的新运维。

此文系 QCon 十周年特别策划《技术十年》系列文章,在技术发展 10 年这个特殊的时间节点上,我们邀请了蘑菇街技术总监赵成来谈谈他在过去十年间的感受。一起回顾一下运维行业十年来的发展变化和趋势,以及这中间的演进逻辑,以期给更多的运维同行一个参考。

要说原因也很简单,作为一家技术媒体,我们的使命是推动软件技术的发展,去年、前年我们看到了容器为运维领域带来的种种变革和创新,而今年,到这个节点我们看到AI可以很好地解决运维中的一些问题。

很高兴能在 QCon 10 年之际接到邀请,写一写运维行业发展的这十年,非常感谢 InfoQ 社区的邀请和信任。

我们希望不管是极客邦科技提供的课程、视频、新闻、文章、直播还是会议,都能向整个的开发者社区提供最为前沿的理念和实践。

在我正式写文章之前,我仔细回顾了一下我个人经历的运维的过程,也去翻了很多其他公司公开能看到一些分享材料,也找很多业界的同事做了交流,让他们也一起回忆一下过往的经历,因为十年很长,还是有很多东西值得回味和探讨。

我们自己定位是一家内容驱动的公司,那我们怎么做内容了?这里我简单和各位分享下我们重点参考的技术采用生命周期模型。

最终,我总结出 5 个结论,也是规律,分享给大家,期望带给各位读者和所在的企业一些思考和启发:

亚洲城官网 1

第一,运维行业的发展,是有规律可循的,是一个逐步演进的过程。这也说明,其实我们有很多经验可以向先行者们学习。第二,运维行业的发展,不是孤立的,它与业界的整个技术趋势发展是相辅相成的。这就要求,关注运维的同时,我们也要关注整个技术趋势和背景。第三,运维行业真正高速地发展,真正地被重视,其实就在最近 5、6 年。运维这个行业还很年轻,仍有非常大的发展空间。第四,运维行业当前的痛点,本质上更多的是企业层面的痛点,而不是运维个体的痛点。所以,要尝试自上而下的解决问题,而不是自下而上。第五,未来,一定是云计算的时代,未来已来,只是分布不均。所以,云计算时代下的运维转型升级,将是一个非常明确的方向。

简单来说,技术采用生命周期是一个用来衡量用户对某项新技术接受程度的模型,这个理论最早源于1943年对玉米新品种的扩散行为研究,而后1962年因为《创新的扩散》一书的出版逐渐变得流行起来。

如果用一张图表示这 10 年运维发展的过程,下图再合适不过:

这一曲线将用户采用新技术的过程分为五个阶段,分别包括创新者、早期采用者、早期大众、晚期大众与落后者。简单来说,一个技术从开始到最后流行都会逐步经历这五类人群,比如一开始的创新者,在新技术来的时候,他们只要觉得东西不错,就会毫不犹豫的采用。但越往后走,大家越保守。 任何一个产品从面世,到最后发展成熟,都会经历这些人群,以及这些发展阶段。比如OpenStack的发展。

接下来,我们分过去、现在和未来三部分来分享一下我对运维发展过程及未来趋势的理解。

亚洲城官网 2

过去:人工运维

图中大家可以看到,在早期采用者和早期大众之间,有一个巨大的鸿沟,很多技术很多产品也都是因为没有走出这一个跨过这一鸿沟而消亡,也有的人叫它死亡之井。所以InfoQ重点关注的是前两个阶段的技术,我们通过会议、线上内容、课程等来报道这两个阶段的技术,希望能够被更多的用户知晓并采用,以帮助这些技术跨越鸿沟。

第一个阶段,人工作坊阶段,也就是我们遇到的所有运维问题,基本靠人工操作完成。这种情况下,系统规模不大,遇到的问题相对简单,大多集中在硬件、网络和系统层面,所以有一定操作系统或网络维护经验的人就可以搞定。

所以简单来说,我们做内容时参考的模型就是这个技术采用生命周期模型,我们关注处于创新和早期采用阶段的新技术,以帮助他们跨过死亡之井(Chasm)。

这种场景下的运维,也就是我们常说的 SA,系统管理员,而且一般身兼多职,人数也不太多。

在这里,我也总结了从我们看来的运维领域重点的几个技术。他们都还没有跨越鸿沟,我们也是在重点关注这些技术点。

第二个阶段,脚本工具阶段,一般绝大多数企业都会很快从第一阶段过渡到第二阶段,因为上一阶段的大量重复繁琐的操作,完全可以转化为脚本来实现,而不是每次都去敲一堆类似的命令。

亚洲城官网 3

早期的 SA 主要以各种 shell 为主,所以很多 SA 如果会 shell 编写一些批处理脚本,就会很有竞争力了。再往后,我们大家所熟知的 Perl、Ruby、Python 等动态语言也被广泛应用于脚本工具的实现,特别是一些逻辑和场景相对复杂的自动化实现。

接下来,我结合今天的主题,和大家重点聊聊AIOps。前面和大家介绍了这么多,就是想告诉大家我们做内容的思路,以及为什么我们要定智能时代的新运维这个主题,是因为我们的编辑从中看到了一些发展趋势。

第三个阶段,流程和工具阶段,当我们把一些复杂的操作封装成一个个的脚本后,效率确实会提升很多,但是我们所面对的业务场景和体量也在变得更复杂。比如,对于运维同学,以前就是负责安装和配置一下操作系统,如果是几十台或百台的规模,脚本批量执行完全可以搞定。

前两天,我在微博上和一个粉丝还讨论,它说为啥你们又搞出一个新名词,上一个新名词DevOps我还没消化明白了。我说,这不是新名词,我们相信AIOps是运维发展的必然趋势。如果我们不抬头看路,瞄准未来,那可能就是井底之蛙了。

但是,再往后,运维还要负责软件的频繁发布,每周要多次,甚至是每天都会有,这是由业务特点决定的,特别是互联网类型的业务,与原来传统的每个月、甚至几个月发布一次的场景要求完全不一样了。而且随着用户体量的增加,服务器数量可能已经到了几百上千台,而且部署的业务也不尽相同,所以单纯靠脚本执行,已经完全不能满足要求。

为什么这么说了?我们先来回顾下整个运维的一个发展历史,运维人员一开始的称谓其实是系统管理员,然后逐步过渡到后来的运维,再后来又有了DevOps或者SRE的称谓。我们其实可以看出来,这些年,随着互联网技术的逐渐成熟,企业对于运维的能力要求越来越高,整体来说,就是要让运维具备开发的能力。

这时候,就要面临更加复杂化的场景实现,比如做一次业务部署,运维同学可能要安装服务器,做系统配置变更,安装软件包、启停进程,然后再负载均衡上配置服务等等。这时,就需要有一个流程将一个个的脚本功能串联起来,同时还要有一些脚本执行结果校验及判断的过程。

亚洲城官网 4

所以,这就对流程和工具平台有了更大的诉求。同时,在一些 IT 化比较早的行业,如电信运营商和金融行业,由于对变更过程的严格控制,这就需要更加科学和规范的管理措施,所以会引入 ITIL 这样 IT 服务管理体系,对整个 IT 系统及其变更进行管控。

为什么会有这样的趋势呢?我认为是整个互联网应用的运维越来越复杂了,动不动就是几万个应用,几个9的可靠性,运维管理的复杂度和难度成倍数的增大,业务的告诉发展倒逼运维的迭代。

其实,第一到第三阶段,在 2009 年到 2013 年期间仍是绝大部分公司主流的运维模式。如果能够做到工具化,或者有一些工具化平台,那应该算是比较先进的运维模式了。

这些年,运维平台的演进我觉得大体是这样的:

现在 :自动化运维

亚洲城官网 5

但是,对于一些大厂,步伐会更快一些。2013-2014 年,就已经有国内大厂进入到了第四个阶段,运维已经体系化,完全的自动化。

这两年炒的比较多的概念还有一个就是自动化运维。借着这个大会,我采访了很多自动化运维的团队,也都问了大家说这么多年自动化运维实施下来,都解决了他们哪些问题。得到的答案出奇的一致,基本围绕在效率这个词上。

直到目前为止,从笔者交流和了解到的实际情况看,绝大多数企业基本都在第四阶段的建设过程中,所以我们把 2014-2019 这个阶段定义为现在。

记得在2001年的时候,Gartner Group有一个调查显示在IT项目经常出现的问题中,源自技术或产品(包括硬件、软件、网络、电力失常及天灾等)的问题只占20%,但流程失误方面却占40%,人员疏失方面也占到了40%。

到了这个阶段,就凸显出几个明显的特点,也是我们上面提到的其中几个规律,我们分别说一下。

亚洲城官网 6

第一,国内的运维行业的爆发,运维岗位真正地被重视,其实就是近 4、5 年左右的事情,也就是 2014 开始到现在

这些年来,企业通过自动化运维平台以及DevOps等协作理念其实是逐步在解决了Gartner提到的流程失误和人员疏忽相关的80%的问题。虽然目前没有具体的统计数据,但可以确认的是,这一问题得到了有效解决。

为什么这么讲?其实我只要关注下,运维行业有自己垂直的技术大会,类似 QCon 以及 ArchSummit 这样的顶级技术峰会,开始专门设置运维专题,基本就是在 14 年左右开始的。这个现象说明,运维的技术复杂度已经上升到了一定程度,各大企业也开始意识到运维对于企业的效率、稳定和成本有着决定性作用,对运维的诉求和要求也越来越高。

但另外一个值得注意的点是当前的IT项目基础设施环境与5年前已经没有办法同日而语,更不用说10年前。近几年,随着云计算、微服务等技术的流行,以及互联网业务的迅速发展,运维人员要关注的服务数量也呈现了指数级增长,自动化运维虽然提升了效率,解决了一部分问题,但也遇到了新的难题,比如面对繁多的报警信息,运维人员应该如何处理?故障发生时,又如何能够迅速定位问题?

从这个角度讲,新兴的运维行业其实才算是刚刚起步,未来仍然会有很大的潜力和空间。

亚洲城官网 7

第二,运维的发展不是孤立的,它与整个技术趋势发展是相辅相成的

这个时候,恰好历史进入了人工智能时代,那上面的这些问题可否通过『AI Ops』的这种跨界创新的方式来解决呢?于是Gartner在2016年时便提出了AIOps的概念,并预测到2020年,AIOps的采用率将会达到50%。简单来说,AIOps就是希望基于已有的运维数据(日志、监控信息、应用信息等)并通过机器学习的方式来进一步解决自动化运维没办法解决的问题。

大厂之所以在这方面会走在前列,一方面是因为业务复杂度和体量所决定,另一方面,是因为这样的场景倒逼着整个业务和技术架构发生了很大的变化。比如我们现在早已耳熟能详的服务化和各类分布式技术,就是在这种场景下倒逼着技术体系演进出来的。

如果说要下一个定义的话,我认为是这样:

也正是在这样新的技术体系下,运维所面临的场景复杂度也急剧上升,原有的运维技能如操作系统维护、系统配置、脚本编写已经完全满足不了要求。同时,由于软件系统复杂度的提升,也需要运维投入更多的精力去关注业务软件架构和应用服务上。

亚洲城官网 8

所以,这种场景下,我们所熟知的 DevOps,SRE、PE、应用运维、技术运营这些新的名字、岗位或理念,开始如雨后春笋般浮现出来。

那紧接着又有一个问题,人工智能需要有数据,AIOps的数据从哪里来?我想各位也一定能列举出很多,比如各种各样的监控数据、各种各样的日志数据,各种各样的硬件数据。总结起来,有这几类:

其实这里很多概念早在 10 多年前就已经出现了。比如 SRE 最早是在 2003 由 Google 提出;DevOps 理念的影子在 2007 年左右就开始浮现出来,2009 年的 DevOpsDays 大会上正式提出了这种叫法;而像 PE 这样的角色,最早是在 Yahoo! 设置的。

亚洲城官网 9

这些优秀的运维或者稳定性的理念,在国内兴起前,其实已经在国外被广泛实践了很多年。究其原因,还是因为国外的技术发展是超前于国内的,比如 Google 在分布式领域的“三驾马车”,直接开创了一个新的技术时代,让业界有机会充分实践分布式的技术。

当然,这不是我凭空说的,这是百度同学总结的,晚上我们有AIOps的圆桌讨论,到时候可以过来聊聊。

这里,我想表达的一个观点是,这些理念在国内真正的落地,还是因为有实际的场景驱动。业务体量和复杂度到了那个程度,技术体系必然会找朝着分布式的方向发展。而配套的,必然会有 SRE、DevOps 以及 PE 这样相辅相成的体系出现

你肯定会问,说AIOps有怎么样的应用场景呢?这里我来说几个例子,阿里巴巴很早之前就在利用机器学习的方式来预测磁盘故障,而百度的智能运维,这个一会百度AIOps的同学也会分享,应用也非常广泛,包括性能优化、故障分析、流量调度等等。

国内大厂有机会提前走到这一步,从绝大部分公司发展的过程看,也必然会遵循这样的规律,只是早跟晚,快跟慢的问题。这里的决定性因素其实是业务复杂度和体量所决定的。

亚洲城官网 10

目前很多企业和公司之所以能走到运维的第四阶段,其实很大程度上也是因为广泛采用分布式技术,引入了服务化和各类分布式组件,在这种情况下,业务架构越来越清晰,对应的对运维的诉求和要求也就逐步提升了上来。

那现在有哪些AIOps的落地实践呢?这里我分享一下我看到已经开始实践的企业,并且在网上能查到相关资料的。供各位参考。

典型的技术和发展特点:

从技术角度,我们关注下这 4、5 年来技术的发展,说两个最典型的:

一个是容器技术,以及以容器为核心的编排系统,现在基本是以 K8S 为标准了。

首先,Docker 的创始人 Solomon 其实是运维出身,并不是做开发的。当时他的想法也很简单,就是希望能够屏蔽一些跟应用无关的底层细节,Run any application,anywhere,提升部署和发布的效率。

后来一经推出,大受关注,特别是在 14 年左右,可谓是大红大紫,且围绕着容器的一整套生态也在逐步成长起来。到目前为止基于容器和 K8S 的基础平台,已经成为 PaaS 体系建设的标准,如果哪项技术不适配 K8S,那基本是没有发展空间的,也基本不会被认可。

从运维的角度看,容器解决的最大的问题就是运维的问题,特别是运维的效率问题。从目前业界的实践来看,容器确实发挥了极大的作用。

现在更为极致的一种理念是无服务器技术,也就是我们熟知的 Serverless,也叫函数服务器。这种理念极致的地方在于,以后纯粹就是 NoOps 的时代,开发写完代码直接部署发布到云上,完全不用考虑服务器和资源的问题。这种场景无疑是将整个迭代周期压缩到了极致,理想状态下,让整个技术团队无需考虑运维的事情。

但是,实际场景下,新技术发展仍需要一定周期和周边配套体系完善。同时,新技术能够发展完善,也需要找到适合自己发挥的业务场景,有时新技术出现并不是要为了完全替代早期的技术。

简单总结一下,我们会发现,当前非常多的新技术和新趋势的产生,从本质上都是在解决运维问题,未来也一定是这样一个趋势

从最佳时间角度,到了这个阶段,从我个人认为,现在业界运维问题,更多的是企业层面的运维问题,而不是个体运维的问题亚洲城官网,。这一点跟开发者社区特别强调个人能力极为不同,很多运维的问题解决不了,有时候很大程度上是受限于企业体制、组织架构、文化等方面的非技术层面的因素,而不单纯是个人能力所能解决的。

所以,要解决企业的运维问题,有时是需要自上而下的推进,整个技术团队共同执行落地才可以。从运维的角度单方面发起,是不会有效果的。

未来:智能运维和云计算

关于智能运维

智能运维或 AIOps,我之所以把它定位在未来阶段,主要是我认为目前能在这个领域有成果的,还是集中在大厂。对于绝大多数企业来说,特别是中小企业,时机仍然未到。

从 AI 的角度,AIOps 有三个方面的充要条件:机器学习算法、计算能力如 GPU、海量数据

从上面三个条件看,也就不难理解,为什么 AIOps 做的比较超前的都是国内外的大厂,因为有技术实力、有足够的资源和数据,最关键的是有足够复杂和变态的业务场景以及运维场景,在倒逼着 Ops 往这个方向上走。

但是,对于一家企业来说,实施 AIOps 最重要的前提条件是数据,海量数据。目前来说,能够具备这个条件的只有大厂,因为只有大厂有这个业务和资源体量,能够产生海量数据。

同时,对于 AIOps 来说, 还有很重要的一个前提条件,那就是高度完善的运维自动化,也就是 Ops 的部分。自动化都没做好前,AIOps 是没有任何意义的,千万不要本末倒置。

我的理解,AI 和 Ops 要解决的还是两个层面的问题。可以类比到人,AI 相当于人的大脑,我们手脚和躯干是执行系统,大脑负责决策判断,手脚躯干负责完成大脑下发的动作指令。对应到运维上面,AI 要解决的是怎么快速发现问题和判断根因,而问题一旦找到,就需要靠我们高度完善的自动化体系去执行对应的运维操作,比如容量不够就扩容、流量过大就应该触发限流和降级等等。

最后,AIOps 的发展一定是一个长期演进的过程。AI 是 Ops 的有力补充,进一步降低运维的工作强度和压力,但是 AIOps 一定建设在高度自动化和完善的运维体系之上的,是一个演进的过程,不会是一个跳跃性的过程,也不会产生一个完全颠覆性的 AIOps 模式,将现有的 Ops 体系替代掉。

云计算:未来已来,势不可挡

其实仔细关注下技术趋势的发展,我们会发现,现在很火的一些概念,比如 Serverless、FaaS、边缘计算、弹性计算、云原生、IoT 等,甚至是我们耳熟能详的 Docker 容器、K8S、机器学习、AI 等等,基本都跟云计算相关。很多都是在云计算这个趋势下衍生出来的新技术,而且又因为云计算提供的基础设施,相互之间又有紧密的联系。

说地严格一点,这些技术只有在云上,甚至是公有云上才会发挥作用和价值。脱离了云计算,这些技术没有任何意义。因为,云计算带来的最大的好处就是“按需索取”,也就是我们说的弹性,进而带来成本上的最优化。如果我们自己机房里还维护着上千台设备,都是我们自己的成本,说实话,再弹性也没多大意义,因为不解决实际的成本问题。

再就是,到了机器学习领域,特点是周期性地需要大量 CPU 和 GPU 资源,并不是持续需要,所以如果还是延续老的思路自己采购,这个成本就大了去了,对于一般企业根本不现实。况且有时候还要考虑资源在不同区域分布的问题,比如边缘计算,一个普通企业搞一个机房还可以,但是要管理和维护很多机房,就不太现实了。

所以不难理解,未来的技术趋势,一定是跟云计算相关的。这个是大势,不可逆。

因此从个人成长的角度,我觉得,如果想要更好的发展、更大的空间,就朝着云计算这个行业走,做跟这个行业相关的岗位。一些岗位参考,比如,公有云平台的运维,至少在规模和体量上足够大,挑战也足够大,还能接触到很多新技术。其他由云计算衍生出来的解决方案架构师、技术运营、CRE 这样的岗位也都是不错的选择。

对于企业来说,尽快拥抱云计算,将更多的精力放到自己的核心业务能力上,通过云的能力,为自身的业务带来更多可能性,或许是一个更好的选择。

写在最后

这些年经历下来,特别是近几年,最大的感受就是变化之快,让人目不暇接。新事物、新技术、新产品、新平台层出不穷,有时不知从何下手。

面对这样充满了不确定性的场景,运维人员,包括其他技术人员,唯一能做的就是坚持学习,拥抱变化,脚踏实地的解决问题。对于个人要不断提升能力,对于企业要审时度势,选择好未来的技术方向,我想未来一定会更有挑战,更有乐趣,也必将更加精彩。


作者简介:

赵成,资深 DevOps 和运维专家,现任蘑菇街平台技术总监,腾讯云 TVP,极客时间运维专栏作家,多届 ArchSummit 运维专题明星讲师和优秀出品人,SRECon19 Asia/Pacific Speaker,个人专注于云计算、SRE 和 AIOps 领域。

本文由yzc216亚洲城发布于亚洲城动态,转载请注明出处:深入浅出AIOps,运维十年回顾

关键词: 亚洲城官网 yzc216亚洲城