什么是 Jenkins X?
Jenkins X 简介
Jenkins X 为云上的开发人员自动化并加速了持续集成和持续交付,因此他们可以专注于构建出色的软件。
Jenkins X 采用流行的开源项目,可自动执行设置和管理,以提供集成的云原生解决方案,团队可以使用该解决方案比传统的非云解决方案更快、更可靠地开发更好的软件。
Jenkins X 集成的开源项目:
Kubernetes 目标平台 Jenkins X 安装在 Jenkins X 上,可以选择部署和运行使用 Jenkins X 构建的应用程序
Tekton Cloud Native 流水线编排
Kuberhealthy 定期对系统进行运行状况检查
Grafana [可选] 集中式日志和可观测性
Jenkins [可选] 传统流水线编排
Nexus [可选] 项目存储库
在高层次上,Jenkins X 可以分为几个方面:
基础设施
Jenkins X 旨在很好地使用云,Kubernetes 来托管核心服务,用于长期存储的存储桶,容器注册表和机密管理器等托管服务。所有这些都需要创建和管理。Jenkins X 遵循 Terraform 来设置和管理 Jenkins X 所需的云基础架构。
GitOps
整个 Jenkins X 体验都是基于 Git 的。您开发的安装、扩展和应用程序通过集群 Git 存储库进行管理,该存储库是 Kubernetes 集群的所需状态。Kubernetes Operator 在集群内运行,并轮询 Git 存储库中的更改,应用经过验证和批准的更新。集群 Git 存储库使用 Helmfile 来描述应用于安装软件的 helm 图表。Jenkins X 生成 Helmfile 中定义的 Kubernetes 资源,提交回 Git,以便始终可以通过 Git 查看确切的状态。
使用 GitOps 意味着在对集群进行任何更改时可以遵循熟悉的流程,使用审查、自动化、可追溯性和回滚来更好地控制使用更改。
Jenkins X 还使用 GitOps 作为升级方式,包括新发布的映像、helm 图表和包。
机密管理
如上所述使用 GitOps 确实会带来一个挑战,即在哪里存储集群的机密,因为将它们保存在 Git 中是不安全的。有一种方法可以加密机密并将其存储在 Git 中,但存在可用性问题,这使得该方法使用起来不容易。Jenkins X 更喜欢与真正的秘密提供商解决方案(如 Vault)或云托管解决方案(如 Google、Azure 或 Amazon Secrets 管理器)合作。
Jenkins X GitOps 与外部机密配合使用以提供集成体验,因此机密事实来源是机密管理器,并在需要时将值复制到群集中。
管道
默认情况下,Jenkins X 随 Tekton 一起提供一种干净的声明式云原生方式来描述管道。结合 Lighthouse,Jenkins X 可以通过 Git 和简单的语法轻松继承版本控制的共享管道步骤,从而提供灵活性和易于维护。
Jenkins X 还可以很好地与 Jenkins 配合使用,适用于具有传统工作负载的用户。默认情况下不会安装此功能,但使用 Jenkins X 可以轻松安装任何 helm chart,因此旨在与我们鼓舞人心的项目 Jenkins 配合使用。
聊天运营
随着需要自动化的微服务数量不断增加,Jenkins X 提供了通过对拉取请求的注释与管道进行交互的能力。Lighthouse 是从 Kubernetes 生态系统中大量使用的 Prow 演变而来的,它为触发测试、批准、保留和开发人员在日常活动中使用的其他常见命令提供了一致的开发人员工作流程。
开发人员体验
与上面提到的 ChatOps 一起,Jenkins X 旨在帮助开发人员以一致的方式使用他们的微服务,使用 CLI 或 GUI,开发人员可以利用 Accelerate 书中推荐的成熟方法。
无论是创建或导入自动设置 CI 和 CD 的新项目,还是打包应用程序以便它们可以在 Kubernetes 上部署和运行,或者只是作为库发布供下游应用程序使用。Jenkins X 帮助团队在构建、开发和改进方面保持一致性。
jx CLI 帮助开发人员使用他们的终端与 Jenkins X 进行交互。
对于 GUI,Jenkins X 有一个 Octant 插件。Octant 在集群外部运行,并使用用户与 Kubernetes 资源交互的身份验证和权限。
群集管道仪表板中还有一个只读,它通过拉取请求进行链接,以便用户可以查看生成日志。
来自: