
资源介绍
本书围绕持续集成(CI)和持续部署(CD)展开,通过四大部分系统讲解 Jenkins 在 CI/CD 流程中的应用,从概念到实践,涵盖工具集成、 pipeline 设计、安全与扩展等关键内容。
第一部分:概念(The Concepts)
持续集成的基础
定义:开发人员定期将代码变更集成到共享仓库,并检查构建问题和质量相关问题的实践。
关键原则
频繁拉取代码(避免合并冲突)
验证每个代码变更(编译、测试、质量检查)
快速失败(尽早发现并解决问题)
自动化(编译、测试、打包等流程自动化)
持续反馈(多阶段反馈循环,如同行评审)
实践步骤
使用版本控制工具(如 Git)
验证代码提交(检查构建错误)
执行单元测试
静态代码分析(如 SonarQube)
使用二进制仓库管理器(如 Artifactory)
通过 CI/CD 工具编排流程(如 Jenkins)
并行化分布式构建
重要性:加快上市时间、提高软件质量、增强应用安全性、降低系统成本
第二部分:构建 CI 生态系统(Engineering the CI Ecosystem)
Jenkins 的规划、部署与维护
架构:主从模式(master 节点负责调度和管理,agent 节点执行构建任务)
系统需求:包括 CPU、内存、磁盘空间的计算公式,以及网络端口配置(8080、443、50000 等)
部署场景:对比容器化部署(Kubernetes)、云实例部署等方案的优劣
JCasC(Jenkins Configuration as Code):通过代码定义 Jenkins 配置,实现可重复性和版本控制
维护策略:结构化升级流程、备份策略(如 Azure 备份)
Jenkins 安全配置
用户认证与权限:与 Azure AD 集成,配置用户权限矩阵
CSRF 保护:默认启用,防止跨站请求伪造攻击
凭证管理:支持多种凭证类型(用户名密码、密钥文本等),通过 Kubernetes Secrets 等方式安全存储
Jenkins 扩展
与版本控制系统(如 GitHub)、代码质量工具(SonarQube)、 artifact 仓库(Artifactory)的集成步骤
插件安装与配置(如 GitHub 插件、SonarQube Scanner 插件)
Jenkins 扩展
分布式构建架构:主从模型,通过 Kubernetes 或 Azure VM 动态创建 agent
弹性扩展:根据负载自动创建或销毁 agent,提高资源利用率
第三部分:构建 CI 流水线(Crafting the CI Pipeline)
Jenkins Pipeline 语法
声明式 Pipeline:结构化语法,包含pipeline、agent、stages、steps等核心元素
关键指令:environment(环境变量)、options(流水线选项)、parameters(参数)、when(条件执行)等
嵌套阶段:支持顺序和并行执行的嵌套阶段,提高复杂流程的可读性
AI 驱动的 Pipeline 代码生成
利用 ChatGPT 生成 Pipeline 代码的方法论:描述需求→运行代码→故障排除→优化代码
局限性:需人工验证代码正确性,注意版本兼容性
首个 CI 流水线设计与实现
前置准备:GitHub 仓库配置、SonarQube 项目设置、Artifactory 作为 Docker 仓库
流水线阶段:代码检出、单元测试、静态代码分析、质量门检查、构建并发布 Docker 镜像到 Artifactory
可视化:通过 Jenkins Blue Ocean 界面查看流水线运行结果、测试报告、代码覆盖率等
第四部分:构建 CD 流水线(Crafting the CD Pipeline)
持续部署规划
定义:代码变更通过自动化测试后自动部署到生产环境的实践
策略:通用 CI 与仅主分支 CD、通用 CI/CD
GitOps:以 Git 为单一真理源,通过 Argo CD 实现 Kubernetes 集群状态与 Git 仓库同步
首个 CD 流水线实现
流水线阶段:更新 staging Helm 配置、验证 staging 部署健康状态、运行性能测试(k6 工具)、更新生产 Helm 配置、验证生产部署健康状态
集成 Argo CD:通过 API 检查部署状态,确保应用在 staging 和生产环境正常运行
CI/CD 流水线增强
GitHub Copilot:AI 辅助编写 Pipeline 代码,提高开发效率
Jenkins 共享库:集中管理通用代码模式,简化多流水线维护
构建管理:配置旧构建自动清理策略,优化系统资源
安全扫描:集成 JFrog Xray 在 CI 流水线中自动扫描漏洞
目标读者
学习敏捷软件开发的大学生
开发人员、测试人员、发布工程师、项目经理
已有 Jenkins 使用经验,希望从 CI 进阶到 CD 的用户
希望了解 JCasC、IaC 或 Azure 集成的 DevOps 工程师
技术依赖
Azure 订阅
开发工具:Visual Studio Code、Azure CLI、Helm、Git、Terraform、kubectl 等
总结
本书通过理论与实践结合,详细讲解了基于 Jenkins 的 CI/CD 流程构建,涵盖从基础概念到高级扩展的全流程。重点介绍了工具集成(GitHub、SonarQube、Artifactory、Argo CD)、Pipeline 代码设计、安全配置和弹性扩展,适合作为 DevOps 工程师的实战指南。