Docker|持续集成
基本概念
敏捷开发
什么是敏捷开发?
敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
参考文章:http://blog.jobbole.com/110231/
持续集成
持续集成指的是,频繁地(一天多次)将代码集成到主干。
它的好处主要有两个:
快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
Martin Fowler 说过,"持续集成并不能消除 Bug,而是让它们非常容易发现和改正。"
持续交付
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
持续部署
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
持续部署的前提是能自动化完成测试、构建、部署等步骤。
基本操作流程
总体流程:
1.配置好GitRunner脚本和docker相关文件提交到 GitLab
2.提交就会触发GitRunner程序,自动下载代码,然后根据脚本进行编译构建,运行。
总的目标:
实现提交代码就可以集成到测试环境中,无需我们再像以前那样,需要自己安装什么环境,下载代码,编译构建等操作,完全自动处理。
大概就是流程如下图:
实战操作
此类实战文字无法描述,推荐以下教程视频或者你可以找一下相关资源:
https://www.bilibili.com/video/av43639811/?p=98
或者文末公众号有相关docker视频教程。
总结
docker 一次构建,到处运行。隔离机制,与运行环境无关。
因为这些特点,就不会出现我们平时说的:“在我的电脑上运行没问题的呀”
由于隔离机制,所以不用担心CPU多少核,系统是Linux或者windows,你只要有docker其他的都没有影响。
最后
如果对 Java、大数据感兴趣请长按二维码关注一波,我会努力带给你们价值。觉得对你哪怕有一丁点帮助的请帮忙点个赞或者转发哦。
关注公众号【爱编码】,回复2019有相关视频教程哦。