devops [Jenkins User Confluence China] Jenkins 中国用户大会参会见闻

蒋刚毅 · 2017年11月21日 · 最后由 kuale 回复于 2017年11月29日 · 3690 次阅读
本帖已被设为精华帖!

前言

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

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 14 条回复 时间 点赞

Jenkins 的插件生态真是太成熟了,开源的好处.

Jenkins 提出 Pipeline As Code 的时间相比其他几款比较流行的 CI 平台还是晚了点,所以个人觉得可用性还待加强.我们公司现在用的 Gitlab-CI,相比来说 Pipeline 的脚本语法要简单得多.个人看法.😁

我们也做了对 Jenkins log 进行简单的统计分析,但是还只是构建成功率,每日构建次数,slave 的负载,每日构建频繁时间点,平均构建耗时,还未想到其他好的指标。。。。

本来自己写了一个调度系统来着,意外发现 Jenkins 出了个 pipeline,研究了下,毫不犹豫的废掉了之前自己写的调度系统。

codeskyblue 回复

之前试过 jenkins 的 pipeline,未真正升级云端 jenkins master,不知道升级后对现有的 job 有没有影响,是否需要重新配置

不二家 回复

配置升级估计是需要的,不放心可以先备份下

原来配置的 job 用 pipeline 的方式都能做 更灵活也更强大 可以注入很多自己的逻辑。

其实 Jenkins 推出 pipeline as code 的步伐和其他竞品比较是比较落后的,得益于开源社区的活跃和广大用户群,可以迅速风靡。

陈恒捷 将本帖设为了精华贴 11月22日 14:00

非常前沿的见闻,加精让更多人可以看到和了解到。

感谢分享,合影照片也可以贴上啊。

国文 回复

哈哈 算了。拍的不够帅 自己看着乐呵乐呵就行了

蒋刚毅 回复

加下我的微信吧,有空来上海可以约下😀

我跟他们谈了社区的合作, 不过有事走不开, 没去参加他们的大会. 可惜. 只能回头翻文章了

大会一大堆合作伙伴中,也看到 teserhome 的合作冠名 logo 了

哇  第一次觉得 jenkins 这么厉害

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册