文章最后更新时间:
【免责声明:本文由AI辅助生成,内容仅供参考,不构成专业建议。】
Jenkins CI/CD完整流水线实战:从构建到部署的全流程自动化
Jenkins是最流行的开源CI/CD工具,本文分享从安装配置到流水线设计的完整实战经验。
Jenkins核心概念
Job/Item:Jenkins中的任务单元,可以是构建任务、部署任务等。
Pipeline:流水线,定义从代码提交到部署的完整流程。用Jenkinsfile声明式定义。
Stage:阶段,流水线中的一个逻辑单元,如Build、Test、Deploy。
Step:步骤,阶段中的具体操作,如执行Shell命令、发送通知。
Agent:执行流水线或阶段的代理节点。可以是Jenkins Master或Slave节点。
Jenkins安装配置
Java安装:Jenkins基于Java,需要先安装JDK 11+。推荐OpenJDK或Oracle JDK。
Jenkins安装:Docker安装:docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins。也可以直接安装或使用Kubernetes。
必备插件:Git、Pipeline、Docker、Kubernetes、Blue Ocean、SSH Agent、Credentials Binding。
Jenkinsfile声明式流水线
pipeline { agent any stages { stage(‘Build’) { steps { sh ‘docker build -t myapp:${BUILD_NUMBER} .’ } } stage(‘Test’) { steps { sh ‘docker run myapp:${BUILD_NUMBER} test’ } } stage(‘Deploy’) { steps { sh ‘kubectl apply -f deployment.yaml’ } } }
流水线最佳实践
代码化:所有流水线配置写在Jenkinsfile中,与代码一起版本管理。
失败处理:使用post块定义失败时的处理逻辑,如发送通知、清理资源。
参数化:使用parameters定义构建参数,如环境、分支、版本号。
凭证管理:使用credentials存储敏感信息,如密码、API Key,避免明文暴露。
多环境部署
环境配置:使用environment定义不同环境配置。stages中根据环境参数选择执行逻辑。
蓝绿部署:同时运行新旧版本,通过负载均衡切换流量。回滚快速。
金丝雀发布:先将小比例流量切到新版本,观察无问题后逐步扩大。
滚动更新:Kubernetes原生滚动更新,逐步替换旧版本Pod。
测试集成
单元测试:在Build阶段执行单元测试,使用JUnit XML报告。
代码扫描:集成SonarQube进行代码质量扫描。阻塞构建于严重质量问题。
安全扫描:集成Trivy或Snyk进行镜像安全扫描。
集成测试:在Test阶段部署测试环境,执行API测试、UI测试。
通知与监控
构建通知:钉钉/企业微信/Webhook通知。成功/失败/不稳定状态通知。
流水线可视化:Blue Ocean提供流水线可视化界面,便于理解执行过程。
度量指标:集成Prometheus+Grafana监控构建指标。构建时长、成功率、频率。
更多技术文章:https://blog.hanyucloud.com | 客服:400-880-3980

















暂无评论内容