作为运维面试官的一些思考

2017-09-18 08:21:00 oilbeater 我的观点

掐指一算作为面试官,面试运维相关的技术人员也有两年了。从一线运维,运维开发,运维经理,甚至运维总监各种层级的职位的人都见了过不少,也算是有了一些自己面试的套路。鉴于最近面的几个面试者表现实在不理想,有的甚至是完全没有准备,分享一下我面试的套路,希望能对后来的人有所帮助。当然更希望看到人能把这些套路在实际工作中运用起来,而不只是准备面试的时候用到。


1. 监控,报警,线上部署


这个可以说是基本面中的基本面了,在我的预期中问道你所在公司是如何做这些事情的时候应该是不假思索张口就来的。监控包括机器、中间件、web、具体业务的不同监控,对于每个监控的指标有没有足够深刻的理解。例如 Java 类的陈谷 JVM 监控有哪些指标,每个指标有什么含义,哪些指标比较重要;Nginx 又需要监控哪些指标,数据库又有哪些。报警也是和监控一脉相承的,哪些指标是最重要的,这些最重要的指标如何设置报警的阈值,一旦报警又该如何处理,这些基本面的东西如果被问到的时候还要再挠脑袋去想,恐怕这次面试的结果就不会太好了。监控报警可以说是一个运维的眼睛,如果你眼睛都不好使了,那做事情肯定会有很多问题。


线上部署也是同理,如何进行发布,发布后如何观察问题,出现问题如何回滚,这种日常比较高频的操作不需要你说的太花哨,但是如果说的磕磕绊绊的总会让人产生一些怀疑。


2. shell 脚本,自动化


shell 同样是基本面的范畴,如果是运维开发可能会有另外的要求。一般情况下都会考一个常用查看系统指标命令加输出格式处理的上机实操题。如果这个基本盘拿不下,那希望也不大了,这块可能会根据实际情况上难度,不断的加处理条件,看一下思路和能力究竟如何。有的人这时候会拒接写,或者说平时都是去网上查的没办法直接写,这个就不是很好了。虽说从解决问题的角度上网查确实可以,但是出于基本面的考察简单的 shell 都不能直接写就有点说不过去了。


运维自动化并不完全算基本面的东西,因为在这里能看到一些对现有运维体系的思考和如何改进的思考,算是比较加分的项目了,会看是如何自动化的,以及这个自动化方案中是不是有些没注意到的细节瑕疵。还看过一些公司的运维开发是只做运维自动化工具的开发,并不做一线运维,这种情况还是略有一些顾虑,毕竟我们现在还是需要所有人上一线,在一线中提取需求自己改善的。


3. 故障处理


这个其实是我最关注的一个点,都说运维是背锅的,但真能把锅背起来可不是那么容易的。运维的成长很大程度是依赖故障出现的,不误删几次库怎么知道操作要谨慎,不出几次没头绪的故障怎么知道自己对系统哪里认识的不深,不出几次低级的磁盘满内存满的故障怎么知道自己监控不到位。如果每次都能准确快速的解决故障,分析故障发生的原因,提出之后改善的方向,那这种运维是不会背锅的,而且能给业务提出第一手的建议和帮助,这种对业务有帮助的运维是很受欢迎的。如果问每次故障原因是什么,回答不知道;问怎么处理的,回答找开发;怎么预防,回答总是发生没想好怎么办,那估计还是没戏了。


我在面试的时候某些问题会一直问到很细节甚至有些偏门的地方,这时候可能并不太希望面试者能给出很精准的答案,更多的是看在压力下的思路和表现。有一些面试技术人员的指南说要在放松环境下面试技术人员,这样可以让对方尽可能的发挥。不过面运维我一般是不太支持这个观点的,毕竟运维很多情况下面临的都是救火的情况,未知的领域,还需要尽快的做出准确的反应,面试时候加再大的压力恐怕都不会有某次真实工作来的大。然而还是有很多面试者在被追问几句之后立刻就声音下去眼看着就慌了,那这种心理素质我觉得做运维还是要再锻炼一下,什么时候故障来了,苦难问题来了你很兴奋的就扑上去了,那你可能就快成事了。


4. 对业务的熟悉和帮助


这个算是更高层面的一个要求了,看看是不是真正了解自己所支持的业务。有的运维被问所支持的具体业务时说的都是 tomcat,mysql 这些,说并不关心在之上具体是什么。这样做并不是不可以,但是其实会限制你之后的发展方向。从传统的角度来看运维是个支撑部门,提供保障类的服务。但是运维的一些基本能力是可以输出到业务层面的,比如流量的趋势变化,业务稳定性的指标变化,从故障中查看出来的代码层面的问题等等。甚至有的运维可以根据业务的变化提出系统结构应该如何调整,技术选型应该如何做这样有影响力的技术方案。这样的话可以把自己从一个支撑的角色,变成一个价值输出的角色,会对整个公司更有影响力。这一切都离不开对上层业务的理解和思考,甚至从客户那里获得反馈来思考如何改善,或者自己作为客户来体验产品提出意见,这也是能让运维脱颖而出的一个路数,不过大前提是基本面依然要牢固的保持住不动摇。


说了这几条,如果你觉得自己都还不错的话欢迎加入我厂,现在上车还来得及,别的不能说太多了。如果你自己还有什么面试运维的套路和被面到的套路,也欢迎分享一下。