运维演变之路

本文介绍了运维体系从脚本时代、工具时代到DevOps时代的演变,以及未来走向自动化和智能化运维的趋势。分析了各阶段存在的问题,如脚本化阶段逻辑实现难、工具化阶段工具不完善等。还提到了DevOps转型的方法,如用Docker强制落地,强调运维转型是自我驱动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

运维体系经历了脚本时代、工具时代以及目前的DevOPS时代。另外在未来走向自动化运维和智能化运维时代。

脚本时代是所有公司都会经历的过程,运维工作需要通过脚本来操作,但随着业务扩大和复杂度增加,通过脚本越来越难以完成,所以就引入工具理念,在运维工具时代,通常都会经历从纯粹的工具团队/运维团队并行的阶段,为了更好保障工具质量的在进入到工具团队阶段,再到逐渐由DevOPS思想和只能的偏软件思想的工具团队时代,到后来的应用运维团队全部打散合并到各个BU的软件开发团队中,全面实践DevOPS思想。

运维演变

运维是一种能力而不是一种岗位。研发人员将具备运维自身产品的能力,同时运维人员具备研发能力,技术将不在成为限制业务发展的瓶颈,DevOps带来的效能提升反而能助力业务的构建。

脚本化

应用运维团队,首先要做所有日常运维的工作比如发布、扩容、重启、修改脚本等,另外就是环境维护,比如操作系统升级也是运维来负责。除了这些日常工作还会负责容量管理,比如某个流量大的时期要确定扩容多少。

在这个阶段通过脚本来进行运维工作,写一些单机脚本,数量多而且还有一些批量操作的措施。

这个阶段最容易出问题,复杂的逻辑会非常难实现。比如你的服务器数量多分布在不同城市,通常发布时间窗口并不长,如果发布的应用比较多,你就需要打开很多窗口,最后你自己可能都不知道哪个窗口是更新的那个城市机房的服务器,哪些更新了哪些没更新。因为更新的时候肯定不能全部更新一定是分批进行的,要保证业务可以正常使用。

工具化

工具化非常简单,思想就是通过软件的系统实现复杂操作,复杂操作的本后其实可能是单机上的脚本操作,因为这对运维人员来说便于维护,如果全部程序化就非常难了。
在这个阶段通常会有一个工具团队,专门做运维系统专门做软件层面的开发,同时保留运维团队,运维团队主要负责之前提到的哪些内容。这就意味着工具团队不负责这些具体操作只负责写系统。开始这2个团队是分开的,然而在实际工作中也发现不少问题,工具团队觉得自己做了很多工具,运维应该可以很轻松;运维告诉你其实并不是这样,基本上跟以前差不多。

这里的问题就是运维只是操作方式变化了,变成了点点点只是UI上的区别并没有实质变化,而工具团队也很容易有成就感认为做了很多可是别人不认可。出现这种问题的原因是工具不够完善,工具使用过程中如果工具出现问题运维很难介入,只能让工具团队来解决,在这种情况下还不如手工操作脚本执行这样出现问题自己可以查。

另外如果把运维分成很多团队比如网络、服务器等每个团队都是独立的,他们去开发工具都是按照自己熟悉的语言和架构来编写,这就变成百花齐放什么都有,一出问题各种语言的各种架构的人都要来,生产系统是一个整体框架而运维系统则是一个各自为政的状态。

所以需要对工具团队进行合并。向对待一个研发项目一样去看待运维系统。另外需要要工具团队自己做运维工作,这样就成为一个团队的工作,不存在协调沟通问题。
另外工具化的前提是标准化,目录结构、账号等等,前期一个坑后期需要很多时间和经历去解决。

DevOPS

Google的SRE团队要求50%时间开发50%时间运维,但实际我们做不到因为运维压力太大了还是别做开发了。但谷歌认为如果运维时间超过50%则会把这个压力转到研发团队。那么如何做好这个思想的落地?

决定把整个运维团队拆掉,直接交给研发团队,目标就是日常的运维操作逐步让研发自己去做。但这个前提是,比如说你要把日常的运维操作全部交给这个系统的研发人员去做,意味着需要有一套很高质量标准的运维系统,如果你没有这个系统那研发就要崩溃了,所以这里的挑战是工具化的程度。

