2019独角兽企业重金招聘Python工程师标准>>>
针对找工作这件事情来讲,很多人都讲"金三银四",其实我对这个说法并不以为然,但是处于种种原因吧,今年3月份我还是加入求职大军。下面总结一下作为一名Linux系统运维工程师遇到的形形色色的面试题。
架构相关
想必很多人都遇到过类似的问题,"你们公司的架构是什么样的?",如果是一个菜鸟,听到"架构"这个词,无形间会感觉好NB,然而,事情总是那么的经不起推敲,如果只是一个中小型公司,其实架构并没有很复杂,只要你静下心来,从入口开始分析,无非是那么几种。
待你回答完上面的问题之后,可能紧接着面试官会问,"有没有做过优化?",讲真,如果之前你是在一个比较成熟且业务稳定的公司工作,那么这个问题真的会让你感觉很揪心,这也很正常,想必如果不是遇到什么瓶颈或者什么爆发,真的很少会做很多细致的优化工作吧,所以就这个问题补充几个小问题:
- 系统优化?
- 架构优化?
- 数据库优化?
- nginx/httpd优化?
- 缓存,如Redis优化?
- ...
性能比较
大家都知道,实现同一个需求可以有各种各样的方法,但是每种方法针对不同的场景都有其自身的一些特性,在选择用哪种方法的时候,想必会"扬长避短",所以知道一些常用工具的性能是很有必要的。
- nginx、httpd性能比较?
- zabbix、Prometheus、open-falcon性能比较?
- Redis、memcache、MongoDB性能比较?
- nginx、lvs性能比较?
- LVS本身几种模式的性能比较?
- ...
工作原理
想必,猛然间让大家做性能比较会感觉无所适从,我认为这种感觉很正常,why?因为一个工具的性能归根结底取决于设计及工作原理,很多时候为了快速的逼定某个需求,我们往往是在网上找到一个工具拿来就用,从而忽视了其工作及设计原理,直到某一天,遇到了一些问题,寻遍某度、某百科等等找不到自己需要的结果时才会幡然醒悟,去研究其工作原理,这个时候才发现原来工作原理如此的重要,怪不得面试的时候面试官经常会问,"xxx的工作原理?"。
- MySQL的工作原理?
- keepalived工作原理?
- DNS工作原理?
- http、ssh、tcp/ip工作原理?
- 日志系统ELK工作原理?
- ...
这个问题往往也会随着架构提出,所以了解架构的同时多想一想其工作原理,无非就是从一个请求进来开始到返回结果的完整过程。
应用场景
经过上面的问题回答情况,面试官大体上会对你有一个了解了,既然如此,就把技术进行一个落地了,接下来便是针对一些具体的应用场景来提问了:
- 数据库
- 数据库高可用怎么做的?
- 数据库备份机制及方法?
- 数据库优化问题?(这个时候你心里可能有一个词出现"Fuc*")
- 处理过哪些数据库相关的故障?
- ...
- 网络
- 遇到过什么网络问题?
- 如何处理的,此时会具体到Linux命令?
- 网络防火墙怎么做的?(逗B的面试官很可能让你现场手写iptables,如果遇到这样的面试官,而且刚好这个公司就这一个运维,建议你慎重考虑后期个人成长问题)
- ...
- 监控
- 用过监控工具?
- 监控粒度?(系统、应用、业务)
- 告警机制?
- xx监控是怎么做的?(如,mysql)
- ...
- shell/Python
- 常用的shell命令?(太多太多太多,说个5-10个就好)
- shell脚本?
- ...
- 安全
- 系统安全?
- 网络安全?
- 业务安全?(高可用)
- 人员安全?
- 硬件安全?
- ...
- 自动化
- 对自动化的理解?
- 用过什么自动化工具?
- 使用xx自动化工具都做了哪些事情?
- ...
综述
基础运维面试基本就是什么几个板块,当然需要自己细化的问题还有很多很多。每个公司和每个公司的场景不完全相同,所以对于的需求及技术侧重点也就不同,最好的办法就是把基础知识打牢,见招拆招,实在不会的问题,没必要支支吾吾,直言相告就好,但是此时要体现出自己的学习能力和欲望,能快速学习和应用也是一种很强大的能力。
找工作会是一个比较复杂的过程,直白点讲,一直在和面试官斗智斗勇,很多人因为时间拖得有那么一点点长了会出现焦虑和躁动的心理,进而影响面试过程中的发挥,这都很正常,在此,我建议你学会和自己的内心和睦相处,学会调整自己心态,面试才是暴露自身问题的时候,在面试过程中不断的进行复盘、总结,你会渐入佳境,甚至会喜欢上面试。
想说的总是太多,文笔却总是有限...
祝:
每个人都能找到一个满意的工作!