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

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


系统设置 -> 系统集成 -> Jenkins 集成 ,添加 Jenkins 服务相关信息,如下图所示。
进入 Zadig 系统,点击新建项目 -> 填写项目名称 voting -> 选择 K8s YAML 项目 -> 点击立即创建。


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


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

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

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



使用工作流对环境中的服务进行部署更新,以 dev 环境为例操作步骤如下。
voting-workflow-dev 工作流 -> 选择需要更新的服务(比如 vote 和 result),点击「启动任务」运行工作流。

dev 环境,可看到 vote 服务和 result 服务被部署更新成功,镜像信息均被更新。
在 Zadig 平台中配置自动化测试,并和工作流关联起来。当执行工作流对环境进行更新后,会自动运行自动化测试为日常变更做质量保障。操作步骤如下:

立即新建保存测试
已关联的工作流右侧的 + 号 -> 选择工作流 -> 点击确定,将测试关联到工作流中




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