【他山之石】运维人员不是打杂的 运维开发的自我修养

时间:2022-01-11 02:59:15

原文1:普通运维人员就是秋后的蚂蚱!

http://3060674.blog.51cto.com/3050674/1598255

【他山之石】运维人员不是打杂的 运维开发的自我修养

我虽是一个IT屌丝,但特别喜欢关注整个大行业的动态,干IT运维相关工作到现在也快8年了,企业对运维人员的专业能力要求确实提高了不少,现在再去面个运维工程师的职位都要求会个开发语言啥的,这在2007是不可想象的,那个时候,运维和开发是经纬分明,两个完全不同的工种,大多数运维人员只需要会配置常用服务、简单的调优、再会写个SHELL脚本处理一些日常事务(比如监控应用、数据备份等) 的话就能算是一个合格的运维工程师了(虽然现在依然有很多运维人员也还只是这种水平)。以上这些要求其实也算蛮简单的,那些年市场上充斥青鸟毕业生,稍微带一下就能干上面讲的这些事情。所以在那时,干运维还是蛮好混的,只不过工资确实是比开发人员要低一个档次的,当然行业地位也是,好多企业运维部门算是最边缘的一个技术部门了,在人们眼中,与运维最相近的字眼就是网管,我当时特别不喜欢别人说我是网管,总感觉是在网吧修机器的。
 
擦,一转眼快8年过去了,我习惯每年最后一天写篇文章,之前都是在北京过元旦,一个人孤独的写下一年来的酸甜,今天这篇文章却写在纽约,身边还陪着美好的姑娘,估计好多年前自己英语还很烂时也想不到今天就会站在美帝的土地上,就像刚做运维时,想不到自己日后会走向开发这条路。不过我想我这也算是顺应了行业的大趋势吧,因为风来了,相信已入行的运维伙伴们都已看到,普通的运维人员已是秋后的蚂蚱,蹦跶不了几天了,他们已经走在了被淘汰的路上,IT自动化必将砸掉大多数不思进取的运维人员的饭碗,寿终正寝只是时间问题,
 
一些人可能觉得我是危言耸听,说我夸大现实,运维行业正需要大把的人手,对此,我只能说这是蚂蚱的垂死挣扎。我给各位讲个真实的故事,希望能给这些人以些许触动。
我来自山东的一个小农村,小时候,整个村会经常停电,然后就会看到过一会就有个电工爬到电线杆上去修了,有时候修不好的话,还要请县城里供电局的更专业的电工来修,那时候停个电是家常便饭,几乎每个月都会发生数次,长大后我才想明白为啥经常停电,因为那时候电闸都是旧的,不好用,一家一不小心短路了,整会村都会跟着断电。那时每个村都会配一个电工,村里固定每月会发给他三四百块,这基本上算是个兼职,毕竟不会天天断电,所以这个职业在那时看来还是不错的,并且技术要求也不高,好多人还是争着想干这个活的,但饭碗毕竟只有一个,所以其它人只能眼馋了,每个村的电工自己当然也很HAPPY,认为自己吃上了铁饭碗,可是好景不长,好像是我上初中的时候,村里统一换了新的电闸,好多线路也都换成了新的,果真停电率迅速由每月数次降低到了好几个月一次,我们家的小卖部终于不用担心冰柜里的冰棍会经常在没电时化掉了。我们村的电工突然闲了下来,好长时间都不再见他爬电线杆了。没过多久,村支部就觉得每个月花几百块养个闲差不值,但又不能没有这个职位,村领导们于是想了个好办法,就是好几个相邻的村共用一个电工,于是再停电时,我就看到了外村不认识的人在爬电线杆了,因为我们村的电工不知何故不让他干了,我想可能是技术不精或没送礼吧。每个月损失几百块,他当然不爽,在他下岗后,一个月内村里连续断了好几次电,查出来原来是有人故意把两条电线搭在一起导致短路,村领导很生气,估计都知道是谁干的,但是不能明说,只能在村广播里说,已经发现有人故意破坏电线,并且已经掌握了一些证据,如果此事再发生,就让*局来抓人了,从那以后,用电才正常起来。慢慢的,一年都停不了一两次电了,后来,几个村都不再养电工了,而是变成了供电所给每个镇上配个兼职电工,一个电工管十几个村。再后来我就到外地上学了,不于关注这个事情了。 
 
