网易资深工程师分享:如何轻松通过运维面试?

发表时间: 2020-02-11 18:33

作者 | 阿文

责编 | 伍杏玲

出品 | 程序人生(ID:coder_life)

受新型冠状病毒影响,很多企业都推迟了复工时间或集体开始远程办公,而一些企业本来计划春节过后开始春季招聘,但是受疫情影响已做出了调整,全面实施无接触式招聘,从申请岗位、远程面试、远程办公的全部通过在线的方式。

作为一名运维工程师,我和大家谈一谈,在远程面试中,如何找到适合自己的岗位,以及远程面试时该注意些什么?

一般进行面试的流程如下:

了解运维的岗位职责和定位


想要从事运维工作的朋友,一定要了解运维在企业中的定位以及所必须要需要掌握的相关技能,根据自己的能力来判断自己是做初级运、中级还是高级运维或者是DevOps:

  • 初级运维:会些简单的企业服务器或网络运维工作,比如搭建个服务、组件个小型局域网或搬运服务器、安装操作系统,一般这类运维人员所管理的服务器不多,因此薪资待遇也一般,通常不会专人专职,可能还会兼办公网落管理等工作。这类岗位所需要掌握的技能包括:Windows Server 的管理和相关服务配置,基本的网络故障排查、路由交换的简单配置以及Linux 操作系统的基本使用和服务搭建等(RHCE水平),从职业发展角度看这类岗位不适合长久去做,因为天花板很低。适合一般中小型企业的运维人员,薪资水平基本在5-10k之间浮动。
  • 中级运维:这种运维岗位一般在中大型企业,能够管理多台服务器,并能够熟练配置各类中间件,例如MySQL、Redis、NGINX 、LVS负载均衡等服务。能使用Ansbile 等自动化工具管理服务器。对于一些企业而言,还需要深入的理解掌握最新的技术,例如虚拟化技术、Docker、kubernetes、能够使用Python、shell实现一些自动化脚本,通过技术方案动态调整资源,上线下线、迁移服务等。能够对日常遇到的各种系统和网络问题进行快速定位和排查,并给出优化方案、能够优化系统,对内核进行调优。一般此类运维人员的薪资水平在10-20k直接浮动。
  • 高级运维:拥有管理上千台服务器的经验,深入理解各种常见中间件的核心原理和故障排查方法,能够对企业的服务器和网络资源进行合理的管理和调度,能够负责中大型的运维管理平台的开发。或深入的了解操作系统或网络等核心,能够针对企业需求定制化开发或调优。此类运维人员可遇不可求,一般薪资水平在20k+
  • DevOps:最近几年兴起的DevOps 岗位非常火热,这类岗位不但需要你熟悉运维相关的技术栈,还需要熟悉开发,通常使用Java或Python、Go等语言实现一些自动化脚本或自动化平台,讲组织中原来独立的开发和交付工作形成闭环。即开发即运维。在传统的软件组织将开发、IT运营和质量保障通常设为各自分离的部门,按照从前的工作方式,开发和部署,不需要IT支持或者QA深入的跨部门的支持;而现在却需要极其紧密的多部门协作。而DevOps考虑的还不止是软件部署,它是一套针对这几个部门间沟通与协作问题的流程和方法。

大家可以在招聘网站的岗位职责和所需能力中了解这些岗位所需要的技术和能力,根据自己所掌握的技能水平评估后针对性的投递简历。


远程面试


一、电话面试

一般投递简历后,如何用人单位觉得你与其岗位匹配,会首先通过电话面试了解一些你的基本情况,这里要提醒下各位在投递简历之后要把自己的手机做如下调整:

  • 不要设置静音
  • 确认下是否开启了一些手电话拦截功能 ,有可能一些企业的电话会被标记为骚扰电话从而被拦截。