因为把这些工作交给了研发团队,所以在这个阶段可以把之前在工具化阶段遇到的问题解决掉。

如何将这种思想落地是一个需要思考的事情,在这里Docker是非常有效的让DevOPS强制落地的方法,因为它有一个DockerFile,生产环境的一台机器的整体环境,可能不是研发独自搭建出来的,有可能是运维做一部分开发做一部分,所以没有一个人请出这儿环境到底是什么。而DockerFile强制描述了这些环境信息,所以这个强制方案可以让DevOPS很好的推进。

SRE:谷歌运维解密

自动化

自动化意味着,怎么样让工具中人参与的多个环节直接到没人参与,这实现起来其实非常难。

比如发布,发布时运维中最常发生的变更,一个发布动作怎么做到没有人?为什么很难?比如发布完一台机器之后重启了,你怎么知道重启完应用到底是否正常,这个标准很难去确定。

另外做到无人值守还会需要做到架构层面的支撑比如机房流量一键切换如果各个系统不具备这个能力,整个架构也不会具备。

智能化

智能运维、智能化的前提是需要有大量的数据收集,如果没有足够的数据和经验是难道做到自动化的,因为智能化的前提是就是自动化。

目前的自动化只能做到针对非常强的特征匹配因为毕竟目前很多时候还需要人去判断。只有当你有大量实践经验和准确的数据之后才有可能做到,而且所谓的经验如果不是格式化的就很难学习,还有特征,人工提取的特征意味着是偏向固化的,所以需要机器学习去提取特征。

DevOPS转型不是简单的把工作量从运维转向开发,目的是用研发的手段去改造传统的人工、低水平的运维,真正用工具化、数据化来提升运维。

总结

在运维上,要避免的是开发系统的人不知道这个系统是如何部署和运维的,这样知识不完整。很多系统开发简单,但规模大,部署导致了复杂性,研发部知道这些,对系统认识不够,也就不知道程序设计十分合理。

把日常工作交给研发、让运维同学能有时间去做运维系统的研发。这样研发同学对自己的系统的运行环境更加清楚,增强控制权,自己写的系统自己负责,同时运维也可以建设更好的系统。其实运维工作方式的变化也在倒逼运维人员的转型,如果还停留在人肉上线的阶段那么被时代所淘汰是必然的,目前一二线互联网公司已经没有了人肉上线工作全是开发自己上线运维人员的角色得到了转变同时在这种转变过程汇总能力也得到了提升。不过小型互联网公司还处在脚本和工具化阶段,这个没办法大公司也是这样一步一步走过来的在阿里早期也是这样一台电脑打开N多个shell脚本进行停服务更新服务启动服务的阶段。所以我觉得目前运维转型是一个自我驱动的过程而不是公司推动,因为真的到了公司去推动的时候你已经没有价值了。

转载于:https://www.cnblogs.com/rexcheny/p/9539106.html