回到我们自己,请各位想想,我们自己会不会也是那个电工呢?呵呵,别想了,运维人员其实就是那个电工,多年前,每个公司都养一些运维人员,维护自己公司小机房里的几十台服务器,慢慢到现在,小公司都不设置机房了,甚至都不买服务器了,业务直接放在云上,也基本不需要考虑断电问题,因为云后面有一大群专业的运维人员帮这些小公司维护着他们的线上业务,所以好多小公司连运维人员都省了,好吧,这些原本只能在小公司工作的运维工程师就逐渐涌向大公司,大公司都是几百上千、甚至数万台的服务器,一般都会有数十个甚至上百个的运维人员,以维护和运营他们庞杂和繁多的各项IT应用,但大公司真的需要这么运维人员吗?在这方面国外做的是更先进一些,之前看到文章说facebook一个运维人员要管理2万台服务器(http://www.csdn.net/article/2014-02-05/2818310-facebook-ops-staffer-manages-20000-servers),我不确定数据是否真实,但我确信如果自动化做的好,并且管理得当的话,这个数字是肯定可以实现的,也将最终会实现。想一下,等这一天到来时,每个公司那一大堆闲下来的运维人员的出路在哪里呢?这个问题到底怎么破?我觉得其实很简单,就是去做顺应行业大趋势的事情,那这个行业的大趋势是什么呢?其实就是以下两点:
 

1.  资源集中化:IT运维终将变成整个行业的基础服务,就像水和电一样,你要用电不代表你需要自己买一台发电机,早晚有一天,绝大部分的IT业务会运行在数十家巨型的IT基础服务提供商身上(他们的前身就是今天在跑马圈地的运服务提供商),这样将会大大降低整个行业的IT运营成本。


2.  高度自动化:我坚信,只要时机合适,绝大部分现在运维人员干的时候都是可以完全自动化起来的,因为人不如机器可靠,更不如机器高效。现在所谓的自动化不过都是半自动,是在人的监督和调动下的半自动,就像自动档汽车还是要人来开一样,但无论你信不信,不需要人开的汽车终将普遍起来。
 
总之,建议所有做运维的小伙伴们,不管你是新手还是老手,趁早学好运维开发,砸掉你身边同事的饭碗,然后把他的那份工资也一起挣了,或者等着他来砸掉你的饭碗,哈哈。
 
好了不扯淡了,你可能不认同我的观点,但做为一个从业多年的老鸟,这就是我看到的这个行业的未来。

----------------------------------------------------------------------------------

那么运维该怎么做才能够在开发人员面前摆正姿态?下面通过@左耳朵耗子的微博的简单观点阐述了运维人员应该如何摆正姿态,进入IT运维的最高层次:

“其实,运维要用‘云服务’的思路去做。如果一个公司内的运维团队开发出一堆工具,让做应用开发团队可以很容易地申请机器、存储、网络、中间件、安全等资源,并很容易管理、监控和部署应用,并提供运维资询。而不是帮应用开发团队干活擦屁股当保姆。那么,这个公司就会不经意地做出一个云计算平台来了。”

显然,未来云计算数据中心的核心是自动化运维,而且这个系统不是用钱能买来的,如同工业流水线的自动化控制,需要业务和技术不停的磨炼,目前,国内最好的互联网公司离这些还有着一段距离。

运维人员的自我提升

作为一名优秀的开发人员都不可能只需专注一门语言,精通一门技术即可,更何况运维人员这个杂家呢?

所以,掌握一门开发语言已经成为运维工程师的必备技能。如果不会开发,自己系统的业务流程不能够充分理解,更别提调试、优化这些程序。再者,对于性能来说,开发人员的关注比较少,所以这些工作自然就落在了运维人员的身上,如果公司的新业务上线,导致卡顿、缓慢、资源占用等问题,然后完全就交给开发人员处理,这样咋体现自己本身的价值?

借用一位国外运维大牛曾说过的一句话:Life is short,you need Python! (人生苦短,我用Python),可见,Python、SHELL等语言的熟练对于一名运维人员来说是多么的重要。为什么这么说?让我们看看某公司的招聘说明,你就明白了。

【工作职责】

- 搭建基础运维架构,对新技术和方案进行尝试和测试,用技术满足业务发展需求;

- 维护美团网各项服务,持续查找并修复问题,做保障业务稳定运行的幕后英雄;

- 应急响应线上故障报警,在故障时成为快速解决问题恢复业务的消防员;

- 积累系统运维的最佳实践,制定运维规范和策略,并实现文档化。

【职位要求】

- Linux骨灰级玩家,两年以上Linux系统管理经验;

- 精通网络、操作系统原理,熟练使用SHELL、Python;

- 具备很强的分析和解决问题的能力,有机房建设、运维流程经验者优先;

- 对如下关键词代表的系统熟悉者优先:iDRAC/Cobbler/KVM/LNMP/Zabbix/Puppet/CMDB等;

- 在开源社群活跃并有积极贡献者优先。

OMG,Nginx、Hadoop\Python\Fedora\Docker\SHELL\Ruby\Rails\LAMP\Nagios\ Cacti\ Puppet这些不熟悉,怎么混运维呢?