CI/CD面试题
CI/CD基础概念
流程与工具
- 什么是CI/CD?CI和CD的区别是什么?
- 说一下你们公司的代码上线流程?
- CI/CD给公司带来了什么价值?
- 你们公司CI/CD用到了哪些工具?
发布策略
- 常见的发布策略有哪些?(蓝绿部署、金丝雀发布、滚动更新)
- 什么是灰度发布?如何实现?
- 发布回滚的策略有哪些?
- 你们公司的发布频率是多少?
Jenkins
基础配置
- Jenkins的架构是怎样的?Master和Agent的区别?
- Jenkins如何实现高可用?
- Jenkins的用户权限如何管理?
- Jenkins备份策略是什么?
Pipeline流水线
- 为什么使用Pipeline而不是自由风格项目?
- Pipeline的两种语法(声明式和脚本式)有什么区别?
- Jenkinsfile的作用是什么?为什么要版本控制?
- Pipeline中常用的步骤有哪些?
插件使用
- 你使用过哪些Jenkins插件?
- Git Parameter插件如何使用?
- Active Choices插件的作用是什么?
- Kubernetes插件如何配置动态Agent?
共享库
- 什么是Jenkins共享库?为什么使用?
- 共享库的目录结构是怎样的?
- 如何在Pipeline中引用共享库?
- 共享库的最佳实践有哪些?
容器化部署
- Jenkins容器化部署需要注意什么?
- 如何在Jenkins容器中运行Docker命令?
- Jenkins与K8s集成的方式有哪些?
- 动态Jenkins Agent的优势是什么?
GitLab CI/CD
基础概念
- GitLab CI/CD的核心组件有哪些?
.gitlab-ci.yml
文件的作用是什么?- GitLab Runner有哪几种类型?
- 如何注册和管理GitLab Runner?
Pipeline配置
- GitLab CI/CD的Pipeline包含哪些阶段?
- 如何定义Job的执行条件?
- GitLab CI/CD的变量如何管理?
- 如何实现Pipeline的并行执行?
Runner管理
- Shared Runner和Specific Runner的区别?
- Runner的执行器(Executor)有哪些类型?
- 如何配置Runner的并发数?
- Runner标签(Tags)的作用是什么?
高级特性
- GitLab CI/CD如何实现多项目Pipeline?
- 如何使用GitLab的环境(Environment)功能?
- GitLab CI/CD的缓存机制如何配置?
- 如何实现跨项目的Pipeline触发?
ArgoCD
基础架构
- ArgoCD是什么?解决了什么问题?
- ArgoCD的架构组件有哪些?
- GitOps的核心理念是什么?
- ArgoCD与传统CI/CD的区别?
应用管理
- ArgoCD中Application的概念是什么?
- 如何在ArgoCD中创建应用?
- ArgoCD支持哪些配置管理工具?(Helm、Kustomize、Jsonnet)
- 同步策略(Sync Policy)有哪些?
部署与同步
- 什么是自动同步和手动同步?
- ArgoCD的同步状态有哪些?
- 如何处理同步冲突?
- 什么是同步窗口(Sync Windows)?
高级特性
- ArgoCD的RBAC如何配置?
- 如何实现多集群部署?
- ArgoCD的通知功能如何配置?
- 如何集成外部密钥管理系统?
容器化CI/CD
Docker构建
- Dockerfile多阶段构建的优势是什么?
- 如何优化Docker镜像大小?
- Docker镜像的安全扫描如何实现?
- 镜像仓库(Harbor)的管理策略?
K8s部署
- K8s环境下的CI/CD流程是怎样的?
- 如何实现K8s的滚动更新?
- Helm在CI/CD中的作用是什么?
- 如何管理K8s的配置和密钥?
监控与优化
流水线监控
- 如何监控CI/CD流水线的性能?
- 构建时间过长如何优化?
- 如何设置合理的超时时间?
- 并发构建数如何确定?
质量保障
- 代码质量检查在哪个阶段进行?
- 如何集成SonarQube进行代码扫描?
- 自动化测试如何集成到CI/CD?
- 如何确保生产环境的发布质量?
最佳实践
安全实践
- CI/CD中的凭证如何安全管理?
- 如何防止敏感信息泄露?
- 镜像签名和验证如何实现?
- 供应链安全如何保障?
运维实践
- CI/CD系统的备份恢复策略?
- 如何实现零停机部署?
- 发布失败的应急预案?
- CI/CD工具的选型考虑因素?
团队协作
- 如何制定分支管理策略?
- Code Review如何集成到CI/CD?
- 如何管理多团队的CI/CD权限?
- CI/CD的文档和知识传承?
更新时间:2025-01-30