很久没更新博文了,不管心态仍是生活,都变得有些懒散,呵呵,,发下牢骚,如下正文:
生活总要有点激情,前几天在猎聘网站刷新了下简历,有几个猎头联系了豪鹫,我挑了其中一家游戏公司过去面试,面试过程1个半小时左右,已经变成运维老咸菜的豪鹫分享下这次的面试经历吧,欢迎网友留言探讨。。python
面试准备:
git
面试通过:
约了14:30面试,提早5分钟到达战场,因会议室都有人在用,因此在前台沙发等了近25分钟。。web
一轮面:运维总监面试
一、自我介绍
这个问题99.99%都会遇到,因此在面试以前,有必要本身先根据本身简历内容梳理一下,这个问题对面试官占有比较高的印象分,豪鹫是按照这样来回答:
a、目前就任哪一个行业哪家公司什么职位,具体的工做内容;
b、在现就任的公司以前,在哪一个行业哪家公司什么职位,具体的工做内容;
c、而后对于xx行业,好比游戏行业的运维,也能够说一些本身的理解和见解;
固然,这些都是豪鹫本身的思路,仅供参考。面试
好比豪鹫的回答是:
目前我就任于xxx技术有限公司任职Linux系统工程师,是一家资讯行业的人工智能公司,那我负责的具体工做主要是:redis
(1)、负责服务器的维护、监控、系统环境部署,日志收集分析,故障排除等;
(2)、与开发共同设计并实施服务器的高可用架构,制定并实施相关运维技术和场景应急方案,确保服务高效、稳定可用;
(3)、代码更新上线,服务器扩容方案、故障分析与处理,Nginx负载均衡,数据库高可用方案设计及架构升级,saltstack运维自动化工具等;
在这以前也待过一家创业型的电商公司,也是服务器系统运维方面的工做。
在这两家公司,作过几个大的架构优化,好比:MySQL的高可用架构MHA,Redis哨兵模式,MongoDB副本集,ES集群,Nginx负载均衡等。
代码上线更新的话,不一样公司用不一样的解决方案,电商公司用的是shell+rsync,预发布环境代码从svn拉取,线上代码从预发布环境直接同步过去。
当前就任的这家公司,用的是gitlab+jenkins+shell/python页面+saltstack的批量部署。
对于项目运维经验,app,网站,后台都有一些运维经验,对于游戏行业的运维,我没有这方面的运维经验,但很多同窗都是在游戏行业里面作运维的,因此有时候或多或少也会作一些运维方面的交流,
那游戏行业早期的架构也就是LNMP或LAMP,开服,合服,停服等操做都使用shell脚本维护,发展到最近3年左右,慢慢地有了自动化运维管理平台的概念,shell也慢慢过渡到以python为主的技术,对于像贵公司这种作游戏研发和平台维护的,可能大多数都是用python来作运维平台,经过运维来维护和更新上线等。shell
注意:我以为最重要的是没关系张,说重点,以及即使是没有作过游戏运维,但起码要让面试官知道你是有准备这方面的东西。工做内容我以为只说最近两家公司的工做内容就好了,以上介绍下来,大概花3~4分钟左右,不长不短。数据库
二、说一下MHA实现的原理和过程,而且MHA高可用架构有什么缺点?
MHA是一套优秀的做为MySQL高可用性环境下故障切换和主从提高的高可用软件,目前来讲是一个相对来讲的高可用技术方案。
在MySQL故障切换过程当中,MHA能作到在30秒以内自动完成数据库的故障切换操做,而且在进行故障切换的过程当中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
MHA主要由两部分组成:管理节点和数据节点。管理节点能够单独部署在一台独立的机器上管理多个master-slave集群,也能够部署在一台slave节点上。数据节点运行在每台MySQL服务器上,管理节点会定时探测集群中的master节点,当master出现故障时,它能够自动将最新数据的slave提高为新的master,而后将全部其余的slave从新指向新的master。整个故障转移过程对应用程序彻底透明。那好比咱们如今生产环境用的MHA,就是用一主三从,其中一个从节点不参与主节点的选举,只作备份使用,而管理节点部署在其中一个从节点上。(最好结合本身生产环境来讲明,让面试官以为你是有过生产环境部署及维护的经验)浏览器
至于MHA实现原理,可参考如下:
(1)从宕机崩溃的master保存二进制日志事件(binlog events);
(2)识别含有最新更新的slave;
(3)应用差别的中继日志(relay log)到其余的slave;
(4)应用从master保存的二进制日志事件(binlog events);
(5)提高一个slave为新的master;
(6)使其余的slave链接新的master进行复制;缓存
MHA缺点:(豪鹫说了4个,也不知对错,欢迎补充)
(1)须要全部机器基于SSH免认证配置,存在必定的安全隐患。
(2)管理节点的监控进程,一旦发生一次主从切换,那么监控进程就会挂掉,须要从新启动,不过这个能够经过结合脚原本检查自启。
(3)切换过程仍是会须要一小段秒级的切换时间,并不能真正严格意义上实现无缝切换。
(4)管理节点只对主库进行监控,不过这个也能够经过脚本对其余从节点的状态进行监控。安全
三、用户投诉说网站访问不了或访问慢,怎么排查问题?
这题目在生产也是常常遇到过,因此相对来讲,仍是不难回答,最好是回答排查思路以及解决方案,如下仅供参考,这道题目回答得仍是比较细的
首先先肯定是访问全部网站都慢仍是只是单单你负责的网站慢。固然这句话很明显就是废话,既然问到这了,确定指的是你维护的网站了。。呵呵。。
出现访问网站慢的缘由:
(1)若是是某个地区访问慢,若是有cdn的话,多是那个地区的cdn节点出现问题。
(2)网站服务器出口带宽占满了
(3)服务器负载大
(4)网站代码质量问题、能够经过浏览器访问按F12查看哪些元素加载慢,或者代码中SQL语句未优化的问题
(5)数据库服务器瓶颈
优化办法:
(1)CDN的问题,联系厂商
(2)流量带宽问题:花钱买带宽
(3)服务器负载问题:经过top等命令去查看占用资源较大的进程,具体进程具体分析
(4)代码问题:这个就须要跟开发协商处理
(5)数据库瓶颈:建立索引,分库分表,读写分离
(6)总体架构优化:水平扩容,添加负载服务器,使用缓存服务器(如redis等),集群高可用等
四、要统计访问网站访问量的前10个IP地址,具体怎么实现?
这个能够用shell或者python结合web服务器日志去统计,这个网上答案一大把,对于运维老咸菜的大伙们也应该不是问题。(用awk结合sort和uniq去实现)
五、在这么多年的运维工做中,给你印象最深的是遇到哪一个难题,怎么解决的,你在解决问题中起到什么角色?
六、说下你以前待过两家公司的架构?
七、代码更新上线的流程是怎样的?
八、若是想将业务从阿里云迁移至腾讯云,你的方案是怎样的?
九、你对本身的职业规划是怎样的?
十、打算跳槽的缘由?
十、有什么问题要问的吗?
A.公司的运维团队是怎样分工的?
B.若是我来公司了,个人工做内容?
……
二轮面:HR面试一、自我介绍二、离职的缘由?三、打算跳槽的缘由?四、已经提离职了仍是观望,最快能够何时到岗?五、目前薪酬跟薪酬的要求?……杂七杂八扯扯蛋