高效的CI/CD环境能获得什么呢?
- 及时发现问题:提早得到集成反馈和修复
- 大幅度减少故障率:业务流程化,减少人工出错风险
- 加快迭代速度:可以在几分钟内运行几十次、甚至上百次持续集成
- 减少时间成本:多项目管理及繁琐的部署工作没有了,不必再花费一定时间去准备
- 研发端到端流水线,一键部署,应用弹性伸缩,灰度发布
要想做到一个高效的CI/CD流程,需要有能力整合DevOps工具链及多环境适配,并且设计之初以自动化为原则,如一键部署、一键升级。
发布流程设计
1. 开发语言:Java
2. 项目代码版本管理:Git
3. 代码编译:Maven
4. 持续集成:Jenkins
5. 交付:以Docker镜像形式交付,提交至Harbor
6. 部署:Docker主机创建容器
环境规划如下:
角色 | IP |
---|---|
Docker | 192.168.30.128 |
Jenkins | 192.168.30.129 |
Git | 192.168.30.130 |
工作流程:
- 开发人员提交代码到Git版本仓库;
- Jenkins人工/定时触发项目构建;
- Jenkins拉取代码、代码编译、打包镜像、推送到镜像仓库;
- Jenkins在Docker主机创建容器并发布。
部署Git仓库
首先部署一个Git仓库,存储测试的代码,这里选择solo博客程序做测试:https://github.com/b3log/solo 。该步骤在 192.168.30.130 上执行。
- 安装Git:
# yum install -y git
- 创建Git用户并设置密码:
# useradd git
# passwd git
- 创建仓库:
# su - git
# mkdir solo.git
# cd solo.git
# git init --bare #创建裸仓库
# vim config #添加用户,否则commit报错
[user]
name = lzx
email = lzx@lzx.com
- 上传项目到仓库:
拉取代码
# git clone https://github.com/b3log/solo.git
添加私有仓库地址
# cd solo/
# git remote remove origin
# git remote add origin git@192.168.30.130:/home/git/solo.git
提交到私有仓库
# git add .
# git commit -m "all"
# git push origin master
部署Harbor镜像仓库
之前部署过,此处省略,参考这里:部署Harbor
安装Docker
需要安装Docker及配置Java环镜。 该步骤在 192.168.30.128 上执行。
- 安装依赖包:
# yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加Docker软件包源: