【编者的话】本文主要介绍了最近发布的jenkins x的一些吸引人的功能
近期发布的 Jenkins X 在开源界备受关注。在这篇文章里,我将探讨新产品里一些吸引人的功能,这些功能尚未在文档里被特别提及。如果你需要一个产品指南或者其他类型的说明文档,我强烈建议阅读一下 动机 和 功能 文档。
Kubernetes已然是管理容器,分布式应用以及虚拟基础设施的 事实标准 。主流的公有云厂商都有提供它的托管服务,而且可以按需在本地安装。如果用户今天构建了一个云应用并且希望它可以在任何地方运行,那么Kubernetes会是你的选择!
尽管Kubernetes的生态系统很 庞大 ,它仍然非常年轻而且把更多精力放在处理“第一阶段”的挑战上,比如K8S的推广。首先解决最紧迫的问题是很自然的事情。可以 预见 的是2018年K8S将给用户带来更多的稳定性,集成度和用户体验方面的提升。今天,在这里我们考虑一下第二阶段的操作,如何在其之上构建一些东西,并且使开发人员的工作效率更高。
Jenkins X在这块填补了整体CI/CD管理的空白。
Jenkins是一款在云成为标准之前就已经开发出来的工具,它绝对不是云原生工具,这意味着它不能够开箱即用(OOTB)的抗衡停机,无缝扩展等。
幸运的是,它是可扩展的。 Jenkins X通过 Kubernetes插件 演绎了一场魔术,它使得你不必再为slave配备虚拟机或者物理服务器; 每个作业使用一次性代理,运行在不同的容器中,这些容器可以随集群一起扩展。
通过Jenkins X,你不仅可以获得面向应用程序的K8S流水线,还可以获得可扩展的CI/CD解决方案。
当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)。这种做法很有意义,因为环境配置是最不标准的地方。很多团队花了很多时间,直到我找到类似的东西。 而你完全是免费获取的!
JxCLI是该框架所有功能的入口点。
最重要的是:这是一个关键结构,在CD管道中被广泛使用。 它们可以很容易地直接播放和调试,任何步骤都可以通过CLI循环和重放。
原文链接: jenkins-x-the-good-bad-and-ugly (翻译:Colstuwjx)