26

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

 5 years ago
source link: https://www.infoq.cn/articles/eBOpC6r9*qeJrYX5dsOi?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

摘要: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 一起成长的过程中,你是否遇到过什么痛点?你认为正在进行的计划会消除这些痛点吗?如果有什么意见建议,欢迎在下面评论。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK