Jenkins2.0介绍

2019-07-14  本文已影响0人  寻叶亭

一.背景

2015年9月底,提出Jenkins2.0草案。

2016年4月20日,Jenkins2.0正式发布,是Jenkins面世11年以来的首次大版本升级。

Jenkins2.0主要有三大亮点:
1.Pipeline as Code
2.易用性
3.向下兼容

其中,对于CI/CD过程带来最大提升的,就是Pipeline as Code,这Jenkins2.0最适合持续交付的核心特性。

那么什么是Pipeline呢?

简单来说,pipeline就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。

它的实现方式是一套Groovy DSL(类似Gradle),任何发布流程都可以表述为一段Groovy脚本,然后Jenkins可以直接从代码库读取脚本,从而实现Pipeline as Code的理念。

与以往通过web交互来配置的流程不同,jenkins也走向了正规的工程化交付方式-即使用配置文件实现everything is code,至此就再也不用每个项目都手工配置各种项目模板。

同时,pipeline定义了几乎要用到的所有流程,比如静态代码检查,构建,部署,测试等。

二.jenkins1.0的痛点

1.传统的jenkins job难以灵活高效的并行(Job间、节点间、任务间、甚至任务内四个维度的并行)

2.传统的jenkins job太多,CI脚本太离散,维护成本太高,而且jenkins服务一旦挂了,很可能直接造成数据和资产的丢失。

3.传统的jenkins job对CI/CD流程的展示不直观。

三.pipeline的优势

1.持久性:Jenkins Master按计划和非计划重启后,pipeline的job仍能继续工作,不受影响。

2.可扩展性:通过groovy脚本编程,更容易扩展插件,并且设计pipeline=设计代码,更优雅。

3.可暂停性:基于groovy的input命令可实现job的暂停,等待用户输入或确认后才继续执行。

4.便于集中管理:jenkinsfile放版本库,公共类库通过不同的分支来支持多个版本,从而实现后台逻辑对用户透明,也大大减轻插件管理和版本管理的成本。

5.可追溯,可继承:流水线可作为代码资产,纳入源码库(git)统一规范化管理,做到可编辑、可追溯,可继承。

6.更直观:jenkins2.0提供的Blue Ocean视图可在一张图中查看整条流水线,各个阶段的执行结果,包括日志,耗时等。

7.提升资源利用率:jenkins2.0一条流水线相当于4-7个1.0的作业,可大大减轻jenkins服务器的调度压力,提升系统响应速度和资源利用率。

8.交互功能更强大:可与Nexus、Jira、Confluence、Docker、Kubernetes等工具实现丰富多样的交互。

上一篇下一篇

猜你喜欢

热点阅读