Jenkins 2.0 新时代:从 CI 到 CD

  • 时间:
  • 浏览:1
  • 来源:万人红黑大战棋牌APP_万人红黑大战棋牌APP官网

第二层面,与应用架构的模块化演变有关,以微服务为代表,一次应用升级往往涉及到多个模块的协同发布,单个CI显然无法满足此类需求。这是Pipeline产生的第五个意味。

第一层面,与不断增长的发布简化度有关,其中还还有一个 多典型场景就是灰度发布。也太满须大公司才有的灰度发布,随着敏捷开发实践的广泛采用、产品迭代周期的不断缩短、数据增长理念的深入人心,太满的中小公司也刚现在现在开始这名方面的探索,这对发布的需求也从点状的CI升级到线状的CD。这是Pipeline产生的第还还有一个 多意味。

具体构成:

从内部人员来看,2.0最大的还还有一个 多卖点分别是Pipeline as Code,全新的开箱体验和1.x兼容性。

Stage: 还还有一个 多Pipeline都后能 划分为若干个Stage,每个Stage代表一组操作。注意,Stage是还还有一个 多逻辑分组的概念,都后能 跨多个Node。

第三层面,与日益失控的CI数量有关。一方面,类似于于Maven、pip、RubyGems就是的包管理工具使得有CI需求的应用呈爆发性增长,一些人面,受益于便捷的Git分支特性,即便对于同还还有一个 多应用,往往也需用配置多个CI。随着CI数量的不断增长,集中式的任务配置就会成为还还有一个 多瓶颈,这就需用把任务配置的职责下插进应用团队。这是Pipeline(as Code)产生的第还还有一个 多意味。

Durable: 发布过程中,不可能 Jenkins挂掉,正在运行中的Pipeline暂且会受影响,也就是说Pipeline的tcp连接池池独立于Jenkinstcp连接池池并全是。

内部人员

从内部人员来看,2.0主要含晒 了一些组件升级和JS模块化改造。

更好的容器化支持

Jenkinsfile: Pipeline的定义文件,由Stage,Node,Step组成,一般存放于代码库根目录下。

未来版本的Jenkins不可能 把Groovy彻底从内核中剥离,此次Groovy升级就是第一步

Pausable: 类似于于Bash的read命令,2.0允许暂停发布流程,等待人工确认后再继续,这名特性对于保证应用HA尤为重要。

不可能 要在更大范围探讨Pipelined的产生背景,我认为还还有一个 多层面的意味。

提供还还有一个 多简化的JS类库给Plugin开发者使用

自从去年9月底Jenkins的创始人Kohsuke Kawaguchi提出Jenkins 2.0(后称2.0)的愿景和草案完后 ,整个Jenkins社区为之欢欣鼓舞,不管是官方博客还是Google论坛,亲们全是热烈讨论和期盼2.0的到来。4月20日,历经Alpha(2/29),Beta(3/24),RC(4/7)五个版本的迭代,2.0终于正式发布。这也是Jenkins面世11年以来(算上前身Hudson)的首次大版本升级。这么,这次升级具体含晒 了哪此内容呢?

值得一提的是,2.0还还有一个 多不得劲要的特性:

====================================分割线================================

文章转载自 开源中国社区[http://www.oschina.net]

升级Servlet版本到3.1,获取Web Sockets支持

Pipeline as Code是2.0的精髓所在,是帮助Jenkins实现CI(Continuous Integration)到CD(Continuous Delivery)华丽转身的关键推手。所谓Pipeline,简单来说,就是一套运行于Jenkins上的工作流框架,将就是独立运行于单个不可能 多个节点的任务连接起来,实现单个任务难以完成的简化发布流程(类似于下图)。Pipeline的实现最好的依据是一套Groovy DSL(类似于Gradle),任何发布流程都都后能 表述为一段Groovy脚本,因此Jenkins支持从代码库直接读取脚本,从而实现了Pipeline as Code的理念。

Node: 还还有一个 多Node就是还还有一个 多Jenkins节点,不可能 是Master,不可能 是Agent,是执行Step的具体运行期环境。

基本概念:

作为2.0的核心插件,Pipeline并全是还还有一个 多新事物,它的前身是Workflow Plugin,而Workflow的诞生是受更早的Build Flow Plugin启发,由Nicolas De Loof于2012年4月发布第还还有一个 多版本。而纵观Jenkins的好多个竞争对手(Travis CI、phpci、circleci),Pipeline早已全是哪此新鲜概念。都后能 说这次Jenkins 2.0的发布是顺势而为,同时也是大势所趋。

Step: Step是最基本的操作单元,小到创建还还有一个 多目录,大到构建还还有一个 多Docker镜像,由各类Jenkins Plugin提供。

全新的开箱体验力图扭转亲们印象中Jenkins十年不变的呆滞界面风格,不光Jenkins应用并全是,官网排版、博客样式乃至域名都被重新设计。哪此变化除了极大的改善了用户体验,更重要的是给亲们传达还还有一个 多清晰的信号,Jenkins不再仅仅是还还有一个 多CI工具,就是含晒 着无限不可能 。

升级内嵌的Groovy版本到2.4.6

具体构成

2.0默认支持并全是类型的Pipeline,普通Pipeline,Multibranch Pipeline和Organization Folders,后并全是我我确实是批量创建一组普通Pipeline的快捷最好的依据,分别对应于多分支的应用和多应用的大型组织。注意,要获取Organization Folders的支持需用额外安装Plugin。

产生背景

除了上述内容,2.0还还还有一个 多比较有意思的改动,全局重命名Slave为Agent,看来在美国做IT政治正确性也是不得劲要啊。

随着容器化技术(以Docker为代表)的不断升温,Jenkins紧随潮流,不仅同步上传2.0的Docker镜像,同时也在Pipeline中提供了默认的Docker支持。

说完背景,再看一下Pipeline的具体构成和特性。

1.x兼容性给所有老版本用户吃了一颗大大的定心丸,注意,是详细兼容哦。

了解了2.0的概貌完后 ,回过来亲们再看一下Pipeline as Code(后称Pipeline)产生的背景和具体构成。

Jenkins 2.0 破茧重生

内部人员



Pipeline as Code