DevOps实战初试


DevOps 工程师初面实战题目(中小团队)

侧重:有开发背景 + 从 0 到 1 搭建 + 中小规模实战


一、CI/CD 流水线

1. 从 0 搭建 CI/CD,你会怎么做?

回答要点:

  • 流程:代码提交 → 构建 → 测试 → 打包 → 部署测试 → 部署生产
  • 工具选型:小团队用 GitHub Actions / GitLab CI(免运维),自建用 Jenkins
  • 关键点:产物打 tag、环境隔离、一键回滚、构建通知

2. CI/CD 踩过什么坑?

回答要点:

  • 构建慢 → 缓存依赖(Maven、node_modules)
  • 并发冲突 → 工作空间隔离
  • 密钥泄露 → 用 CI 变量,不写代码里
  • 发布卡住 → 超时机制 + 通知

3. 怎么实现发布不停机?

回答要点:

  • Nginx 负载 + 滚动发布:摘一台 → 部署 → 挂回 → 下一台
  • 双目录切换:v1/v2 交替,软链接秒切
  • Docker:新容器起来再停旧的

二、Linux 服务器

4. 新服务器到手,做哪些初始化?

回答要点:

  • 基础:主机名、时区、国内源
  • 安全:禁 root SSH、密钥登录、防火墙
  • 软件:Docker、Git、监控 Agent
  • 磁盘:数据盘挂载、日志目录规划
  • 最好写成脚本/Ansible,可复用

5. CPU/内存/磁盘告警怎么排查?

回答要点: 告警 命令 常见原因
CPU 高 top、htop 死循环、GC 频繁
内存高 free、ps aux 内存泄漏、缓存没释放
磁盘满 df、du 日志没清理
IO 高 iotop 大量写日志、慢查询

6. 日志撑爆磁盘怎么处理?

回答要点:

  • 紧急:> xxx.log 清空(不能直接 rm,进程还在写)
  • 长期:logrotate 日志切割、应用配置大小限制、定时清理脚本

三、Docker 部署

7. Docker 常用操作?

回答要点:

  • 查看:docker psdocker logsdocker stats
  • 进入:docker exec -it xxx bash
  • 清理:docker system prune
  • 更新:pull 新镜像 → 停旧容器 → 起新容器

8. Dockerfile 怎么优化?

回答要点:

  • 多阶段构建:编译和运行分离,减小体积
  • 基础镜像:用 slim/alpine 版本
  • 层缓存:不变的放前面(依赖安装)
  • 不用 latest:打明确的版本 tag

9. docker-compose 怎么用?

回答要点:

  • 多服务编排:app + redis + mysql 一个文件搞定
  • 常用:up -d 启动、logs -f 看日志、pull && up -d 更新
  • 配置:端口、环境变量、依赖顺序、restart 策略

四、Nginx

10. Nginx 常用配置?

回答要点:

  • 反向代理:proxy_pass + header 透传
  • 负载均衡:upstream + weight 权重
  • 静态资源:root + expires 缓存
  • HTTPS:证书配置、强制跳转

11. 502/504 怎么排查?

回答要点: 错误 含义 排查
502 后端没响应 服务挂了、端口没起来
504 后端超时 接口慢、超时配置短
  • 排查:看 error.log → 检查进程/端口 → curl 后端测试
  • 解决:重启服务、调大 proxy_timeout

五、监控告警

12. 中小团队监控怎么搭?

回答要点:

  • 轻量方案:Prometheus + Grafana + AlertManager
  • 更轻量:云厂商自带监控(阿里云/腾讯云)
  • 必监控:CPU、内存、磁盘、进程存活、接口 RT、错误率

13. 告警太多怎么治理?

回答要点:

  • 分级:P0 立即处理、P1 一小时内、P2 当天
  • 收敛:同类合并、恢复通知
  • 定期 Review:删无用告警、调阈值

六、自动化脚本

14. 写过哪些自动化脚本?

回答要点:

  • 一键部署脚本(拉镜像 → 停旧 → 起新)
  • 日志清理脚本
  • 数据库备份脚本
  • 巡检脚本(磁盘、证书过期)
  • 批量操作(重启、更新配置)

15. Shell 脚本注意事项?

回答要点:

  • set -e 出错退出
  • 变量加引号防空格
  • 幂等设计(重复执行不出错)
  • 关键步骤打日志
  • 错误处理(|| true 或 trap)

七、故障处理

16. 服务挂了怎么排查?

回答要点:

  1. 快速确认:进程在不在、端口在不在、能不能 curl 通
  2. 看日志:应用日志、系统日志(dmesg)
  3. 常见原因:OOM 被 kill、线程卡死、连接池满、依赖挂了
  4. 原则:先止血(重启/回滚)再查根因

17. 发布出问题怎么回滚?

回答要点:

  • Docker:启动旧版本镜像
  • 传统部署:软链接切回旧版本
  • 关键:每次发布打 tag、回滚脚本提前备好、数据库变更要兼容

八、综合

18. 有开发背景做 DevOps 的优势?

回答要点:

  • 能看懂代码,沟通顺畅
  • 写脚本/工具效率高
  • 排查问题能深入代码层面
  • 理解架构,部署方案更合理

19. 怎么推动手动部署转自动化?

回答要点:

  • 先解决痛点:最常出错的环节先自动化
  • 循序渐进:手动 → 脚本 → 流水线
  • 收益可见:部署从 30 分钟 → 5 分钟
  • 降低门槛:写文档、界面化操作

面试加分项

  • 从 0 搭建过完整环境的经验
  • 能说出踩过的坑和解决方案
  • 不只会用工具,还能写脚本
  • 成本意识
  • 做事有文档习惯


扫描二维码,在手机上阅读
收藏

成本指标功能-不确定事项清单

全栈实战初试

评 论
请登录后再评论