云计算时代下的企业IT运维变迁   IBM 谭瑞忠:部署一些系统资源,这样的一些事情,就是说用户有一个终端界面,他可以说需要两台UNV,需要怎么样的一些什么环境,只要有页面请求,就可以做出来了,这是一个,另外一个是就是流程管理,这是很多用户包括IBM自己已经在做的事情。   第二个还可以扩展,什么意思呢,就是我不需要终端用户用人来请求系统的资源,我完完全全可以根据一个应用来请求系统资源,比如说我跑一个应用,比如说一个网页比较流行,点击率很高,突然发现支持这个网页的服务器不够了,在这种情况下,有些部署之后,应用可以自动根据地域的规则,自动把下面的一些资源能够重新动态的调配,这样可以满足动态的请求,有一些案例蛮有意思,比如说(ORD)(E卡末),在美国(克瑞斯摩斯)有很多用户来点击这个网页,但平时没有很多,在这种环境下从服务器的数量来讲,要最大数量的维持这些服务器,根据动态部署来调配这个事情,这是一个很好的例子。   如果实现弹性扩展动态资源之外,下一步可以进入到应用创新,应用创新刚才已经讲到了,如果我的应用已经有一些对系统资源或者其他资源动态的需求的时候,我完完全全可以通过这个环境很快帮助这个应用重新调配、重新部署它所需要的资源,所以说在这一步之后,回到刚才云计算的分析,它就慢慢实现了云的特性,所以我就把这个叫三步学,一二三,我们IBM在一步一步走,而且自己在用,而且客户也在用。   下一页是我云计算对我们的科研人员的一些挑战,这是我的一个总结,我感觉第一你要认识到云计算是我们在做十年二十年之后管理创新的扩展,和事业的延续,当然(奥得死)是IBM的运营人员,第二就是要认识到云计算真正的价值,不要仅仅认识在定义上,认识到给我们业务、企业、社会带来的价值,然后去推崇这些价值,不是推崇这个云,第三看我们企业的现状,能够足够确定我们企业在上云计算后要做的事情和走的途径,每个企业情况不一样,要做的事情也不一样,每个企业都需要我们运营人员深入分析,然后决定怎么样能够逐步实现云所在的价值,最后一个是业务人员和开发人员合作,怎么样把企业一步一步的从现状比较动态的资源部署和动态服务知识的一些境界里面去。   每个人都可以请求一些资源,服务器、内存,每个员工都有这个能力,进到他所提供的资源里面做一些创新的工作,然后这个云已经是完完全全在我们IBM里面,所以有很多数据就是我们的回报,一些用户收益的信息在这里面反映出来了。就是逐渐推荐,包括很多在绿色方面的经验,我的演讲就是这些,花了很多时间了。有没有什么问题?   问1:我知道在五年前IBM比较流行,到了90年代以后,IBM开始推广大型机。如果从商务角度来说,IBM看待大型机和云计算有什么区别?   IBM 谭瑞忠:如果我们有大型机的话,实际上我觉得云有云的价值,大型机有大型机的价值,如果工商银行来卖我们的产品的话,它肯定不会买一个云的功能,买大型机比较有保障,云是针对另外一些用户,就是说这些用户可能需要一个是购买不起大型机,也没有必要,还有改变想实现动态部署、资源整合的功能,刚才你提的这个问题蛮有意思,我也曾经想过这个事情,我们是从硬件开始研发,硬件慢慢部署到软件,现在回来了,我们再开始看硬件,硬件哪些可以做的更好,主机就回来了,但是慢慢又发展成为像(故们)公司,一个我觉得很创新的一个公司,它把很多小型机放在一起,不需要大型主机可以做同样的事情,当然也是在探索的过程当中,还没有到大型机不用了用一些小型机的时候,所以我觉得很多事情都是这样的,我感觉云如果有大型机的话,需不需要云,如果我在IBM内部问卖主机的同事,他一定说不需要,他往往是从商务的角度来讲,因为他主机可以实现任何一个分布式计算的功能,但是返过来如果卖一些分布式云的人,所以这完全是一个商务上的一个理念了,所以我现在没有直接的回答,这两个没有可用可不用,因为两个确实有各种不同的情况,比如说我现在碰到一个问题,我的客户问我,现在硬件可以保证主机99.99%不会宕机,可以做这个保证,软件能不能给我一个保证,我的客户经常会问我,软件能不能给我一个这样的保证,我不能给,我给不出来,所以软件还是蛮新的一个领域,所以现在就是说分布式计算往往是想用软件来控制硬件,不需要硬件的一些东西,软件可以控制到了,因为很多应用适合于这种情况,这是好事情,但是像工行这种事情的话,怎么样用软件来实现我所需要的99.99%的保证,这个做不到。   问2:有没有什么大的成果?   IBM 谭瑞忠:软件我们有一些成果,无锡去年做的比较大一点,这个云从动态部署开始入手,把一些(不瑞克)服务和(艾斯放)整合在一起,然后在上面可以实现一些用软件可以控制的RDB,就是说动态的终端用户请求一些资源,可以在后台分布这种事情,然后扩展到怎么样实现一些业务上动态部署的一些步骤这是一个,在安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值