本文主要介绍如何在 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 让研发过程变得更丝滑。