跳到主要内容

CI/CD面试题

CI/CD基础概念

流程与工具

  1. 什么是CI/CD?CI和CD的区别是什么?
  2. 说一下你们公司的代码上线流程?
  3. CI/CD给公司带来了什么价值?
  4. 你们公司CI/CD用到了哪些工具?

发布策略

  1. 常见的发布策略有哪些?(蓝绿部署、金丝雀发布、滚动更新)
  2. 什么是灰度发布?如何实现?
  3. 发布回滚的策略有哪些?
  4. 你们公司的发布频率是多少?

Jenkins

基础配置

  1. Jenkins的架构是怎样的?Master和Agent的区别?
  2. Jenkins如何实现高可用?
  3. Jenkins的用户权限如何管理?
  4. Jenkins备份策略是什么?

Pipeline流水线

  1. 为什么使用Pipeline而不是自由风格项目?
  2. Pipeline的两种语法(声明式和脚本式)有什么区别?
  3. Jenkinsfile的作用是什么?为什么要版本控制?
  4. Pipeline中常用的步骤有哪些?

插件使用

  1. 你使用过哪些Jenkins插件?
  2. Git Parameter插件如何使用?
  3. Active Choices插件的作用是什么?
  4. Kubernetes插件如何配置动态Agent?

共享库

  1. 什么是Jenkins共享库?为什么使用?
  2. 共享库的目录结构是怎样的?
  3. 如何在Pipeline中引用共享库?
  4. 共享库的最佳实践有哪些?

容器化部署

  1. Jenkins容器化部署需要注意什么?
  2. 如何在Jenkins容器中运行Docker命令?
  3. Jenkins与K8s集成的方式有哪些?
  4. 动态Jenkins Agent的优势是什么?

GitLab CI/CD

基础概念

  1. GitLab CI/CD的核心组件有哪些?
  2. .gitlab-ci.yml文件的作用是什么?
  3. GitLab Runner有哪几种类型?
  4. 如何注册和管理GitLab Runner?

Pipeline配置

  1. GitLab CI/CD的Pipeline包含哪些阶段?
  2. 如何定义Job的执行条件?
  3. GitLab CI/CD的变量如何管理?
  4. 如何实现Pipeline的并行执行?

Runner管理

  1. Shared Runner和Specific Runner的区别?
  2. Runner的执行器(Executor)有哪些类型?
  3. 如何配置Runner的并发数?
  4. Runner标签(Tags)的作用是什么?

高级特性

  1. GitLab CI/CD如何实现多项目Pipeline?
  2. 如何使用GitLab的环境(Environment)功能?
  3. GitLab CI/CD的缓存机制如何配置?
  4. 如何实现跨项目的Pipeline触发?

ArgoCD

基础架构

  1. ArgoCD是什么?解决了什么问题?
  2. ArgoCD的架构组件有哪些?
  3. GitOps的核心理念是什么?
  4. ArgoCD与传统CI/CD的区别?

应用管理

  1. ArgoCD中Application的概念是什么?
  2. 如何在ArgoCD中创建应用?
  3. ArgoCD支持哪些配置管理工具?(Helm、Kustomize、Jsonnet)
  4. 同步策略(Sync Policy)有哪些?

部署与同步

  1. 什么是自动同步和手动同步?
  2. ArgoCD的同步状态有哪些?
  3. 如何处理同步冲突?
  4. 什么是同步窗口(Sync Windows)?

高级特性

  1. ArgoCD的RBAC如何配置?
  2. 如何实现多集群部署?
  3. ArgoCD的通知功能如何配置?
  4. 如何集成外部密钥管理系统?

容器化CI/CD

Docker构建

  1. Dockerfile多阶段构建的优势是什么?
  2. 如何优化Docker镜像大小?
  3. Docker镜像的安全扫描如何实现?
  4. 镜像仓库(Harbor)的管理策略?

K8s部署

  1. K8s环境下的CI/CD流程是怎样的?
  2. 如何实现K8s的滚动更新?
  3. Helm在CI/CD中的作用是什么?
  4. 如何管理K8s的配置和密钥?

监控与优化

流水线监控

  1. 如何监控CI/CD流水线的性能?
  2. 构建时间过长如何优化?
  3. 如何设置合理的超时时间?
  4. 并发构建数如何确定?

质量保障

  1. 代码质量检查在哪个阶段进行?
  2. 如何集成SonarQube进行代码扫描?
  3. 自动化测试如何集成到CI/CD?
  4. 如何确保生产环境的发布质量?

最佳实践

安全实践

  1. CI/CD中的凭证如何安全管理?
  2. 如何防止敏感信息泄露?
  3. 镜像签名和验证如何实现?
  4. 供应链安全如何保障?

运维实践

  1. CI/CD系统的备份恢复策略?
  2. 如何实现零停机部署?
  3. 发布失败的应急预案?
  4. CI/CD工具的选型考虑因素?

团队协作

  1. 如何制定分支管理策略?
  2. Code Review如何集成到CI/CD?
  3. 如何管理多团队的CI/CD权限?
  4. CI/CD的文档和知识传承?

更新时间:2025-01-30