JenkinsX介绍

一、创立背景

Jenkins一直以来都是DevOps工具链的重要组成部分,然而在持续的高增长和巨大成功的背后,也逐渐暴露出一些痛点,,比如Master的单点故障、版本升级带来的插件版本不匹配等问题。

另外,微服务和云原生应用解决方案日臻成熟,应用架构的细分和服务间的解耦,使得服务有了独立发布的能力。在云原生时代,微服务架构下的持续集成和持续交付需求,也渴望着更加灵活的解决方案。

目前Kubernetes俨然成为容器编排领域的领导者,利用Kubernetes完成CI/CD已经成为大势所趋,但Jenkins在与代码协同工作及其配置方面并不轻松。因此,很少有开发者认为:建立Jenkins管道是在Kubernetes上实现CD的最佳实践。

面对以上挑战,开源社区开始考虑通过改进Jenkins,来方便在云端自动化地实现Kubernetes的CI/CD,这便催生了Jenkins X。

二、Jenkins X是什么?

Jenkins X 是基于 Kubernetes 的CI&CD平台,使用GO语言开发,作为Jenkins的一个子项目,通过自动化、工具化和DevOps的最佳实践,以解决微服务架构下云原生应用的持续交付的问题,简化和加速整个云原生应用的开发、运行和部署过程,从而改善了研发过程中的复杂环节,让研发可以专注于价值创造,其他的事情通通交由Jenkins X来解决,开发人员开箱即用便可。

Jenkins X 设计之初采用原生的Jenkins作为流水线持续交付引擎,但在2020年4月选择Tekton作为默认执行引擎,2021年4月发布Jenkins X 3.x GA版本,支持将Jenkinsfile自动转换为Tekton Pipepline的step运行,有相关插件支持将Jenkinsfile转换为Tekton Pipepline。

三、JenkinsX和Jenkins 异同点

1、相对于Jenkins,Jenkins X能够更好地与Docker以及Kubernetes协同工作。Jenkins X结合各种开源工具,轻松地构建云原生应用。

2、Jenkins X直接定义各种过程,而Jenkins则需要去按需适应各种过程。Jenkins X能实现的功能,Jenkins通过各种插件与集成,也能完成。

3、Jenkins X采用CLI和API优先的方法,Jenkins采用的是UI优先的方法。通过UI的配置,各项功能都是由内部插件来驱动的。

4、Jenkins X预览环境能够让开发人员协同验证各种变更,并集成到那些基于拉取请求(Pull Request)所创建的运行系统的代码库中。

四、Jenkins X架构

Jenkins X 基于松耦合架构的 DevOps 模型,被设计用来支持在多个团队间,部署大量可重复、可管理的分布式微服务。在Jenkins X的设计中,整合了Helm,Draft,GitOps,以及Nexus,chartmuseum,monocular等诸多新系统和工具,从而实现自动构建编译环境,生成容器镜像,流水线,自动化部署,并通过简单的Review实现不同环境间的自动发布。

1完美封装的命令行工具

Jenkins X 带来了一个方便使用的命令行工具 jx :

· 安装 Jenkins X 到已经存在的 Kubernetes 集群

· 创建一个新的 kubernetes 集群 并安装Jenkins X

· 导入项目到Jenkins X 中以及他们的持续部署流水线设置

· 创建新的Spring Boot应用 并导入Jenkins X 中,以及他们的持续部署流水线设置

2自动化流水线

· 选择项目类型自动生成Jenkinsfile定义流水线

· 自动生成Dockerfile并打包容器镜像

· 自动创建Helm Chart并运行在Kubernetes集群

· 自动关联代码库和流水线,作为代码变更自动触发(基于Webhook实现)

· 自动版本号自动归档

3基于GitOps的部署升级

· 所有的环境,应用列表,版本,配置信息统一放在代码库中进行版本控制

· 通过Pull Request实现研发和运维的协同,完成应用部署升级(Promotion)

· 可自动部署和手动部署,在必要的时候增加手工Review

· 当然这些都封装在jx命令中实现

五、Jenkins X 的核心组件

1、Helm

Helm是用于管理Kubernetes资源对象的工具,类似APT,YUM和HOMEBREW,通过将Kubernetes的资源对象打包成Chart的形式,完成复杂应用的部署和版本控制,是目前业界流行的解决方案。

2、Draft

Draft是自动化应用构建并使之运行在Kubernetes上面的工具,具有语言识别能力,能够自动生成构建脚本,依赖,环境并打包成docker镜像并部署在Kubernetes集群上,加快代码开发节奏,而无需关心基础设施层面的技术实现。

3、GitOps

GitOps是weaveworks基于自己多年Kubernetes实践推出的应用部署解决方案,它将Git作为整个应用部署的单一可信数据源(SSOT),通过类似代码开发的Pull Request流程完成应用部署的Review和自动化实现,并且将部署配置信息纳入版本控制。

六、Jenkins X有哪些优势?

1、易于设置:Jenkins X为不同类型的项目提供构建包、自动化安装、以及用于配置和升级的外部工具。开发人员不但能够通过单行的jx命令实现快速启动,而且可以按需掌握Jenkins X的内部管道状态。

2、隔离性:无论是在共享的集群中,还是在相互独立的集群里,每个团队都能够运行自己的Jenkins X实例。其中,在共享的集群中,每个团队不但可以拥有自己的命名空间、能有效地共享资源,而且拥有与其他团队不同的管道、数据流和配置。而在单独的集群里,每个团队都能得到自己的一组资源,完全不会受到其他团队工作流的影响。

3、更快速度:为了加速开发的进程,Jenkins X提供了强大的命令集来提速各项任务,并提供了与云端或SCM的无缝集成。例如:我们可以使用“jx create cluster gke”这一简单的命令,在Google云上安装Jenkins X。

4、更快恢复:GitOps创建了单一的“真相”源,以保证每一次拉取请求都能够得到代码所对应的版本与注释。通过Jenkins X和用户环境中的配置即代码,开发人员能够获取正确的上下文、和可追踪的信息,进而更快地解决各种中断问题。

5、可预测版本:Jenkins X通过“jx create devpod”命令,来创建各种开发与测试环境,以便开发人员在Jenkins X集群中获取自己的沙箱。由于开发构建环境中的pod与生产环境中管道里的pod相同,因此,它能够确保代码以一种可预测的方式被执行。此外,在代码被提交到生产环境之前,Jenkins X还有利于预览环境的spin up。总的说来,所有这些特性都有助于开发人员交付出稳定的程序代码。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容