互联网软件的开拓和发布,已经形成了一套标准流程,最主要的组成部分便是持续集成(Continuous integration,简称CI)。持续集成指的是,频繁地(一天多次)将代码集成到主干,它的好处紧张有两个.(1)快速创造缺点。每完成一点更新,就集成到主干,可以快速创造缺点,定位缺点也比较随意马虎。(2)防止分支大幅偏离主干。如果不是常常集成,主干又在不断更新,会导致往后集成的难度变大,乃至难以集成持续集成的目的,便是让产品可以快速迭代,同时还能保持高质量。它的核心方法是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失落败,就不能集成。与持续集成干系的,还有两个观点,分别是持续交付和持续支配。
持续交付
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
持续支配
持续支配(continuous deployment)是持续交付的下一步,指的是代码通过评审往后,自动支配莅临盆环境。持续支配的目标是,代码在任何时候都是可支配的,可以进入生产阶段。
总结
持续:完成一个新功能就向下一个环节交付,不断创造问题,办理问题。集成:研发职员提交新代码到主干仓库,进行构建、支配、测试,不断做集成,改动集成结果。支配:将项目发布到测试环境、预生产环境或生产环境。交付:将终极产品发布到预生产环境或生产环境,给用户利用。持续集成(Continuous Integration):代码合并、构建、支配、测试都在一起,不断地实行这个过程,并对结果反馈。持续交付(Continuous Delivery):将终极产品发布莅临盆环境,给用户利用。持续支配(Continuous Deployment):将新需求支配莅临盆环境。
流程
Jenkins :一个开源的持续集成工具,供应软件版本发布、自动测试等一系列流程及丰富的插件。Maven:一个自动化构建工具,通过一段描述来管理项目的构建,比如编译、打包等逻辑流程。SVN/Git:源代码版本管理工具。Docker:容器化技能;打包项目环境与快速支配。
Docker结合Jenkins构建持续集成环境发布流程设计JAVA环境CI
