(转) 关于成为linux运维工程师须要掌握的技能

曾经在一年多前写了一篇关于要成为linux运维须要掌握哪些技能和工具的贴子,而后不当心被好几个网友抄袭转发到其它网站上,固然有些是认识的,最后还很幸运地被某些热心的学习者把那段内容剪下来看成圣经般的参考,为此我很感动,为了报答一些热心学习linux的朋友,下面本人将推出第二版介绍linux运维须要掌握的技能文章。
    首先,我们先讨论什么是运维,不少人彻底不懂运维是干什么的,只知道学linux,但总有个目的吧。这样吧,我们区分一下学linux能干什么工做为主,通常分为维护类和开发类,开发类就是底层开发偏多,还有嵌入式,底层开发就是C了,通常是linux C开发,这个需求量不大,虽然工资比较高,但难度实在高,反正不是每间公司都有这些岗位,而嵌入式这个简直是高端技术活,懂这个直接无视我这个文章啦。因此咱们既然不是作开发的,那么就作维护方面,就是linux运维这岗位了。
 
具体运维是作什么呢,从字面意思:运行维护,就是公司服务器的运行与维护,但若是只是这么想,实际上是不太对的,保障服务器的运行与维护,有些人会理解成硬件方面,那就是网络运维,我们学的内容是应用方面的,简称是应用运维,而应用就在平台上,什么叫平台呢,这个你们从工做中就会明白,这些就很少解说了。
 
下面开始说说要掌握什么技术,先给个初版的传送门:http://tieba.baidu.com/p/2754014874?pid=42874803996&;cid=0#42874803996&qq-pf-to=pcqq.group
 
这个传送门贴子基本包含了运维须要掌握的技术,其实我也没须要再补充什么,由于学得越多,能掌握的其实就越少,你总不可能每天学一大堆东西都能彻底掌握吧,而每间公司可能才那么须要几个技术点就够了,其它你学过的技术点没一会就忘记了,这是人之常情,你的大脑不是硬盘,用一会就容易忘记的,不可能长期都会记得住的。
 
 
 
下面介绍一下怎么才算掌握到这个技术点?
 
有些人会觉得,我懂部署这个软件,设置这个功能,我就学会了,例如我会部署LAMP,LNMP,我就很牛了,特别有不少种部署方法我都掌握,或者我能写个脚本一键去安装部署,觉得很厉害,其实我只能说句,这只是入门级别,在一些面试官眼中,这简直是不值一提的技术,部署什么服务什么的,难听点说句,找个网管上网随便搜索篇文章对着弄就好了,有何难度,并且你去到公司里,不少平台架构都弄好了,还须要你去装什么LAMP吗,必定要明白这个道理,懂安装懂配置什么的,只是基本功,并非说你对LAMP很熟很了解,其实你是不了解,从大学或培训机构里学的都是部署环境之类的技术,其实根本就不懂怎么去应用这个环境架构,例如公司要求对某个功能进行安全加固,在apache里有这个模块,添加后还须要配置,而后平常的维护又须要去操做,还有apache的日志格式须要输出带有session id的格式,这些需求你真的懂吗,不是单单会部署会安装就觉得学会,其实LAMP是很难的,不是你想象中那么简单。
 
 
 
不要把每件事看得很简单,在学习过程当中,你们会觉得使用这个软件基本功能就觉得学会了,其实当工做后,须要对这个软件学得比较精通,才叫真正掌握到,例如监控软件zabbix或nagios,你在学习时可能只是懂安装和简单的配置,但里面有些复杂的功能,你还须要去慢慢了解,如像trigger这些比较难又很差理解的功能等。
 
 
 
每当面试时,须要说出你的优势是什么,其实简单点说,拿出你的亮点,不是说我懂这个软件的安装和配置,这些都是零分,例如我懂得怎么优化这软件,怎么深刻操做这软件等。
 
 
 
你们其实把linux理解成windows就好了,只是换成命令行操做罢了,运维都是要掌握各式各样的软件,就像你用windows办公,是否是要装office,输入法,浏览器,杀毒软件等,其实道理和概念是同样的,不要把linux看成很高端的样子。
 
 
 
最后,我说说运维的真正核心技能,那些什么安装部署环境等,所有均可如下个文档去对照操做,这些操道别说网管,连开发均可以代替你去作,因此运维必定要掌握有价值的技术,才能体现出价值,要让开发和网管是没法代替到的,下面我说说入门级的:
 
