五个举措:现代化 Jenkins 和终结“Jenkinsteins”

摘要:Jenkins 和 CloudBees 首席技术官川口耕介(Kohsuke Kawaguchi)上月在尼斯的 Jenkins World 上发表了演讲,谈到了现代化这款流行的 CI/CD 工具的五个正在进行的项目。川口耕介想要解决随着老化出现的痛点,他倡议围绕 Jenkins Evergreen、Jenkins Pipeline (Blue Ocean)、Jenkins Configuration-as-Code、Jenkins X 和云原生 Jenkins 这五个项目着手解决。他们每一个都处于不同的发展阶段,而且彼此间保持着独立。

Jenkins 和 CloudBees 首席技术官川口耕介(Kohsuke Kawaguchi)上月在尼斯的 Jenkins World 上发表了演讲,谈到了现代化这款流行的 CI/CD 工具的五个正在进行的项目。川口耕介想要解决随着老化出现的痛点,今年早些时候在一篇文章中讨论到,特别要注意所谓的“Jenkinsteins”出现了:大量的项目和团队使用了大量臃肿集中的安装工具,导致性能低下,以及依赖关系和管理的噩梦。他倡议围绕 Jenkins Evergreen、Jenkins Pipeline (Blue Ocean)、Jenkins Configuration-as-Code、Jenkins X 和云原生 Jenkins 这五个项目着手解决。他们每一个都处于不同的发展阶段,而且彼此间保持着独立。

Jenkins Evergreen 的目标是更快的开箱即用的体验,它提供预置模版,极大地降低了管理和配置的工作量。此外,  Blue Ocean (目前已得到广泛使用的一个插件,专注于使流水线更清晰可视化)将成为默认 UI(具体的时间尚未公布),那么每次需要修改时就不必再切换到经典 UI 了。川口耕介称,Jenkins Evergreen 还将提供自我升级功能,对用户来说基本上是透明的。Evergreen 目前处于测试阶段,还不推荐用于生产。

川口耕介告诉 InfoQ,Evergreen 最终将能够持续交付 Jenkins 本身。它将支持运行 post bootstrap 自助测试和诊断,将信息发送回相应的团队,以监控错误和趋势。还将内建自动回滚,以防万一升级失败。当被问及用户是否能够添加自己的 post bootstrap 诊断时,川口耕介说,做这个项目的团队应该考虑这种可能性。

Jenkins Configuration as Code (Jenkins 配置即代码,也称为 JCasC)旨在支持以 YAML 格式对 Jenkins 的设置(具有合理的缺省值)进行编码,以便能够完全自动化对交付系统的安装和更新。然后,团队可以像处理任何其他代码提交和拉取请求一样处理对 Jenkins 配置的更改,并在出现问题时回滚。最后,删除对 Jenkins UI 的依赖可以加速其设置和管理,减少出错的可能性,提高可重复性。 JCasC 插件的 1.0 版本 于 9 月初发布,已经可以投入生产使用。

Jenkins X  是一个完全独立于 Jenkins 的解决方案(尽管它们在幕后共享相同的流水线引擎),Jenkins 在今年早些时候引入了这个解决方案。它为基于 GitOps 方式的云本地(基于 Docker 和 Kubernetes)应用程序交付提供了很有 独道见解的视图 。它的优点之一是通过使用常见的第三方工具(Helm 图表、 Skaffold, 和 Prow 的 1.3 版本)以及快速入门功能,使新用户可以快速上手特定栈的通用流水线自动化。 jx 命令行工具进一步支持管理任务的自动化和流水线及 Kubernetes 集群和环境的设置。Jenkins X 已经可以用于生产了。

当被问及创建像 Jenkins X 这样的独立解决方案是否会让人感到困惑或者增加采用的阻力时,川口耕介告诉 InfoQ,Jenkins X 与 Jenkins“有着相同的 DNA”,只是侧重点不同而已。Jenkins X 针对特定的用例和工作流,减少了 UI 界面。他还认为,随着人们的接受程度不断提高,Jenkins X 将在某个时候与经典 Jenkins 捆绑在一起。川口更喜欢把生态系统看作一个整体:

Jenkins 正在变得越来越大,不仅仅是一个 web 应用程序和一堆插件。它是一个自动化的平台。真正让 Jenkins 成为 Jenkins 的是这种生态系统的力量,许多人在此基础上构建和试验,并且走的是不同的方向。如果你关注 Jenkins X, 会非常明显地看到其 Jenkins DNA。

最后,将 Jenkins 现代化,使其在 Kubernetes 中作为一个完整的云本地应用程序运行,从而受益于更高的可用性和性能,这是 云本地特殊兴趣组( Cloud Native special interest group) 的目标。为了摆脱传统的客户机 / 服务器设计,这个团队将对 Jenkins 架构进行增量改进。例如,支持 Jenkins 数据的可插拔外部存储(当前保存在服务器的文件系统中),并向无状态 Jenkins 服务发展。目前还没有完成这一倡议或其任何部分的时间表。

我们非常渴望从 InfoQ 读者这里得到反馈。在与 Jenkins 一起成长的过程中,你是否遇到过什么痛点?你认为正在进行的计划会消除这些痛点吗?如果有什么意见建议,欢迎在下面评论。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章