当接到面试电话时需要有一些注意事项:

  1. 注意语速和逻辑:由于电话面试,面试官无法直接与你接触,没有目光接触以及肢体语言等辅助手段,因此求职者必须把自己的回答尽可能整理得比较有逻辑,条理清晰,事例具体,表达生动才行,否则很难给面试官留下深刻的印象。同时要注意语速,不要过快也不要过慢。也不要过于平淡地、过于机械地背诵你已经准备好的内容,这样会让听众感觉异常无味,甚至错过可能展现你成绩的内容。
  2. 避免过多的寒暄和废话,由于电话面试常常应用于初审阶段,如果不能够快速抓住面试官的注意,他可能未必愿意花太多时间去了解你,因此你要力求尽快抓住面试官的注意,在1-2分钟内吸引他打动他。比如要求你做自我介绍时,很多人会觉得这些信息简历上都有写,那么就照着简历上的复述即可,事实上,这样是不对的。在做自我介绍时,很多面试官会要求你用3分钟时间介绍下自己,而一般人的正常一分钟可以说170个字左右,你可以按照以下三部分来进行介绍:
  3. “我是谁?”简单介绍下自己的毕业学校或此前工作的单位,从事的岗位或学习的专业。这部分介绍不宜过长。
  4. “我会什么?”为什么要应聘这个岗位,要有理有据。现在很多人投递简历都不可能考虑一家单位,有很多人还海投,就是什么岗位都投,充分的、有理有据的告诉面试官你面试这个岗位是经过深思熟虑的。此外要告诉面试官自己会什么,比如运维岗位,所需要的技能非常之多,一个人不可能所有的技能都掌握的非常深入,挑你最擅长的方向介绍,此外最好要有数据支撑,用数据说话,有的人会直接说我之前做过运维相关的工作,然后就是把自己的岗位职责照着简历复述一遍,这个很宽范,无法给面试官一个非你不可的理由。如果你这么讲:我在XXX公司管理着上千台服务器,在2019年双十一大促期间,通过我实现的运维管理平台和实时的监控系统以及搭建缓存系统分流请求,保障了双十一几千万用户的请求,通过监控系统实时发现了系统的瓶颈,在双十一期间某系统出现瓶颈时,通过我实现的XXX系统实现自动化扩缩容,为企业节省了几百万的成本。
  5. “我能给企业带来什么?”重点讲你的核心技能,通过这些技能能够给企业带来哪些具体的好处。
  6. 不要在电话面试环节聊薪资,首先,一般电话面试的面试官都是用人部门的负责人,他们其实也不了解你的薪资构成,这个可以待HR和你沟通时提问。
  7. 尽量选择一个安静的地方接听电话,如果周围环节过于吵,可能会严重影响面试官的情绪。我曾经面试的时候遇到一些求职者在路上或公交车上接到面试电话,我问他是否方便,其背后环境严重吵闹,他还告诉我他现在方便,结果聊了2分钟各种听不清楚,我只好告诉他到家后再联系。如果你评估当前的环境如果确实不够安静,建议接到电话后告知面试官重新约时间进行沟通。
  8. 一般电话面试,面试官也会问你一些技术性问题,建议知道的就说会,不知道的不要直接说不知道,但是可以告诉面试官,如果在实际工作中我不知道这个问题我可以通过什么途径快速去了解,例如通过搜索引擎、官方文档,问同事等渠道获取。不要直接说不知道,更不要乱答。比如面试官问“Redis 和memcached的区别是什么?”如果你不知道,那就告诉面试官我此前的工作中没有使用过Redis和memcached,但是如果贵公司有这方面的技术要求,我可以通过快速的查阅官方文档以及翻阅相关书籍学习并应用。

二、视频面试

如果电话面试通过,还会有视频面试,视频面试时要注意以下几点:

1.着装,对于互联网行业的面试而言,着装不需要过于正式,比如穿西服、打领带,保持正常的穿衣打扮即可,但避免蓬头垢面,总不能穿着睡衣面试吧。

2.检查你的电脑、摄像头、网络质量。避免在面试过程中出现异常或延迟,会严重影响视频面试效果。

3.注意背景不要太乱,如果是在房间,建议摄像头能够看到的地方要保持整洁整齐。

由于初试和复试可能不是同一个人,可能在初试中问过的问题,还有可能会问到,比如要求你自我介绍,按照电话面试中的三点对答即可。其他的可能就和电话面试相似了,视频面试最好的地方就是可以互相可见。能够更加加深面试官对你的印象。


运维面试都问些什么?


有些同学可能会问了,运维岗位所要求的东西都十分的宽范,系统、网络、调优、脚本、编程可能都会问到,那么我怎么知道我该从哪方面入手去着手准备面试呢?

我这里以某招聘网站的运维招聘要求为例:

职责描述:

1、负责各系统服务器、网络、软件程序的日常维护,对服务器性能检测及故障日志进行分析。