监控软件,这个就算是网管和开发都难以掌握,主要是配置复杂,他们没心去弄,并且监控是运维的重要职责,固然还得看公司资源问题,监控常见的有不少,但最经常使用仍是nagios,zabbix,cacti这三款,其实把这三款学熟是件不容易的事,别觉得部署出来能配置一些简单的监控项就表明会监控了,绝对不是那么简单的,你看看zabbix就知道了,我曾经作过一个zabbix二次开发的项目维护,那个难度不是通常的高,并且功能又多又难搞,毫不是什么培训机构1-2天就教会的,这是不可能的。
 
其次就是shell脚本,这是运维的核心技能,也是必须要掌握的,若是不掌握脚本能力,你就别作了,甚至你根本就作不了,面试官一见你连简单的脚本都写不了,直接不要。
 
那有些人就怕了,个人编程能力不好,真的写不出啊。其实谁的编程能力会强,除非是天生头脑特灵活的人,不然其实你们的水平都不会相差太远,脚本比开发语言简单得多了,只是你们没遇到一些案例和需求,因此是写不出来,这个是须要慢慢去练习的。
 
核心技能是这2个为主,而后有加分的,例如掌握python和perl和php,固然,对于一个刚入行的人来讲,这基本不太可能了,一来是精力没太多,二来是时间没有,这个只能入行后再去学习。
 
下面说说运维在工做中须要掌握的技术,注意,这是在工做中掌握的,在学习过程当中是比较难掌握的
 
一共四大方面:一、排错;二、优化;三、数据库;四、开发语言,第5必须的,就是运维意识,至关重要
 
第1点和第2点都须要经验去支持,这个没经验你根本不知道排错和优化是怎么搞,在学校和培训机构各类吹虚里,根本就不可能掌握到,这不是说你安装什么软件时遇到错误能解决那些,那种虽然也叫排错,但只是基础级别,真正的排错是指平台出故障,让你去分析与处理,而出现的错误会各式各样,并且涉及的范围也很广,因此这个是须要经验去支持的。
 
第2点优化更是个大问题,基本没经验是弄不了,别觉得培训机构会教1-2天优化课程就掌握了这技术,这是不可能的,优化能够说是运维最吃香的技能,但也是最高难度的,由于涉及的知识面很广并且还须要很深刻了解,优化是有风险,不是随便在网上搜个文章对着改一下配置文件参数或系统参数就优化了,这是乱来有风险的,甚至怎么样才算有效优化,我也不想说,由于对于没入行的人来讲是很难去理解。
 
第3点数据库,也是运维加工资的重要核心技能,有些公司的运维可能接触不到数据库,其实运维的加工资技能要么就是开发,要么就是数据库,若是这2点都不会,那么就是个比网管高级点的打杂罢了,相对于数据库来讲,运维的操做仍是会有的,并且还昔昔相关,一但操做失误又没法回滚,你就真的要滚回家了。
 
第4点开发语言,就是上面所说的,要懂PYTHON或PHP,至于学这个干麻,这个我也很差说,要解释又一大段话,只能说如今都存在这个需求,特别是python,你会发现公司招聘时有这个需求,但真正工做时又不须要用,其实不是这个意思,python是本身想用就用,而不是公司要求你用,例如你去完成一个很麻烦的操做,而shell可能没法知足你或者效率很低,那么你就须要用python去知足,这是本身需求使用的,跟公司无关,但就能体现出你的价值了。
 
而第5点是每一个运维都必须的,意识是很重要,并非你技术很牛,学的技术不少很熟,就不表明你不须要运维意识,其实领导很看重运维意识的,例若有没有作好备份,权限分配问题,平台测试状况,故障响应时间等,这些都是意识,而不是你学了不少技术自认大牛了,平台发现故障你又没什么大不子,觉得很简单的问题喜欢处理就处理,不须要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。
 
 
 
大概就说到这吧,今年个人目标是把数据库学熟,而后转DBA,而后再加个PY,要知道作IT这行是苦B的,须要无尽的学习,不学习只会被淘汰,不想被年轻的淘汰,就只能不断增值本身,否则不是你工资没法提高,而是你没法再从事这行,但愿这篇文章能帮到你们
 
 
(转自51CTO技术论坛)
相关文章
相关标签/搜索