近期发布的Jenkins X在开源界备受关注。在这篇文章里,我将探讨新产品里一些吸引人的功能,这些功能尚未在文档里被特别提及。如果你需要一个产品指南或者其他类型的说明文档,我强烈建议阅读一下动机功能文档。

它只是一个新的炒作工具吗?在容器里运行Jenkins有什么特别之处吗?

Kubernetes已然是管理容器,分布式应用以及虚拟基础设施的事实标准。主流的公有云厂商都有提供它的托管服务,而且可以按需在本地安装。如果用户今天构建了一个云应用并且希望它可以在任何地方运行,那么Kubernetes会是你的选择!

尽管Kubernetes的生态系统很庞大,它仍然非常年轻而且把更多精力放在处理“第一阶段”的挑战上,比如K8S的推广。首先解决最紧迫的问题是很自然的事情。可以预见的是2018年K8S将给用户带来更多的稳定性,集成度和用户体验方面的提升。今天,在这里我们考虑一下第二阶段的操作,如何在其之上构建一些东西,并且使开发人员的工作效率更高。

Jenkins X在这块填补了整体CI/CD管理的空白。

它只是Jenkins 2.0的一次品牌重塑吗?

Jenkins是一款在云成为标准之前就已经开发出来的工具,它绝对不是云原生工具,这意味着它不能够开箱即用(OOTB)的抗衡停机,无缝扩展等。

幸运的是,它是可扩展的。 Jenkins X通过Kubernetes插件演绎了一场魔术,它使得你不必再为slave配备虚拟机或者物理服务器; 每个作业使用一次性代理,运行在不同的容器中,这些容器可以随集群一起扩展。

通过Jenkins X,你不仅可以获得面向应用程序的K8S流水线,还可以获得可扩展的CI/CD解决方案。

你能为我们团队安装Jenkins吗?

当Kubernetes以一个项目平台的形式提供时,这是开发团队最常见的问题。对组织而言,迁移主要工具往往意味着大量的变更;从字面上看,它会影响所有主要的DevOps流程,并且需要花费大量的学习精力。

Jenkins X与K8S流水线,代理以及集成一起提供了一种更简单的迁移到Kubernetes和微服务的方式。

版本控制怎么做?

Jenkins X采用了GitOps概念。

保持版本控制中的所有配置意味着更高的安全性,灾难恢复以及将所有软件开发生命周期(SDLC)实践应用于运维任务的可能性。

开箱即用,将CI/CD基础架构配置保存到Git中,并且工具包始终遵循该原则。

即便是一些紧急情况,用户也无法僭越这一规则,设计就是这样的!

构建块

Jenkins2.0 - "老牌好用"的CI服务器

Helm - 包管理器

Draft - 开发环境构建工具

Monocular - helm仓库的UI

Chartmuseum - 带有云后端支持的helm仓库

Nexus - 资料库

Docker registry - 容器镜像中心

以上所有内容均受jx工具的控制,并且配置以一个个的“平台”,一组helm图的形式发布。

全新视角下的环境管理

这是我最感兴趣的功能之一!

环境作为一个实体交由工具控制,你可以管理生命周期,升级(promote)和配置! 你可以轻松地自定义,模板和重用它。

它使用的是GitOps模式,并且每个环境都有一个存储库。这是一个最佳实践,由jx驱动OOTB。

Helm用于配置管理。 环境被表示为一个helm包,每个应用程序都被添加为一个依赖项,同时可以升级(promote)。这种做法很有意义,因为环境配置是最不标准的地方。很多团队花了很多时间,直到我找到类似的东西。 而你完全是免费获取的!

瑞士军刀般的CLI

Jx CLI是该框架所有功能的入口点。

最重要的是:这是一个关键结构,在CD管道中被广泛使用。 它们可以很容易地直接播放和调试,任何步骤都可以通过CLI循环和重放。

About Author

colstuwjx

colstuwjx

互联网运维工程师,IT屌丝一枚,好技术。