本文主要介绍如何在 Zadig 上快速接入 Jenkins 工作流,实现端到端的微服务架构体系的持续交付。

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

jenkins

下面使用 voting 作为演示项目,该项目包括 Result、Vote、Worker、DB 和 Redis 这 5 个服务,实现了一个简单的投票系统。

  1. 服务的 Jenkins Pipeline
  2. 服务的 Kubernetes YAML 文件:https://github.com/koderover/zadig/tree/main/examples/voting-app/freestyle-k8s-specifications

jenkins-token

jenkins-token

add-jenkins-server

进入 Zadig 系统,点击新建项目 -> 填写项目名称 voting -> 选择 K8s YAML 项目 -> 点击立即创建。

onboarding

onboarding

新建服务

Zadig 提供三种方式管理服务配置:

这里,我们使用从代码库同步的方式。点击从代码库同步按钮 -> 选择仓库信息 -> 选择文件目录 examples->voting-app->freestyle-k8s-specifications -> 点击同步按钮即可在 Zadig 中一次性创建本案例所需的 5 个服务。

onboarding

onboarding

配置构建

接下来为服务配置构建,以便于后续对服务进行持续交付,以 vote 服务为例:选择 vote 服务 -> 点击添加构建

onboarding

参考如何配置 Jenkins 构建完成相关配置,本例中 vote 服务构建配置如下。

onboarding

重复以上构建配置过程,完成 5 个服务的构建配置。

onboarding

onboarding

onboarding

使用工作流对环境中的服务进行部署更新,以 dev 环境为例操作步骤如下。

workflow

workflow

workflow

在 Zadig 平台中配置自动化测试,并和工作流关联起来。当执行工作流对环境进行更新后,会自动运行自动化测试为日常变更做质量保障。操作步骤如下:

test

test

test

test

IM

IM

IM

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