不知不觉,运维工作快两年了。这里简单和运维界的道友或者即将踏入这个行业的同事一些自己的感悟,如有不正之处,请多多指正。
两年时间,可以让一个人快速成长,也可能让一个人几乎止步不前,因为所有行动都在你的脚下,所以我觉得第一个是职业的观念首先应该是要认真对待刚开始遇到的事情,这个时候人的激情通常是很饱满。学习的思维比较敏锐,容易发现很多不懂的东西并能及时消化。无论是职场还是专业相关、时间管理等,找到这些点慢慢积累下去,会发现收获很多意外的惊喜。
运维是辛苦的,所以要求你是精英,至少是一当三的好汉(几乎没有女生),系统运维更是如此。但是辛苦不是所有忙的借口,而应该利用工具,利用软件工程思想去自动化当前重复的劳动。有章可循的步骤都是可以自动化的,当然最好是多人做这种,如果你们人很少,那也是你技术飞涨的时候。
运维和其他支持岗位一样,大部分情况吃力不讨好,你工作了1年没犯错年底出了个核心事故可能有kpi完蛋了。但事情从来不应该怪在人身上,而是让平台去规避犯错,平台化运维是走向运维自动化的核心一步。
运维也需要大量的沟通,这里面有你的上司,同事,其他部门的可爱同事,机房等等。很多公司是通过工单case来处理各个产品的日常的,这时候你还要面对无数的产品的人。和人沟通最重要的还是控制自己的情绪(不表现在语言里面),复杂事情通过电话或者当面解决,多换位思考。
运维需要很多开发的支持。如果你们运维开发给力当然没有这个问题。但是你依然要努力让自己能开发项目,至少熟练两种语言(shell得会吧, python/go/perl)等。因为运维你和全栈工程师只差一个语言了吧。
运维工程师需要很强的专业素养,尤其表现为规划和出事故的时候。如果出事故,你命令都敲不出来,去网上查命令,那可用率完了。这个时候就需要适当地升级,所以一个运维的人应该永远有A/B方案,对每一条命令知道他的后果并且能确保回滚。
运维需要学什么?
首先是linux的常用命令和shell编程,这个是你和系统对话的语言
其次是网络支持和tcp/ip协议栈,这个是网络故障排查和部署业务上线web开发排查等的必备知识
了解常见中间组件的使用,系统如果是身体,那么中间件就是好看的衣服,了解它能让你站得更高,比如mysql, tomcat, kafka等
性能调优是在你熟悉代理、网络、系统等命令下,对多个链路组件进行调节,那个时候你就是厉害的人
监控类,你可以了解elk,zabbix,nagios等监控类和日志类组件,如果你研究够深,其他可以再学
会一门web语言更好,这样未来转行多一个出路了^_^
吹牛的能力,当你会一个东西的时候,尝试表述出它,并把这些解释给身边的人听或者写博客,在你认为你学会之前先考虑下,你是不是又偷懒了...
如下是一些个人经验:
可以看看google sre,看看一些运维架构方面的分享,学习一些中间件,阅读一些源码,试着掌握一些技术的深层次的东西,成为某个小领域的专家并依次拓展开。
每一年的kpi,有一部分可以为自己制定并一定要完成它,比如学会一种语言,阅读一个github项目,做一个网站等。
遇到一个问题,如果可能请fix it now。明天的事情谁也说不准。
累了,最好先记下当前的工作并停下来休息,爱自己再爱工作。
周五试着规划下,回想下这周干了啥,下周可以做哪些有意思的事情。
原文地址:http://blog.51cto.com/qixue/2094491