jenkins2 pipeline介绍

文章来自: http://www.ciandcd.com
文中的代码来自能够从github下载:  https://github.com/ciandcd
 
什么是jenkins2的pipeline?
 
jenkins的实现是标准的master/slave模式,用户与master交互,master将job分布到slave上运行。
jenkins的基本概念:
1. master, 也就是jenkins的server,是jenkins的核心,主要负责job的定时运行,将job分发到agent运行,和对job运行状态的监控。
2. agent/slave/node,agent是相对于master的概念,主要做用是监听master的指令,而后运行job。
3. executor,executor是虚拟的概念,每个agent均可以设置executor的数量,表示能够同时运行的job的数量。
 
jenkins1的基本用法:
通常使用free style的job类型,在job的里面调用一些脚本和插件来实现整个持续集成的过程,通常是将整个job发布到某台机器上运行。缺点是job的配置分布在脚本和插件中,配置不够集中,致使监控的时候log不容易查找。通常要实现整个持续集成发布流程须要多个jobs来实现。
 
相对于jenkins1,jenkins2的核心概念是pipeline。在jenkins2中引入grovvy脚本和虚拟的概念stage使得jenkins的配置和监控更集中,更清楚。
jenkins2的一些新概念:
1. step,其实跟jenkins1中的概念同样, 是jenkins里job中的最小单位,能够认为是一个脚本的调用和一个插件的调用。
2. node, 是pipleline里groovy的一个概念,node能够给定参数用来选择agent,node里的steps将会运行在node选择的agent上。这里与jenkins1的区别是, job里能够有多个node,将job的steps按照需求运行在不一样的机器上。例如一个job里有好几个测试集合须要同时运行在不一样的机器上。
3. stage,是pipeline里groovy里引入的一个虚拟的概念,是一些step的集合,经过stage咱们能够将job的全部steps划分为不一样的stage,使得整个job像管道同样更容易维护。pipleline还有针对stage改进过的view,使得监控更清楚。
 
 
pipeline的设计理念是实现基于groovy脚本,灵活,可扩展的持续发布(CD)工做流。
pipeline的功能和优势:
1. durable持久性:在jenkins的master按计划和非计划的重启后,pipeline的job仍然可以工做,不受影响。其实理解起来也很简单,jenkins的master和agent经过ssh链接,若是你知道nohup或disown的话,就能够理解为啥master的重启不会影响agent上的job继续运行。以前已经有相似的插件 https://www.cloudbees.com/products/cloudbees-jenkins-platform/enterprise-edition/features/long-running-build-plugin
2. 可暂停性:pipeline基于groovy能够实现job的暂停和等待用户的输入或批准而后继续执行。
3. 更灵活的并行执行,更强的依赖控制,经过groovy脚本能够实现step,stage间的并行执行,和更复杂的相互依赖关系。
4. 可扩展性:经过groovy的编程更容易的扩展插件。
 
总之,jenkins2的核心是pipeline,pipeline的核心是groovy,咱们必须立刻开始学习groovy。
相关文章
相关标签/搜索