待更-CICD-持续部署_持续集成_持续交付
目前有这么个问题
比如目前要开发一个订单管理系统,包含三个模块,商品模块,订单模块,退款模块
传统的做法(手动部署):
1、产品经理把需要做的功能,整理成一份文档,传递给开发人员
2、每个开发人员开始写代码,开发各自把自己负责的模块开发完,提交到svn代码库上
3、运维人员从svn上检出源码,进行打包和环境部署(比如JAVA程序部署到Tomcat上)。
4、测试人员在运维人员部署后开始介入测试。
此时,测试人员在测试过程中发现系统有Bug,开发需要再次修改代码,然后把上面的步骤全部都走一遍。如果有100个Bug,那么有可能这个过程要返工100遍。所以运维人员每天的工作就是不断地检出,打包,部署......重复着很枯燥的活。
👇手动部署的流程
引进CICD--->>持续部署_持续集成_持续交付
每天都做这种无聊的工作,运维人员小C不乐意了,心想,有没有一种办法,去监控开发提交代码的动作,只要开发提交代码到svn(代码库),就触发这个项目自动构建并重新部署,而不用我每次去手动部署。
基于上面这个想法,持续部署 (Continuous Deployment) 的概念就出来了,持续部署就是干运维人员小C所想的事情。
单个模块可以自动部署,如果后面开发新增了新的功能模块,周一开发小张新增了模块A,周二开发小明新增了模块B,每天都进行n次自动部署,也同时进行了系统集成,所以持续集成(Continuous Integration)的概念也随之产生。
如果可以持续部署,那么只要开发修改并提交一次代码,就会自动构建并部署一个新版本,就可以持续优化功能,交付给测试人员测试了,每天可以自动构建N次,这时候持续交付(Continuous Delivery)也随之出来了。
下面是自动部署的流程,也是CICD的流程
下面以一个实战的项目,来演示自动部署的过程。
使用到的工具:
SVN+Jenkins+Maven+Tomcat