前言

上周日在上海召开了Jenkins中国用户大会(Jenkins User Confluence China),这应该是Jenkins在中国第一次举办吧。Jenkins的创始人Kohsuke Kawaguchi(大家喜欢叫他KK)也到场演讲,作为Jenkins(包括其前身Hudson)10年多的老用户,怀着技术朝圣的心情,笔者专门从杭州赶过去参加,应该说是收获满满,不仅了解到Jenkins第一线的发展信息,结识了不少各个职业的Jenkins爱好者,而且还有幸和仰慕已久的KK拍了合照,不枉两城之间起早摸黑的一趟奔波,怀着激动的心情,简单和大家汇报下一些收获和见闻。

演讲概要

Kohsuke Kawaguchi开场宣讲
KK作为重磅嘉宾首先带来Jenkins最新动态的演讲,再次宣告了Jenkins从持续集成到持续交付的革命性转变,Jenkins经历多年的发展已经积累了1350个插件,形成了非常完善的生态系统,其中Pipeline Job数在推出的短短时间里,在社区经历了30倍的增长达到62.5W个,迅速成为jenkins job的主流。印象最深的是KK提到的“Pipeline+BlueOcean=Future”,旧有基于配置的Jenkins job已经成为古董,“Pipeline as Code”才是正确的打开之道。
所以还在用配置方式job的同学,抛弃臃肿的配置任务开始学习Pipeline吧,这是未来也是现在进行时。

中国IT企业DevOps持续交付流水线现状调查报告

Devops时代社区发布了中国IT企业DevOps持续交付流水线现状调查报告,几个数据印象比较深刻。

  • 调查者中65%以上用户实现了一周一次以上的部署

    • 在微服务的时代快速发布将成为常态。
  • 64%的受访者已经引入持续交付流水线,其中86%都在使用Jenkins。
    • 看来Jenkins基本都已经成为交付流水线的代名词了,这就是开源的力量。
  • 各阶段工具与流水线集成比例低于25%,流水线自动化出发比例只有31%。
    • 可见虽然不少公司都已经开始交付流水线了,但各个阶段的集成还是比较缺乏实践,很多可能就是用来作为一个部署工具吧。

Jenkins在微软的应用
来自微软的两位工程师介绍了Jenkins在微软Azure云平台的应用,内容比较简短,没什么特别的东西,可能就是来打打他们云平台的广告,想不到Jenkins在微软这样的大厂的也得到了广泛的应用。

在K8S中运行Jenkins服务
Pinteres的工程效能主管介绍了他们公司利用K8S搭建高可用Jenkins集群服务的实践,Jenkins Pipeline虽然功能非常强大,但当大规模应用时也存在自身固存的不少弱点,比如当脚本越来越复杂时性能的消耗会非常严重,后面有好几场的演讲都对这个问题提出了诟病,即使使用Master+Slave方式,随着集群规模的增大,网络维持的消耗都非常巨大,而使用K8S容器管理系统对Jenkins集群进行管理是个不错的方案,这个也正是目前我们正在摸索的方案。
Jenkins在Pinteres的Builds每天超过了4W次,高峰期会严重影响开发和部署效率,可见“频繁做让你痛苦的事情”虽然很美好,但对于Jenkins来说会是个严峻的挑战。K8S+Docker自带高可用以及用完即毁的特性会是个不错的解决方案。

Pipelines At Scale
这又是一个关于Pipeline大规模应用场景的话题,演讲者是Jenkins作者之一Sam Van Oort,主要介绍了Pipeline目前在大规模使用过程中的性能消耗问题,以及编写Pipeline脚本的最佳实践,比如尽量使用shared libraries抽象出公共代码;不要写太长的Pipeline脚本(超过1000行);脚本里不要过于依赖环境参数等。
同时也带来了一些Pipeline新功能的预告,其中比较特别的是带来一个“Speed Options”的参数,提供"Fastest、Fast、Slower、Slowest but safest"几个选项供使用者选择,利用内存机制提高运行速度,目前还在内部测试阶段。
另外,Sam还介绍了一些pipeline 脚本的编写技巧,怎么降低对内存的损耗,以及大量的性能图表数据进行对比,这里不得不佩服老外的严谨态度。
其他
后面还有几场,重点还是围绕jenkins的高可用和性能优化展开,比如插件的选择和瘦身等等,可见随着Jenkins的大规模应用,如何保证系统的高可用性确实是大家现在比较关心的话题。
诺基亚的一位同学介绍了他们利用AI技术对Jenkins Log进行数据分析量化项目指标的经验,据说存储了10年的Jenkins Log数据给各部门KPI考核用,汗。
华为的同学介绍了他们利用Jenkins进行扩展开发自己的devops平台的技术,这个也是我们正在做的事情,还有几个分会场没有时间去听就不提了。

小结

整个大会听下来,大家对Jenkins Pipeline技术都抱着非常高的期望,它和BlueOcean视图插件(虽然我觉得这东西问题还不少)一样会成为Jenkins的未来,同时大规模应用后Jenkins的高可用改进也成为大会的焦点。
最后再提下,Kohsuke Kawaguchi长的太高了,目测至少2米以上,合影很有压力,完全看不出是个日裔。不过态度非常热情的,耐心和所有人合影,不少人也是冲着他参加的这场大会,谁说搞技术的人不追星呢 ?

05-11 07:38