使用 Zadig 快速接入 Jenkins 工作流

k8s技术圈

共 2105字,需浏览 5分钟

 ·

2021-10-14 00:17

Jenkins 是一个是基于 Java 开发的、非常经典的开源持续集成项目,被企业和团队广泛应用,但 Jenkins 本身并非云原生设计,随着微服务数量增长、业务架构上云 (Kubernetes) 趋势,工程师还是需要花额外时间对接基础设施、准备环境等等,平均一个工程师要切换若干个平台才能把一段代码写上线。通过现有 Jenkins 接入 Zadig 让团队不需要理解 CI/CD 概念,可以快速获得高并发的工作流和面向服务的集成环境,方便开发日常调试,不再为缺少测试环境,抢占测试环境而困扰。

Zadig(https://koderover.com/) 内置了面向 Kubernetes、Helm、云主机/物理机、大体量微服务等复杂业务场景的最佳实践,为工程师一键生成自动化工作流。Zadig 不改变现有习惯和流程,几乎兼容所有软件架构,无缝集成 GitHub/GitLab、Jenkins、多家云厂商等,运维成本极低。

本文主要介绍如何在 Zadig 上快速接入 Jenkins 工作流,实现端到端的微服务架构体系的持续交付。下面使用 Voting-app 作为演示项目,该项目包括 result、vote、worker、db 和 redis 这 5 个服务,实现了一个简单的投票系统。

Zadig 的安装非常简单,可以直接参考官方文档:https://docs.koderover.com/zadig/install/overview/

准备工作

  • 服务的 Jenkins Pipeline
  • 服务的 Kubernetes Yaml 文件(案例源码在 GitHub Zadig 项目中,可直接使用):https://github.com/koderover/zadig/tree/main/examples/voting-app/freestyle-k8s-specifications

步骤 0:集成 Jenkins

  • 登录 Jenkins,在用户配置中,生成一个 API Token,如下图所示。
  • 访问 Zadig,点击 系统设置 >  集成环境 > Jenkins 集成 ,添加 Jenkins 服务相关信息,如下图所示。

步骤 1:项目配置

  • 创建 voting-app,一个用 K8s Yaml 部署的项目,具体内容如下图所示。
  • 成功创建项目,进入项目配置向导,系统预设了 2 套集成环境和 3 条工作流。

步骤 2:创建服务

  • 创建服务,选择从 GitHub 仓库导入服务的 K8s Yaml。点击 仓库托管
  • 在弹框中选择代码仓库和服务Yaml所在文件目录,点击加载。
  • 系统会自动检测Yaml格式是否合法,导入成功后,右侧会自动解析出Yaml文件包含的系统变量、自定义变量和服务组件,如下图所示。
  • 服务添加Jenkins构建,voting-app项目中 vote 和 result 之前使用 Jenkins Pipeline 进行持续交付的,现在只需在将对应服务的 Jenkins Pipeline 关联到 Zadig 上,即可通过 Zadig 工作流触发 Jenkins Pipeline。

注意:Jenkins Build Parameters 中必须存在IMAGE变量,作为构建镜像的名称,Jenkins 成功构建镜像后,Zadig 工作流部署阶段会使用该镜像更新服务)

  • 点击添加构建
  • 选择 Jenkins 构建
  • 选择对应的 Jenkins job
  • 修改变量并保存构建

至此,我们已经成功添加了 result 服务的 Jenkins Pipeline,voting app 的 Jenkins Pipeline 配置类似,此处不再赘述。

添加成功后,点击下一步,完成服务配置。

步骤 3:加入运行环境

  • 进入「加入运行环境」,系统根据以上配置,自动创建 2 套环境和 3 条工作流,具体如下图所示:

步骤 4:工作流交付

  • 点击运行 dev 工作流,来完成 dev 环境的持续交付,如下图所示。
  • 这里,我们可以选择多个服务同时更新到环境中。
  • 执行过程中,可以看到,选择的两个服务可以并发执行。
  • 在 Zadig 工作流任务中查看 Jenkins 构建的日志。
  • 执行完成后,可在对应集成环境中查看服务的运行状态、查看实时日志,对服务进行调整服务数量、更换镜像、进入容器调试等操作。

步骤 5:添加测试,挂接工作流

  • 添加自动化测试用例
  • 填写测试用例必要的执行环境,测试用例所在的代码仓库等信息。
  • 保存后,可将测试用例关联到 dev 工作流。
  • 完成关联后,就可以使用 dev 工作流更新环境,并且对环境进行自动化测试,快速得到测试结果反馈。

通过以上步骤,我们已经完成了 Jenkins + Zadig 的项目配置,可以看到,Zadig 补足了 Jenkins 不具备的环境管理能力和测试管理能力,通过 Zadig 让软件交付变得更丝滑。

浏览 92
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报