CICD是什么意思,理不理解不是很重要,为什么会需要这个,很重要。
为什么会出现CICD
比如我们有一个项目,有后端和前端两部分,不论前端还是后端做了代码提交,我们要验证是否生效,需要部署到环境中去测试。这个过程要做哪些事情呢?
简单点:修改代码-》构建打包-》部署到环境-》验证-》代码合入-》发布。
当然现在更多的还是Docker或者k8s去运行我们服务的,那就会多了构建镜像和上传镜像到仓库。
修改代码-》构建打包-》构建镜像-》上传到镜像仓库-》部署到环境-》验证-》代码合入-》发布。
除了修改代码和验证,剩下的操作,基本都是固定的,或者配置一些参数即可。
上面的流程走过几次以后,就会发现修改代码之后的事情都是重复性的,而且几乎没有什么变动,完全可以通过维护shell脚本和Dockerfile来实现一键操作完成。
这只是一个部分,我们还有很多其它模块,也是同样的事情要做。我们需要一个统一的平台来维护我们整个项目的自动构建打包,构建镜像等一系列事情。这个平台就是CICD平台。
怎么实现,不同的团队可以有不同的实现。
目标只有一个,开发只管提交代码,剩下的就是一键触发构建,部署。
如果能够维护好自动化测试脚本,再触发自动化测试。验证通过,将代码合入主干,从主干构建出可发布的版本。