1.对Jenkins的理解
它是一款使用JAVA 语言开发的开源的自动化服务器。可以通过界面或者Jenkinsfile 告诉它什么时候执行什么任务。通常用于持续集成和持续交付。
2.Jenkins 与 DevOps
DevOps 集文化理念,实践和工具于一身。但是很多书籍并没有什么操作性。但是DevOps 承诺能更快,更好的交付软件,其落地的过程,基本上都会谈到Jenkins。devops 理念里面的工具链,就是通过jenkins 集成到一起的。
3.持续集成-Continuous integration,CI
概念:频繁地将代码集成到株高
目的:让产品快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
优点:
(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
4.持续交付-Continuous delivery,CD
概念:频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
可以看做是CI 的下一步。
5.持续部署 - continuous deployment,CD
概念:是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
目的:持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
6.持续交付与持续部署的区别
7.流水线流程
7.1代码提交
开发者向仓库提交代码
7.2 测试
代码仓库对commit 操作配置了hook, 只要提交代码,就会自动触发自动化测试,分支测试第一轮。–持续集成的概念
7.3 构建
经过持续集成,代码就可以合入主干,就算可以交付了。此时就可以构建主干的包,主线测试,第二轮测试。
7.4 主线测试
相比第一轮测试,此处的测试,必须包含新需求的测试以及老功能的测试,以覆盖率高为主要目标。
7.5 部署
通过上述测试后,当前代码就是一个可以直接部署的版本(aircraft)。将制品文件打包存档,发到生产服务器。
8.参考资料
1.阮一峰老师的讲解:
http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
2.翟志军老师的书本:
Jenkins 2.x 实践指南