V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ropon
V2EX  ›  DevOps

一套运维面试题

  •  
  •   ropon · 2022-11-14 14:24:40 +08:00 · 6070 次点击
    这是一个创建于 773 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 1 、都说 linux 下一切皆文件,你是怎么理解的?
    • 2 、都说 socket 在 linux 实际是一个文件,是通过什么技术将 socket 变成一个文件的?
    • 3 、linux 下软 /硬连接是什么,他们有什么区别?
    • 4 、linux 下一个用户登录以下文件加载顺序是?~/.bash_profile, ~/.bash_login, ~/.profile, ~/.bashrc, /etc/profile
    • 5 、都说 systemd 他可以并行启动,他的实现原理是? 僵尸进程 /孤儿进程他们是?区别是啥?为什么说 ssh 很安全?具体原理是?如何保证的
    • 6 、shell 相关 [[]] [] (()) () 他们区别是?
    • 7 、shell fuction 如何返回字符串
    • 8 、shell $# $* 是什么意思
    • 9 、如何使用 shell 实现一个爬虫,你描述下整个过程,会用到哪些命令?
    • 10 、redis 哨兵机制主从是如何切换的?
    • 11 、网络 mtu 是什么?他发生在那一层,如果 2 个设备 mtu 值不同,以谁为准,那么 2 个设备是如何协商的?详细协商流程是?
    • 12 、0.0.0.0 255.255.255.255 这 2 个 ip 地址是什么意思?他们的适用场景是? VIP 如何漂移的?他的底层原理是?
    • 13 、tunnel VPN 翻墙他实现的原理是,他是怎么绕过防火墙的,数据包传输流程,他在那一层欺骗了防火墙等
    • 14 、nginx 相关 正向 /反向代理是什么意思?他们区别是?
    • 15 、一般架构 nginx 集群 --反向代理--> tomcat ,为什么不能反过来部署呢?高并发 /动静分离等,这些我程序也可以做
    • 16 、都说 nginx 轻量级,比如对比 tomcat ,epoll 是操作系统机制,与 nginx 无关,我自己开发也可以调用,内存占用小 /启动快这不是特点,模块化这也不是特点,我自己开发程序也可以实现。。。
    • 17 、都说 docker 轻量级,他轻量在哪里,从技术角度分析,咱们都是搞技术,不需要从产品角度分析他为什么轻量?
    • 18 、docker volume bind mount 他们区别是什么? 如何构建最小的镜像,说说你的思路?
    • 19 、docker -p/P 他的实现原理是什么?
    • 20 、Infrastructure as code 思想,你是怎么理解的?
    • 21 、资产管理 /配置管理他们分别是?区别是?
    • 22 、持续部署 /持续交付他们是?区别是?
    • 23 、ci/cd 带来的好处是?蓝绿发布是?他的优缺点?
    • 24 、jenkins 如何通过原生方式备份配置 /job 等(不通过 jenkins 提供导入导出 /及拷贝整个目录)
    • 25 、pipeline 是什么,他有什么优势?
    • 26 、jenkins 我要在其他环境重放 job 如何实现?
    • 27 、shift-left 你是怎么理解的?
    • 28 、git 相关 svn/git 分别是?他们有什么区别?
    • 29 、git 中 index/local/remote/workspace 他们是?比如 git add xxx 他发生了什么?
    • 30 、都说 git 管理 /切分支等轻量,他们轻量在哪里,具体原理是?
    • 31 、git rebase xxx 发送冲突时,他的根本原因是?不要说具体场景; git fetch/git pull 他们区别是?
    • 32 、你平时开发使用一套分支流程是?为什么要这么做?他的优缺点是?
    • 33 、kafka 相关 broker partition segment 他们是?他们关系是?
    • 34 、kafka 如何保证数据可靠? ISR 是什么?他的工作机制是?
    • 35 、python 相关 GIL 是什么,为什么需要它?
    • 36 、python decoration(装饰器) 他的场景是?他的原理是?
    • 37 、如果要你实现一个 sidecar ,说说你的思路?
    • 38 、线上一个服务响应很慢,你如何排查,排查流程是?
    第 1 条附言  ·  2022-11-14 21:01:59 +08:00
    以上问题是一次真实面试总结出来的,并非我们出的面试题
    75 条回复    2023-03-14 00:41:34 +08:00
    putaozhenhaochi
        1
    putaozhenhaochi  
       2022-11-14 14:35:08 +08:00 via Android
    运维开发面试吧
    ropon
        2
    ropon  
    OP
       2022-11-14 14:41:38 +08:00
    @putaozhenhaochi 是的,运维 /运维开发
    NewYear
        3
    NewYear  
       2022-11-14 14:44:03 +08:00
    请问运维开发和普通的开发比有什么优势呢……
    mmm159357456
        4
    mmm159357456  
       2022-11-14 14:45:28 +08:00
    40 、全干工程师应该具有什么样的职业素养?
    spr1ngs
        5
    spr1ngs  
       2022-11-14 14:46:05 +08:00
    满分
    Tumblr
        6
    Tumblr  
       2022-11-14 14:52:06 +08:00
    我 Windows 不配有运维人员么? 😅
    ropon
        7
    ropon  
    OP
       2022-11-14 14:53:25 +08:00
    ropon
        8
    ropon  
    OP
       2022-11-14 14:53:51 +08:00
    @Tumblr 哈哈
    flexbug
        9
    flexbug  
       2022-11-14 14:54:55 +08:00
    这是招 yaml 工程师吧
    neutrinos
        10
    neutrinos  
       2022-11-14 14:59:23 +08:00 via iPhone
    面硅谷大公司从来没考过这种
    Shawns
        11
    Shawns  
       2022-11-14 15:03:46 +08:00   ❤️ 1
    很多问题没意义。面试重要的是从面试者工作经历中找到符合你们团队所需要的能力
    ropon
        12
    ropon  
    OP
       2022-11-14 15:04:13 +08:00
    @neutrinos 以上问题是一次真实面试总结出来的?至于这公司,应该不算大公司吧
    neutrinos
        13
    neutrinos  
       2022-11-14 15:06:21 +08:00 via iPhone
    @ropon 遇到这种,我一般会说我有点事要先走
    NessajCN
        14
    NessajCN  
       2022-11-14 15:13:53 +08:00
    一道文案面试题:请写出「茴」字的四种写法
    proxychains
        15
    proxychains  
       2022-11-14 15:15:03 +08:00
    @Tumblr windows 运维? 请教老哥个问题, windows Server 是否经常遇到 RDP 连接上去黑屏, 重启 RDP 后该服务就变灰色无法启动只能通过重启主机来恢复 RDP 服务的情况.
    YSMAN
        16
    YSMAN  
       2022-11-14 15:15:48 +08:00
    运维可太难了 啧啧
    lmshl
        17
    lmshl  
       2022-11-14 15:27:48 +08:00   ❤️ 1
    作为给公司自 2017 年起从 0 建设 Kubernetes 以及 AWS 基础设施的我这位老运维来说
    你这些题我大约只能回答上来不到 5 道,我应该是不配应聘你的岗位的
    lookStupiToForce
        18
    lookStupiToForce  
       2022-11-14 15:34:22 +08:00
    这到底是做运维还是做 CTO 噗
    lmshl
        19
    lmshl  
       2022-11-14 15:36:13 +08:00
    11 我知道,但没听说过两个 mtu 还能不同,你是想问 NAT 的时候切包么?
    12 只知道 0.0.0.0 是监听所有
    13 流量都按照协议走了 VPN 网关了,防火墙自然发现不了
    14 算是知道吧
    17 container 就是个进程,不像 VM 有虚拟化开销
    18 构建小镜像就是能静态链接都静态链接,如果可以尽量 musl
    23 了解一点
    37 Rust 写过 sidecar ,你想问什么吧
    38 具体问题具体分析咯,看看是 CPU/Network/Disk/Memory 的压力,根治还上 profile 看火焰图
    ScotGu
        20
    ScotGu  
       2022-11-14 16:26:02 +08:00
    运维提问:薪资多少?福利待遇详细介绍一下。
    fengye0509
        21
    fengye0509  
       2022-11-14 16:33:41 +08:00
    这要是都会 不得给个 P8
    iloveayu
        22
    iloveayu  
       2022-11-14 17:18:58 +08:00
    @lookStupiToForce 拿运维的几个钢镚,干 CTO 的活儿( doge )
    julyclyde
        23
    julyclyde  
       2022-11-14 17:22:56 +08:00
    第四题可以干掉所有的 oracle DBA 了吧
    yulgang
        24
    yulgang  
       2022-11-14 17:26:31 +08:00
    这月薪不得好几万啊?
    cshlxm
        25
    cshlxm  
       2022-11-14 17:50:03 +08:00
    好像都听过,又好像都回答不准
    ruidoBlanco
        26
    ruidoBlanco  
       2022-11-14 17:54:08 +08:00
    原本以为我太菜,看上面的回复放心了。题目并不是说都没有用处,但是很多与工作脱节厉害,干活的人不靠查不知道答案太正常了。

    遇到这种,我只能说「我与贵司没有缘分」
    sdk234
        27
    sdk234  
       2022-11-14 18:15:27 +08:00 via Android
    这题。。。。运维是工程师,又不是研究员。我只需要知道 ssh 很安全很好用就行了,我干嘛要知道 ssh 为什么安全?
    ropon
        28
    ropon  
    OP
       2022-11-14 18:36:19 +08:00 via iPhone
    @sdk234 哈哈,刚不到面试官怎么想的
    @ruidoBlanco
    Tumblr
        29
    Tumblr  
       2022-11-14 18:39:22 +08:00
    @proxychains #15 首先不是专职的 Windows 运维,不过我确实有几百上千台 Windows Server 的访问权限,然后你说的这个问题在我多年的 Windows Server 运( zhe )维( teng )经历中从未遇到过。
    ropon
        30
    ropon  
    OP
       2022-11-14 18:40:54 +08:00 via iPhone
    @cshlxm 试试答下呢
    levelworm
        31
    levelworm  
       2022-11-14 18:41:47 +08:00 via Android
    感觉 TCP/IP 这块还能再加点题
    ropon
        32
    ropon  
    OP
       2022-11-14 18:42:36 +08:00 via iPhone
    @lmshl
    levelworm
        33
    levelworm  
       2022-11-14 18:44:28 +08:00 via Android
    @lmshl 大佬级别很高了吧!
    ysc3839
        34
    ysc3839  
       2022-11-14 18:48:09 +08:00
    请问第二个问题答案是什么?是说 socket 对应的“文件”是 /proc/self/fd/X 吗?
    wangyzj
        35
    wangyzj  
       2022-11-14 18:57:29 +08:00
    可以用用
    虽然我也有几个整不明白
    lijiangang886
        36
    lijiangang886  
       2022-11-14 19:55:14 +08:00
    @NewYear #3 原文:“请问运维开发和普通的开发比有什么优势呢……”
    ======
    回复:开发是开发,运维开发还是运维 XD
    YaakovZiv
        37
    YaakovZiv  
       2022-11-14 20:23:10 +08:00
    我认为楼上不应嘲讽楼主,公司会根据自己的需求考察面试者,我在济南求职时,面试过一些公司,有要求背 man 手册的,有要求背 nginx 配置参数的,有要求背 docker 配置参数的,各种各样都有,他们是根据自己公司需求来的。也有只看学历不看其他的,也有要求工作经验匹配,但对产品熟练度不强制的。
    lizhengbo
        38
    lizhengbo  
       2022-11-14 22:44:23 +08:00
    P8 起步, 对答如流的话
    liuxu
        39
    liuxu  
       2022-11-14 23:28:44 +08:00   ❤️ 2
    别去了,这公司去了要累死你

    这公司运维技术栈是物理机+docker/docker swarm ,jenkins 自动化 CI ,nginx 做 LB ,业务用的 java+kafka+redis ,项目应该是有点流量,全部用 shell+python 脚本运维

    目前情况十有八九接口延迟太高,或者 qps 上不去,java 开发推锅怪服务器组件配置有问题

    这公司十有八九加班多
    adoal
        40
    adoal  
       2022-11-14 23:46:21 +08:00
    @julyclyde 七总,我手头唯一一套用 Oracle 的业务系统,oracle 帐号的 shell 居然是 tcsh
    duzhor
        41
    duzhor  
       2022-11-15 00:14:28 +08:00
    求份答案
    ropon
        42
    ropon  
    OP
       2022-11-15 08:07:58 +08:00 via iPhone   ❤️ 1
    @liuxu 6p 确实如此,这都分析出来了,完整运维平台都没有,发布 /上线 SQL/监控等全是 shell/python 脚本操作,我说当前公司是通过 go+vue 开发集成一套运维平台(资产系统、认证中心、配置中心、发布系统、监控系统)
    ,还说 go 对他们或运维来说没啥用,这就……
    ropon
        43
    ropon  
    OP
       2022-11-15 08:08:41 +08:00 via iPhone
    @duzhor 还需要等大佬来补充答案
    julyclyde
        44
    julyclyde  
       2022-11-15 08:28:37 +08:00
    @adoal 为什么 tcsh 呢?我记得我看过 oracle 安装文档并没有要求 tcsh 吧?
    julyclyde
        45
    julyclyde  
       2022-11-15 08:33:34 +08:00
    大家还是要多努力学习呀
    以上问的其实并不脱离实际,而是能在别人都还不知道翻那本书的时候你已经处理完问题的基础
    julyclyde
        46
    julyclyde  
       2022-11-15 08:37:35 +08:00
    @sdk234 举个例子,如果需要对 ssh 服务器进行安全巡检,这应该算是运维工程师的职责吧。

    你如何确认这台服务器是否已经达到了要求?
    可别说“看配置文件”哦,你现在看到的配置文件并不一定是服务器当时启动的时候用的配置文件,也可能是后来改过的
    YVAN7123
        47
    YVAN7123  
       2022-11-15 08:41:14 +08:00
    运维真的是看起来简单,实则都是经验的积累
    YVAN7123
        48
    YVAN7123  
       2022-11-15 08:42:52 +08:00
    @YaakovZiv 背 nginx 参数的太狠了吧
    swsh007
        49
    swsh007  
       2022-11-15 08:48:06 +08:00 via Android
    这是偏开发了
    一道关于安装备份复位的题都没有
    lmshl
        50
    lmshl  
       2022-11-15 09:52:19 +08:00
    @swsh007 离开发很远

    @ropon @YaakovZiv 我觉得考这些东西都不如考英语,比如从 kafka/redis/nginx 文档中截取一段,请应聘者弄懂这段讲了什么,需要如何操作(甚至可以借助词典)。
    碰上 CSDN/百度 运维才是灾难,拷贝来的命令里符号有全角都发现不了,也看不懂 cli 返回的错误信息是什么意思。
    40EaE5uJO3Xt1VVa
        51
    40EaE5uJO3Xt1VVa  
       2022-11-15 09:57:03 +08:00
    楼主有答案没。

    话说还有个很更基础的问题:服务器资源占满了,该怎么排查,CPU 内存 硬盘 /网络 IO 等等,说说思路。
    rickiey
        52
    rickiey  
       2022-11-15 10:01:30 +08:00
    我一个开发知道大部分,请问工资多少?我可以转运维
    podel
        53
    podel  
       2022-11-15 10:18:48 +08:00
    楼主的问题,基本上做运维的大部分都有涉及。也属于这方便的需要了解的知识。做多了自然就懂了。
    运维开发 比起软件开发的深度,更多的还需要一个知识面的广度。
    运维开发目的是提升整体开发团队的效率,而不仅仅是做一个运维管理。

    另外国内小厂对运维开发这个职位基本上不是很重视。以为运维就是 运行维护。所以工资反而可能没有开发高。

    运维开发基本上是 一个公司发展到一定程度 对软件开发整体流程效率的更高需求。
    小公司创业可以没有运维开发,但是不能没有普通的软件研发。
    ragnaroks
        54
    ragnaroks  
       2022-11-15 10:58:38 +08:00
    除了 25 、35 、36 、37 都可以作答,当然对不对另说。

    25 、37 主要是不确定这里的语境下到底指什么,太多歧义。
    35 、36 没做过 python 。
    adoal
        55
    adoal  
       2022-11-15 11:45:22 +08:00 via iPhone
    @julyclyde 业务系统厂家的司内技术栈收敛
    wliansheng
        56
    wliansheng  
       2022-11-15 11:55:00 +08:00
    好像都听过,又好像都回答不准 +1
    fxxkgw
        57
    fxxkgw  
       2022-11-15 12:16:36 +08:00
    太夸张了这覆盖范围。。。
    duzhor
        58
    duzhor  
       2022-11-15 13:26:56 +08:00
    @ropon 运维平台有没有成熟的或者还不错的开源解决方案
    ltruntu
        59
    ltruntu  
       2022-11-15 13:53:55 +08:00
    我 sudo rm -rf / 不需要这些知识
    wanmyj
        60
    wanmyj  
       2022-11-15 13:56:17 +08:00
    我感觉 OP 的这些问题都非常好啊,并不是死板教条的问题。我虽然工作中只做高级软件开发,但是平常喜欢搞 openwrt ,所以这些问题我也能回答出来至少 40%,看得懂 90%, 对于一个专业的职业运维开发,回答出来 80%也是一个不过分的要求吧。
    nilai
        61
    nilai  
       2022-11-15 14:19:27 +08:00
    答案呢?
    Achilless
        62
    Achilless  
       2022-11-15 14:51:44 +08:00
    说实话,这公司去了就是苦逼搬砖的。
    我面的 sre 岗位基本都是开发,分布式系统设计,高可用,故障快速恢复,k8s ,服务网格这些
    nuII
        63
    nuII  
       2022-11-15 16:39:47 +08:00   ❤️ 1
    如果是技能范围的考察,那这些问题是挺不错的。面试题不是要你全都答出来,100 分才录用,而是从你的回答侧面看的基础、知识范围、思维方式和行业经验之类的,就算是没接触过的技术,面试官如果能引导一下,候选人基础够吊的话也能回答个八九不离十。

    如果面试官是要候选人都答出来。。。那还是赶紧跑吧
    sdk234
        64
    sdk234  
       2022-11-15 18:55:01 +08:00 via Android
    @julyclyde 你说的我有点没看懂,这根 dsh 原理有什么关系?
    sdk234
        65
    sdk234  
       2022-11-15 18:56:39 +08:00 via Android
    @julyclyde sry, *ssh.
    levelworm
        66
    levelworm  
       2022-11-16 06:44:08 +08:00 via Android
    很好奇这些知识自己怎么学呢?用了不少 ops 的工具,但是都是别人搭建我们使用。是不是只有在家自己搭系统才能锻炼了?
    crazypig14
        67
    crazypig14  
       2022-11-16 08:27:49 +08:00
    这题有点老,dev 比重较低,适合筛选跟面试官类似技术栈经验并且有过一定积累钻研的人,并不是非常认同
    blless
        68
    blless  
       2022-11-16 09:18:05 +08:00 via Android
    老运维个人理解:运维的本质其实在于系统持续运行和快速恢复。排查故障其实都是事后补助措施,所以很多运维需要做大量高可用设计方案。这里题目我没看到几道题跟高可用或者故障处理快速恢复相关。个人感觉这个公司对岗位定位有偏差
    xderam
        69
    xderam  
       2022-11-16 11:28:43 +08:00 via iPhone
    @julyclyde 咋说呢 老一辈运维对自己严格要求是好事 但有些问题的正确答案并不一定是唯一的 比如这里的题到底是要看正确答案还是解题者的思路 现在要学的东西太多了 不是咱以前那时候精雕细琢的时代了 多学是好事 但精力有限 学点别的或者享受下生活也是不错的选择 哈哈
    julyclyde
        70
    julyclyde  
       2022-11-16 14:15:26 +08:00
    @xderam 为什么“但”?我也没说是唯一的啊
    julyclyde
        71
    julyclyde  
       2022-11-16 14:18:29 +08:00
    @sdk234 恭喜你,为自己赢得了“不懂技术”的认证
    kangkang
        72
    kangkang  
       2022-11-16 16:29:59 +08:00
    按照 google 的划分来说,这是招 SRE 的题,不是招 SA(运维)
    lsyAndroid
        73
    lsyAndroid  
       2022-11-17 08:25:04 +08:00
    SRE 标准面试,因为我之前做过这块业务,非常有挑战性,实际上奔着 CTO 去了,可惜我坚持不住跑路了
    notnumb
        74
    notnumb  
       2022-11-21 10:38:43 +08:00
    不太清楚“实现原理”要如何描述。到哪一层啊?
    HankAviator
        75
    HankAviator  
       2023-03-14 00:41:34 +08:00 via Android
    @liuxu 我超太准了,前公司基本都命中
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1106 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.