滴雨公司完成了整套物联网解决方案程序的CICD一体化部署。
相关技术:
Jenkins;
GitLab;
harbor;
meven;
Kubernetes。
Jenkins是一个比较流行的持续集成工具
GitLab是存储镜像的镜像仓库
由程序员将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。
进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像, 镜像构建成功后就把镜像push推送到Harbor镜像仓库中,镜像push推送到镜像仓库后,我们就可以调用kubernetes集群的restAPI更新服务, 而后kubernetes接收到了更新的指令,从Harbor镜像仓库pull拉取镜像,从而完成服务的更新与重启,最后我们从客户端来访问kubernetes集群的服务。
CICD流程介绍:
1.开发从镜像库里获取基础镜像,对应用进行容器化开发;
2.开发提交代码到Gitlab(在Kubernetes中实现Gitlab服务,并通过持久化存储保存用户数据);
3.Gitlab收到代码提交请求后通过webhook触发Jenkins master;
4.Jenkins master收到请求后在slave节点中对源码进行打包;
5.在源码打包完成后根据流水线,从Gitlab中获取dockerfile,在slave节点中生成docker images;
6.Docker镜像生成之后上传到Docker 私有仓库harbor;
7.通过Jenkins流水线在Kubernetes测试环境拉取镜像,部署应用;
8.测试成功之后,通过Jenkins流水线在Kubernetes生产环境进行应用的部署上线。