跳到内容
当前位置:首页>面试真题>第十四章(CI/CD 面试真题)

第十四章(CI/CD 面试真题)

  • 2026-09-18 20:08:14
第十四章(CI/CD 面试真题)

面试真题

题目 1:CI/CD 流程

描述一个完整的 CI/CD 流程

答案

  1. 开发者提交代码
  2. 自动触发 CI 流水线
  3. 安装依赖
  4. 运行测试(单元测试、集成测试)
  5. 代码质量检查(Lint、Sonar)
  6. 构建产物
  7. 部署到测试环境
  8. 自动部署到生产环境(或手动触发)

题目 2:Docker 优点

使用 Docker 有什么好处?

答案

  • 环境一致性:开发、测试、生产环境一致
  • 隔离性:应用之间相互隔离
  • 可移植性:一次构建,处处运行
  • 资源利用率:容器共享系统资源
  • 快速启动:秒级启动

题目 3:蓝绿部署

什么是蓝绿部署?

答案

  • 维护两套相同的环境(蓝和绿)
  • 一套运行生产流量,一套空闲
  • 新版本部署到空闲环境
  • 测试通过后,切换流量
  • 出现问题快速回滚

题目 4:金丝雀发布

什么是金丝雀发布?

答案

  • 逐步将流量从旧版本切换到新版本
  • 先让小部分用户使用新版本
  • 监控新版本表现
  • 逐步扩大范围
  • 最终全量发布

题目 5:GitHub Actions

GitHub Actions 的组成要素有哪些?

答案

  • Workflow:工作流程
  • Job:作业
  • Step:步骤
  • Action:动作
  • Runner:运行器

题目 6:Dockerfile 优化

如何优化 Dockerfile?

答案

  • 使用多阶段构建
  • 减少镜像层数
  • 合并相关命令
  • 使用 .dockerignore
  • 优先使用官方镜像
  • 使用 Alpine 镜像

题目 7:K8s 基本概念

Kubernetes 的核心概念有哪些?

答案

  • Pod:最小调度单位
  • Deployment:部署管理
  • Service:服务发现
  • Ingress:入口管理
  • ConfigMap:配置管理
  • Secret:密钥管理

题目 8:CI/CD 工具对比

GitHub Actions vs GitLab CI vs Jenkins 怎么选?

答案

  • GitHub Actions:GitHub 项目,简单免费
  • GitLab CI:GitLab 项目,CI/CD 完善
  • Jenkins:灵活自定义,插件丰富

题目 9:Docker Compose

Docker Compose 的使用场景?

答案

  • 本地开发环境
  • 多容器应用
  • 本地测试
  • 简单部署

题目 10:流水线设计

设计 CI 流水线需要考虑哪些因素?

答案

  • 代码检出
  • 依赖安装
  • 代码检查(Lint)
  • 测试执行
  • 构建打包
  • 镜像推送
  • 部署

题目 11:环境变量管理

CI/CD 中如何管理环境变量?

答案

  • GitHub Secrets
  • GitLab CI Variables
  • Jenkins Credentials
  • 不要在代码中硬编码敏感信息

题目 12:回滚策略

生产环境如何实现快速回滚?

答案

  • 使用版本标签
  • 保留历史版本镜像
  • 蓝绿部署可快速切换
  • 金丝雀可立即切回

题目 13:流水线加速

如何加速 CI/CD 流水线?

答案

  • 使用缓存
  • 并行执行任务
  • 减少不必要步骤
  • 使用更小镜像
  • 增量构建

题目 14:部署策略

常见的部署策略有哪些?

答案

  • 蓝绿部署
  • 金丝雀发布
  • 滚动更新
  • A/B 测试
  • 特性开关

题目 15:监控与告警

CI/CD 中如何集成监控?

答案

  • 部署后自动触发监控检查
  • 集成性能测试
  • 错误率监控
  • 告警通知

题目 16:Docker 网络

Docker 网络模式有哪些?

答案

  • bridge:默认桥接
  • host:主机网络
  • overlay:跨主机网络
  • none:无网络