前言

上周日在上海召开了 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 持续交付流水线现状调查报告,几个数据印象比较深刻。

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 米以上,合影很有压力,完全看不出是个日裔。不过态度非常热情的,耐心和所有人合影,不少人也是冲着他参加的这场大会,谁说搞技术的人不追星呢 ?


↙↙↙阅读原文可查看相关链接,并与作者交流