前阵子有句话一直很流行,叫“知道了很多道理,却依然过不好这一生”,我们也经常拿这句话来打趣自己和身边的运维朋友。那你有没有想过,我们每天学那么多干货,看那么多书,学那么多知识,却依然解决不了实际问题呢?
这归根结底,是处理问题能力的问题!
什么是能力? 我觉得包含了对待问题的态度,以及处理问题的思路和方法。
首先说态度,运维工作中我们可能经常会遇到一些警告信息,比如偶尔的501错误,504错误等,但是,很多运维并没有在意,没错,是很多,假装看不见,不在乎,或者归咎于人品问题。 这就是态度问题。
偶尔的错误视而不见,经过长时间的积累,各种错误就会频发,比如自己运维的网站每天频繁出现500,501等错误,此时由于影响到正常使用了,所以不得不去处理解决,而处理的方法简单粗暴,直接重启服务,或者重启服务器,于是,问题暂时得到解决了,这种遇到问题不去深究原因,只靠重启解决的工作方式太多了,更有甚者,当出现问题的时候,不从自身找原因,而是抱怨网络状态不好,服务器配置不好,操作系统不好,数据库不好等等,将问题归咎于其它外在因素,或者极度推责者,也屡见不鲜。
这就是态度,如果能对问题有敏感性,能对任何小的,轻微的问题有足够的敏锐度,你就有了一个快速成长的基础。对问题的敏锐度是非常重要的。很多性能或程序逻辑上非致命的问题,在不够敏锐的时候是发现不了的,但是一旦进入特殊场景就会骤然爆发,你多一点敏锐度,就会减少这种危机的风险。同时,这种工作态度完全阻止了你的成长,如果以这种态度工作,即使你有十年工作经验,可能你仅有一年的实际能力。
优秀的运维人员和平庸的运维人员,不是看敲打键盘的速度来区分的,在遇到问题后,平庸的运维人员的解决效率,和优秀运维老鸟相比就会有天壤之别。 所谓解决效率,不外乎对故障的分析、定位,以及思考。
要分析、定位问题,那么查看日志是个起码的手段,你可能需要查看web server的日志,数据库的日志,慢查询日志,binlog日志,php的错误日志等等,看似简单不过的处理问题手段,真正能够静心下来查看的人真的不多,线上出问题瞎猜的,压根连日志都不看的大有人在。看日志不仔细不完整的也大有人在,而你能去认真研究日志,其实已经超越很多人了。
发现问题之后,自然要去解决问题,问题千差万别,多种多样,谁都不可能处理过所有可能发生的问题,那么怎么去快速解决这些问题呢,我们说,搜索引擎是最好的处理问题辅助工具,你所遇到的错误信息和错误提示,通常95%都能在网上搜索到,当然,搜索到后要结合你的场景认真思考,并理解透彻,而不是照猫画虎的去处理,否则可能这次运气好就蒙对了,下次运气不好可能就会出现误删库要跑路的事情了。
说到这里,很久之前遇到过一个哭笑不得的事情,公司新入职一个运维(不知道是谁招聘进来的),某天被派到了客户那里处理问题,然后就QQ发信息给我,问怎么重启linux系统,我看到后,就回复了一句“百度一下吧”,我认为这种问题,他肯定可以自己解决,谁知道,第二天来到公司,我问他问题怎么解决的,他说自己不太懂,没找到关机的方法,所以就拔电源暴力关机了。我听到这里,默默的叹了口气,让HR请他离开了。
为什么请他离开,因为我知道他不适合这个职位,同时即使他坚守这个职位,也不会有大的职业前景。
这是个真实的事情,没有半点夸张成分,通过这个事情,我只是想说,要提高自己的能力,就要主动尝试独立解决问题,过度的依赖别人,出现任何问题都不假思索的问别人,并不能提高自己任何能力。
最后,要提高自己处理问题的能力,还要有知识的总结、梳理和归纳,你今天从网上买了一套学习视频,明天从网盘下载了40Gb的一套python课程视频,你可能下载的时候欣喜若狂,这种方式获取的仅仅是资料,这一堆冷冰冰的数据,除了能极大的满足你内心想要学习的虚荣感,别的真的毫无价值。
要让知识变热、变成自己的,是需要动手实践的,对一个问题,一类问题,以及不同类型的问题,要善于归纳整理,不断反思,尽量把每个遇到过的问题都记录下来,记录的要尽量详细,这样你经过一段时间去回头看,可能会发现不一样的处理方法和思路。如果你感觉到了这一点,那么恭喜你,你的能力又提升了一步!
我们日常遇到的问题就类似打怪升级一样,你解决的问题越多你的能力就会越强,经验自然也会越来越丰富。但人的脑袋不可能记住所有事情,将自己遇到的问题沉淀下来对以后自己查阅也有很大的帮助,就不必每次都要去查资料,自己也能够有一个索引库。
经常自己总结是提高能力的最好方式。
知识的积累,不是你处理过的就一定有积累,而是整理过的才有价值。