快毕业时经常和同学讨论以后以后哪个行业最有前途,哪个行业最吃香,但是现在IT行业发展迅速,每天都有新技术产生,到底哪行好对于还没有毕业的学生来说是一头雾水。曾经有个同学说,在未来运维将是最吃香的行业。我一直不以为然!毕业后,稀里糊涂的进了公司,一直从事的都是运维方面的工作,曾经一度认为运维就是简单的运行和维护,现在才知道运维没那么简单,只怪自己当初的觉悟太低了!下面就来谈谈我所知道的运维吧!

 

一、 企业运维人员的工作职责
1、运维的首要职责是参与确定公司的整体IT框架,当然这也不完全是运维的事;框架这词本身就比较笼统。框架大概包括服务器的系统,程序使用何种语言,配合什么数据库,使用何种容器来发布内容,需要多少服务器,如何分配资源等。
决定使用什么操作系统也是件很重要的事,用windows,linux,aix还是freebSD,将来如何升级都对企业的运维产生着深远的影响,一般来讲运维人员会建议管理层使用自己所熟练的操作系统。程序使用何种语言就和企业本身的业务息息相关,例如银行都首推java,一般的门户网站,论坛都用php,asp.net等,程序语言对使用何种数据库和web容器起着决定性的作用,如果是php,那一般是lamp,lnmp之类的经典模型,如果是java,那选择面相对比较广些,容器部分可以选择weblogic,websphere,jboss,tomcat等等;数据库可以选择oracle,db2, sysbase等,在这个时候,企业的经济实力也起着至关重要的作用!

 

2、保证服务器上正常的运行
怎么样才能算正常的运行呢?论坛卡,服务器慢,网站打不开之类的问题,出问题的有可能是服务器,也可能是用户端或者就是中间的网络传输问题,在中国最典型的就是南北互通的问题,曾有戏言:世界上最远的距离是中国电信到中国联通之间的距离!因为这种问题很难判断,所以一般管理者会要求运维每年的故障时间不能超过一定的值,说7*24*365服务不间断运行,那是扯淡!总会有各种各样的问题,无论你用了什么负载均衡,故障转移技术,服务临时中断也是避免不了的,运维的价值在于在缩短服务中断后的MTTR时间,可见运维的压力是很大的

 

3、备份关键数据,及时处理各种故障,保证服务器安全
备份是为了恢复,一般想到或者用到备份的时候,都是出现麻烦的时候,所以平常工作中对备份一定要足够的重视,尤其是数据库,在某些时候,看起来N年前的备份可能会给你的恢复工作带来意想不到的作用;服务器的安全部分又是个拎不清的概念,因为安全本身就是相对的,而且安全和性能,用户体验之间是成反比的,运维在很多时候都是牺牲安全来换取性能和更好的用户体验,等将来安全上出现问题的时候再调整,例如关闭服务器的selinux,关闭服务器内网间的防火墙,允许任意IP进行FTP连接等等

 

4、及时调整服务器各项设定满足业务需要,
这是运维工作中的重头戏,框架定了,服务器选了,一般是不会轻易改动的,但设置服务器的工作却是每天都有的。程序今天需要部署个memcache,明天需要个中文分词系统,后天需要加个虚拟主机…… 这种事情一般是怎么做都做不完的,只能来一样做一样。但这种工作最能让你的运维水平得到提高。运维人员在做这类工作的时候不能像应付任务那样,但求过关即可,否则日积月累下来,服务器会出现意想不到的情况。在处理这类工作上运维人员应当做到规范和文档记录,长期做下来,不但自己的运维专业水平会提高,对于后期的维护也会起到良性循环作用

 

5、记录服务器维护日志和技术文档
这点都是在处理完问题后记录下,方便加快日后处理同类问题的速度和效率;至于技术文档,身为运维人员一定要认真编写,写的很糟糕的文档会给人误导作用,internet上这类文章不在少数,本身IT这个行业就是很浮躁的,如果不能静下心来好好整理知识,总有一天会被淘汰的;对于过去整理的文档要定期的去温习,有错的要及时更正。所谓温故而知新,孔夫子的教诲还是要听的,否则等你有天在搜索引擎搜到自己的文章的时候,怎么想也想不明白当初为什么要这样做。笔者一直倡导和internet的朋友分享自己的知识,这样有利于自己和他人的共同进步

二、企业运维工具的选择
随着企业的业务对IT的依赖越来越多,企业的服务器的架构规模不断扩展,为了更有效率的执行任务,为了我们运维人员不再像流水线上的一名工人一样不断重复的做着同样的工作,我们将会用一类工具,这类工具是可编程的,我们只是需要写上一些代码就可以帮我们自动完成所有的工作。像我们公司用的是瑞宁CAM,集中审计管控系统,除了能完成自动化运维的工作,比如系统安装、系统升级、批量修改密码、主机名规范、终端资源监控、批量配置管理、终端批量实时操控等等,还有事后审计回放的功能,对于事后总结自己的工作,查找错误点非常有帮助。此外常见的运维工具还有:Kickstart、Chef、Nagios、Cobbler、ControlTier、OpenNMS、OpenQRM、Func、Zabbix、Spacewalk、Puppet、Cacti等。

三、 企业运维的主要难题
1、 IDC服务商的选择
服务器多了,自然要找好的IDC运营商;这点很重要,差的IDC会把你服务器装错,会无缘无故把你的域名白名单取消,机柜的带宽流量无法实时监控,CDN效果不佳,服务器出问题的不是先想着如何处理问题,而是找各种各样的借口,什么机房网络被***,电源跳闸之类的,各种悲剧!
2、 服务器提供商和型号的选择
这个也很重要,笔者先前遇到一批DELL R410固件问题,每当服务器高流量的时候,服务器网卡会自动断流,需要手动重启网卡,这个问题悲剧了许久,到最后也未能完全解决;之前还遇到过内存,主板故障等问题,服务器的硬件一旦出现问题,就意味着停机检修,服务自然要中断。所以在服务器的选择上也要慎重,而不是只考虑价格问题

3、 负载均衡和故障转移
流量大了,或者业务重要性高,就要求最大可能提供服务器的高可用性和数据容灾,自然要部署负载均衡和故障转移;是采用硬件F5,cisco还是软件lvs,keepalvie,heartbeat,nginx方式实现,效果如何?都需要去考量
4、 运维团队和人才的培养
千金易得,一将难求。对于企业来讲,运维人才的流失是比较可惜的,如何去留住一批优秀的运维人才也是企业需要考虑的问题。其实不只运维,企业要想有长远的发展都应当想方设法留住人才,控制公司的人员流失率,要让员工有归属感和荣誉感,而不是只有赤裸裸的雇佣关系;企业应该着重培养一支高素质,高凝聚力的运维团队,而不是只当运维是业务部门和程序部门间的夹心饼,里外不是人,这样的环境和团队是留不住人才的。

 

四、运维人员的职业发展和出路
每一个IT从业人员的心里都有个CIO的梦想吧,我也不例外,但是基础的运维工作是年轻人的行业,随时年龄和经验的增长,转向做管理或者架构,或者专攻DBA,是我目前的想法,但是未来的路很多,也许我会选择自己创业,或者去培训中心做教员也不一定。不过现在最主要的还是在有限的运维时间内学习更多的运维知识,掌握更多的技能,为自己和企业创造更多的价值。