2、负责系统程序的部署、更新。

3、 及时处理系统的告警故障,保证产品服务器运行的稳定性、安全性。

4、 制定和改进系统的监控、备份、容灾方案,应急响应,故障排查,确保系统运行稳定。

5、维护公司的办公网络、硬件设备。

6、推进自动化运维在公司的实施和落地。

岗位要求:

1、 计算机相关专业,至少2年以上服务器、网络设备、软件系统运维工作经验,有阿里云云服务管理经验的优先。

2、熟悉CentOS和Windows Server安装配置优化,能够熟练通过Linux命令进行系统和网络性能诊断。

3、熟悉Shell、Python脚本,熟悉常见的运维自动化管理工具如(Ansible、Saltstack等),了解Java更佳,有编程经验的优先考虑

4、扎实的网络基础,熟悉IP/TCP理论。

5、熟悉Linux系统常用服务器的部署,如Tomcat、Redis、Nginx 的安装、配置、调优。

6、熟悉常用监控软件Zabbix等安装配置,熟悉自定义监控配置。

7、熟悉MySql数据库的安装、配置、备份,主从配置,了解数据库优化能力,MySQL读写分离技术(MySQL Proxy、Atlas)。

8、有大型商用分布式系统的部署、运维、优化经验者优先。

找关键字,首先岗位要求你能够配置和优化系统,能够通过Linux命令进行系统的网络和性能诊断。扎实的网络基础、熟悉IP和TCP理论,那么对于网络故障排查的工具和命令以及常见的网络协议你就必须知道:TCP、UDP、HTTP、DNS、FTP等协议原理。

一般面试官会问你TCP是怎么建立连接?TCP在Linux中的状态机有哪些?通过什么命令查看当前的TCP连接数、如何增加系统的连接数?当访问某个网站出现不通时,你是怎么排查的?如何保证Web服务器的安全性?

其次,要求你会部署各种服务,如Tomcat、Redis、Nginx 等等,并进行配置和调优,那么对于这些中间件的掌握你也必须要知道。如果你的工作中确实没用过或很少用过,你可以告诉面试官如果贵公司需要这块的东西,我也是有能力在短时间内快速上手和掌握的。建议这块要深入的了解各项中间件的原理和配置文件的说明以及相关配置的含义。这一块要下功夫去深入的了解,千万不要只掌握皮毛。

第三,熟悉监控,可以从你自己会的各项监控软件着手,监控的软件有很多,比如Zabbix、elk、Prometheusd等,面试官会问些啥?

以我的经验,面试官当然不会问你怎么去安装,这个太lower了。一般会问你对于系统或某个服务而言,你所要监控的项目有哪些,该采用什么监控软件?为什么要采用这个监控软件?

比如系统,你需要监控基本的系统运行情况包括、负载、内存、磁盘、CPU等方面,此外针对这些基础项还需要更细致的监控具体的指标,比如磁盘,除了要监控磁盘利用率、磁盘IO还有缓存和iNode等指标。针对不同应用也同样要监控各项应用的特有指标,比如Nginx,除了要监控进程本身,还需要监控http的状态码,比如4xx和5xx等。

第四,要熟悉MySQL的安装、部署和配置,主从,优化、读写分离,那么对于这些技术的原理和细节你需要掌握。

第五,有大型商用分布式系统的部署和运维、优化经验,如果有你就回答有,如果没有,可以从你自己的经验和掌握的知识来告诉面试官,如果遇到这样的环境你怎么去运维和部署。

第六,熟悉Shell、和Python脚本,以及各种自动化工具,如Ansible等。这要求求职者能够编写Shell脚本和Python脚本,在介绍自己的时候,你可以告诉面试官你可以通过Shell或Python编写各种自动化工具,通过Ansible 实现各种自动化部署。如果你不会,那么建议你尽量去补齐这块短板。因为自动化运维几乎是所有公司运维岗位的必备技能了。除非是那种在机房搬运服务器的岗位。

总之,不论是电话还是视频或者是现场面试,面试过程中都应当尽量自然、放松、不要过于紧张。正所谓台上一分钟,台下十年功,如果你的基本功扎实,其实面试根本没什么问题。

作者简介:阿文,网易云担任高级工程师,在边缘计算、云计算领域有多年的从业经历,曾担任过讲师,主讲思科路由交换技术。个人博客地址:https://awen.me