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

cay · 发布于 2017年11月21日 · 最后由 kmkmkm 回复于 2017年11月29日 · 825 次阅读
本帖已被设为精华帖!

前言

上周日在上海召开了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 条回复
14414

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

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

4093

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

6853

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

4093
6853codeskyblue 回复

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

6853
4093diao2007 回复

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

1522fe
cay · #6 · 2017年11月22日 作者

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

1522fe
cay · #7 · 2017年11月22日 作者

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

605 chenhengjie123 将本帖设为了精华贴 11月22日 14:00
605

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

115

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

1522fe
cay · #11 · 2017年11月22日 作者
115oscarxie 回复

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

115
1522fecay 回复

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

104

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

1522fe
cay · #14 · 2017年11月23日 作者
104seveniruby 回复

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

1bb30f

哇  第一次觉得jenkins这么厉害

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册