一、Jenkins 与持续交付
1.1、持续交付构建企业IT价值流
我相信大家都听说过2017DevOps状态报告,作为核心的结果指标,这一组数据也在各种场合下出场率很高,体现了DevOps对于企业业务的直接产出和贡献。
其实简单来说数据体现了两个方面的重要内容:第一点,DevOps可以帮助我们加快企业交付效率,第二点DevOps可以提升交付质量,最终做到快速高质量的持续交付。
当前DevOps是一个非常宽泛的概念集合和知识框架体系,其中持续交付是非常核心的工程实践,来打通软件交付的最后一公里,而流水线Pipelines就是承载持续交付工程实践集合的主要工具。
在今天Jenkins创始人KK的分享中,也提及了Jenkins的未来就是围绕Pipeline和Blueocean来构建可视化的端到端交付流水线,背后的思想就是在于CI向CD的延伸,落地持续交付,实践DevOps,从而帮助企业进行快速的价值交付和灵活应对飞速变化的市场环境。
1.2、流水线打破敏捷之墙
那么,为什么Pipeline可以承载如此重要的业务价值交付诉求,可以帮助大家打破传统的理念,Pipeline有哪些特别之处呢。
我们都知道,远在DevOps诞生之前,敏捷就已经活跃在整个软件行业中,很多时候团队都有改进的意愿,但这样的改进往往局限于各自领域内部,从全局视角来看,整个价值交付流是割裂的,不连续的。
而流水线的出现带来的最显著的改进就是,它可以实现整个持续交付的环节,打通每一个交付链条,从而实现完整的端到端价值交付,提升整个价值流动效率。所以之前有朋友总结流水线的特征,其中最重要的就是端到端。端到端可以让我们从需求一直到交付整个流程全部打通,避免以前各自为战的状态。
1.3、Jenkins驱动持续交付
这张图相信大家也见过很多次了,我们讲Jenkins驱动持续交付。Jenkins作为一个平台,并不是要替代所有原本的工作,它只是提供了一个平台化的能力,帮助大家把散落在各个环节的工具接入进来,实现端到端的交付,让所有人工作在一个界面,关注同一条价值流动。
Jenkins就是持续交付的枢纽,相当于是整个持续交付链条的核心,所有环节都跟Jenkins交付,这也是为什么现在Jenkins的CI/CD对于企业来说越来越重要。
1.4 、CI/CD平台对于企业至关重要
Jenkins这种核心平台的稳定性是我们现在格外关注的一点,假设有朝一日我们的CI/CD做得足够好,但是Jenkins平台挂掉了,后果不堪设想。
之前由于一些不可抗力因素,我们公司的Jenkins受限无法访问,导致的结果是超过两天的时间来修复,这段时间所有软件开发团队都无法实现价值交付,这对于一个成熟的企业来说,是难以估量的损失。
我相信随着各个企业逐渐发展扩大,Jenkins所代表的CI/CD平台起到的作用也会越发重要。所以我们应该花一些心思在平台的可用性上,这也是为什么越来越多的人开始关注Jenkins高可用的问题。
二、Jenkins轻量化思路
2.1、使用jenkins的常见问题
接下来就是我今天所要谈的重点,刚才解释了为什么Jenkins所代表的CI/CD如此之重要,但现实里Jenkins还是会出现这样那样的问题,让人很是担忧,这些问题包括很多方面,比如服务的性能、可用性、拓展性、安全。
我相信大家脑中对Jenkins的问题还有很多,我们不妨回过头来看一看,这些问题根源到底是什么?在哪里?
2.2、我们是如何使用jenkins的
我先帮大家理一理过往我们是如何使用Jenkins的,因为我自己用Jenkins也挺长时间了,算是重度用户群体。在最开始我们不知道Jenkins的时候,大家都在用