加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

【2018可信云大会】京东石雪峰:JenkinsX基于Kubernetes的新一代CI/CD平台

发布时间:2018-08-23 07:31:10 所属栏目:云计算 来源:中国IDC圈
导读:石雪峰:今天很荣幸,给大家分享一下关于Jenkins X开源项目的一些最新进展,可能有的同学之前也听过我讲过这个项目,作为社区来说,对Jenkins X项目也倾注了很大的精力,不断有一些新的想法或者是工具整合进来,发布半年来始终保持着一个旺盛的生命力,所
副标题[/!--empirenews.page--]

石雪峰:今天很荣幸,给大家分享一下关于Jenkins X开源项目的一些最新进展,可能有的同学之前也听过我讲过这个项目,作为社区来说,对Jenkins X项目也倾注了很大的精力,不断有一些新的想法或者是工具整合进来,发布半年来始终保持着一个旺盛的生命力,所以借此机会还是给大家介绍一下代表着下一代云原生应用流水线的解决方案。

石雪峰-1

首先自我介绍一下,我是石雪峰,是Jenkins的认证工程师,也在社区参与一些活动和项目,期望更好的推进Jenkins在国内的发展,今天给大家带来的就是社区的重点项目之一Jenkins X。

可信云大会举办这些年来,云计算迅猛发展,大家从昨天的栗主任的云计算发展报告中也能看到,整个云计算行业的发展趋势依然向好,其中孕育了巨大的变革。对于我们来说,已经谈了很多理念、方法,但最终还是想通过一些具体的工具或者说技术方法帮助大家实现真正落地。面对目前这样一个云原生应用时代,DevOps、持续交付、容器和微服务是典型的代表。这一波技术变革迅猛无比又异常深刻,更重要的是不仅仅局限于单一领域,而是涉及基础设施,软件架构,部署发布方式,研发过程,组织文化等,彼此独立又互相推动,裹挟着行业向前发展。同时新技术层出不穷。前两天lstio正式发布了1.0版本,同时容器监控领域的代表项目Prometheus也正式从CNCF毕业。技术人员需要不断学习,同业务发展速度赛跑,这就是我们在云原生应用时代所面临的真正的挑战。

云原生应用架构基本上符合这种模式,包括微服务,API,消息队列,缓存和分布式数据库,面对这种全新的应用架构,我们的选择非常多,包括各种各样的开源商业工具,公有云、私有云和混合云,伴随冗余建设的基础设施,高度人员能力依赖的解决方案,大量的评估和研究成本在里面,以及组织内部的高度差异化,而这并非核心价值所在,所以平台就有了存在的意义。

在这时候Kubernetes应运而生,可以说对容器云平台而言, 它是一个改变世界的工具。的确随着Kubernetes项目的不断成熟,它为我们解决了很多云原生应用时代的难题,比如服务发现、滚动升级、弹性集群、资源管理、调度编排等等。同时Kubernetes也构建了自己的完整的生态系统从而实现了云原生应用时代的弯道超车。在这个生态系统中包括了云基础设置服务、日志监控、管理,安全等等,但唯独缺少的就是持续交付能力平台,所以我们想解决的问题是什么呢,答案就在Jenkins X。

Jenkins X是什么?简单用一句话描述,我们认为Jenkins X是Kubernetes原生的CI/CD解决方案,用于云原生应用的快速开发和部署。我们想解决的问题是为Kubernetes生态系统建立原生的CI/CD平台,复用Jenkins自身能力,简化整个云原生应用的开发,部署,运行过程。所以Jenkins X是基于Kubernetes,这是它的核心价值,另外它更面向云原生应用更适合复杂的应用架构下的系统开发。

回到设计理念层面,我相信凡是接触过DevOps,大家有听说过DevOps年度状态报告。这个报告基于一种科学的研究方法,结合大量的调查数据统计分析得出,有相当的代表性。今年推出的《加速》这本书同样是当今热点,从五大领域,二十四项能力指标帮助大家更好的落地DevOps。对Jenkins X来说,它的设计理念也借用了其中的大量能力指标,其中主要覆盖在持续交付和应用架构领域里面。所以Jenkins X更多的是想思考我们在云原生应用时代,研发工程师和CI/CD的交互方式。

那么这种交互方式是怎样的?我们看一下是不是Jenkins加Kubernetes就等于Jenkins X。答案显然是否定的,并不是说在Jenkins上安装了Kubernetes插件,动态生成资源节点就是Jenkins X。Jenkins X要做的远远不止于此,但是从另外一个角度来看,Jenkins X依然用原生Jenkins作为流水线持续交付引擎,其特性被良好封装但没有完全隐藏。一方面利用了Jenkins庞大的插件扩展能力,另外一方面也允许熟悉Jenkins的人继续它所熟悉的交互方式。这和很多公司的作为似乎有些背道而驰,其实很多公司都在使用Jenkins,但表面上却完全看不出来,因为已经对Jenkins做了完全的封装,用户只能通过前段界面和Jenkins进行交互,由此屏蔽了Jenkins本身的复杂度。这样做本来无可厚非,但是从社区的角度而言,更倾向于选择另外一条路,也就是提供一个良好封装的接口命令行工具,通过工具来完成系统交互。

所以对于Jenkins X的项目来说,如果你希望用传统的方式访问Jenkins,这是完全开放的 。但是通过封装的命令行工具,将背后多套系统打通,实现系统间的自动化代用,从而给用户带来真正的价值。作为Jenkins的一个子项目,Jenkins X也希望通过尝试帮助Jenkins自身向云原生应用转变。社区现在成立了很多SIG,就是有点类似于Kubernetes社区的兴趣小组。每一个SIG有自己的主题,大家有兴趣也可以加入。其中第一个公开的SIG就是云原生应用小组,要实现这个工作并不简单,很多年前就已经有人提出过这个想法,但对于Jenkins基于文件存储的方式来说,想要去改变要分多个阶段来逐步实现。

第一阶段要实现外部存储的支持,第二块是日志系统,第三块是配置,也就是基于YAML文件的配置方式,社区已经有很多成功的项目,大家感兴趣可以自行查阅。

回到刚才我们讲的DevOps要打破研发交付过程中的交互墙,但是交互墙不只是在组织层面的部门强,很多时候也是技术墙。比如研发人员完成代码编写要部署上线,那么不仅仅是代码,还要编写Dockerfile、Jenkinsfile、Chartfile,同时还要管理代码仓库、Webhook和构建环境工具等。越过所有的障碍才能把一行代码部署到线上的Kubernetes环境上去。这就要求一个研发工程师要拥有非常全面的知识和能力,可是研发工程师的诉求非常简单,那就是我作为一个工程师可以非常简单创建一个应用,不需要关心这中间的事情。而Jenkins X

可以解决这中间的隔阂,这也是Jenkins X给出的云原生应用时代研发工程师和CI/CD的理想关系。

Jenkins X可以帮你自动生成所需要的流水线文件,相关的容器配置,构建环境等,大大简化了代码部署上线的难度。对于Jenkins X来说,核心关注的是三个方面。第一方面是端到端,第二方面是把一些优秀实践,比如刚才《加速》一本书中的能力项内嵌到系统平台里面来。第三方面是覆盖完整的环境。这里面可以看到,包括代码仓库、流水线,应用包管理,构建都是通过Jenkins X完成的,你只需要创建一个应用就够了。当然为了实现自动化,依然要有一些专业的人员来做好预定义工作,对研发人员而言所做的工作就非常简单了。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读