自动化部署利器jenkins(CICD)

书山有路勤为径,学海无涯苦作程序员

什么是CICD

CICD称之为持续集成、持续交付/部署,
CI、CD应该分成两个步骤来阐述
在这里插入图片描述

CI

CI(Continous Integration)持续集成,指的是频繁地把代码集成主干中。
这样做的好处有:

  1. 快速发现错误:每提交一点更新,就集成到主干,由CI系统告诉你集成成功或者失败(举例:java代码提交后,由CI系统帮忙编译+打包,若整个流程执行顺利,则本次提交的代码集成成功)
  2. 防止分支大幅度偏离主干:通过频繁把代码集成到主干中,可以实现产品的快速迭代。

CD

持续交付Continous Delivery

频繁地将软件的新版本,交付给质量团队或用户,以供评审。
持续交付可以看做持续集成的下一步,它强调的是,无论产品怎么更新,都是可以随时交付的。

持续部署Continous Deployment

将持续交付后的产品进行部署,并发布到生产阶段。

常见的CICD工具

CI:jenkins(开源免费)、Travis、Circle、walle
CD:spug

jenkins

工作流程

图源来自“头条@波波说运维”在这里插入图片描述

原理

通过git webhook去触发jenins构建原理
图源来自“头条@波波说运维”
在这里插入图片描述

优势

jenkins的优势:

  • 持续集成CI(Continuous Integration)
  • 持续交付/持续部署CD(Continous Delivery/Deployment)
  • 实时监控集成过程,提供日志文件和提醒功能

部署方式

jenkins触发式构建

触发式构建,常用于开发环境中使用,开发人员通过push代码到git server,git server通过设置的web hook去请求jenkins server,执行任务构建,并部署到对应的服务器。

延伸:触发式构建可以不考虑环境的使用,每次push代码到git服务器后,让jenkins自动执行CI过程。此方法可以减少程序员对代码的编译、打包等操作,简化操作流程,释放双手👐

jenkins参数化构建

参数化构建,可以手动干预CI过程。一般会使用branch、tag作为参数,指定编译版本
在这里插入图片描述

jenkins定时构建

使用crontab表达式定时构建
在这里插入图片描述

jenkins的实际应用

在这里插入图片描述

此流程jenkins充当了CI、CD角色,比较简单,不深入交流。
想了解jenkins的真正用法,可以看下面的例子👇

jenkins集成发布系统使用(docker版本)

在这里插入图片描述

  1. 通过本地提交代码到git服务器
  2. git服务器触发web hook,去调用jenkins相关任务
  3. jenkins执行构建
  4. jenkins向git发送pull请求
  5. jenkins将git代码更新到自己的服务上
  6. jenkins将代码进行编译,打包(docker版本会生成镜像)
  7. jenkins将生成的镜像推送到oss对象存储系统(此处为镜像仓库)
  8. 当系统要上线时,在发布系统(spug)上创建发布任务,经过审批后,将docker-compose.yml和script脚本发送给web服务器
  9. web服务器执行脚本
  10. web服务器根据docker-compose.yml的配置,向镜像仓库oss发送更新请求
  11. web服务器从镜像仓库oss中更新镜像
  12. 根据镜像创建容器并启动
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值