基于 Jenkins 构建的团队如何使用 Zadig 丝滑交付
Zadig on Github / Zadig on Gitee
Jenkins 是一个是基于 Java 开发的、非常经典的开源持续集成项目,被企业和团队广泛应用,但 Jenkins 本身并非云原生设计,随着微服务数量增长、业务架构上云 (Kubernetes) 趋势,工程师还是需要花额外时间对接基础设施、准备环境等等,平均一个工程师要切换若干个平台才能把一段代码写上线。通过现有 Jenkins 接入 Zadig 让团队不需要理解 CI/CD 概念,可以快速获得高并发的工作流和面向服务的集成环境,方便开发日常调试,不再为缺少测试环境,抢占测试环境而困扰。
本文主要介绍如何在 Zadig 上快速接入 Jenkins 工作流,实现端到端的微服务架构体系的持续交付。下面使用 Voting-app 作为演示项目,该项目包括 result、vote、worker、db 和 redis 这 5 个服务,实现了一个简单的投票系统。
准备工作
-
服务的 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 让软件交付变得更丝滑。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
社区新知 | MindSpore 社区健康监测服务上线!
概述 随着社区不断发展壮大,参与社区的开发者和上线的越来越多,社区服务的健康监测也愈发重要,为了保证社区用户体验,及时响应服务异常事件,MindSpore社区最近上线了基于UptimeRobot的社区基础设施健康监测服务,Uptimerobot是时下比较流行的服务监测解决方案提供商,他支持Http(s)、Port、Ping、CronJob等多种监测手段,同时也支持邮件,短信,电话,Slack等多种提醒方,甚至还支持自定义服务展示界面和自定义域名,由于服务轻量,配置简单易用,目前已有包括GoDaddy,NASA,IBM,RockyLinux等在内的超过150万用户在采购使用。 详请 通过点击社区官网底部的服务状态菜单项,就可以进入MindSpore社区的服务监测展示页面,这里我们可以看到服务监测的汇总。首先映入眼帘的就是服务的整体状态指示灯,当我们存在异常服务时,指示灯会变为黄色,而且会告知异常的具体服务以及持续时间。 接下来便是具体监控服务的状态和历史事件数据,每个服务的一个矩形代表一天,颜色从绿到红代表服务该天的平均健康度,我们也可以点击进去查看服务的历史总详情, 这里会包含更多细节...
- 下一篇
Python入门:ChainMap 有效管理多个上下文
摘要: Python的ChainMap从collections模块提供用于管理多个词典作为单个的有效工具。 本文分享自华为云社区《从零开始学python | ChainMap 有效管理多个上下文》,作者: Yuchuan 。 有时,当您使用多个不同的词典时,您需要将它们作为一个进行分组和管理。在其他情况下,您可以拥有多个代表不同范围或上下文的字典,并且需要将它们作为单个字典来处理,以便您可以按照给定的顺序或优先级访问底层数据。在这种情况下,你可以利用Python的的ChainMap从collections模块。 ChainMap将多个字典和映射组合在一个具有字典式行为的可更新视图中。此外,ChainMap还提供了允许您有效管理各种词典、定义关键查找优先级等的功能。 在本教程中,您将学习如何: 在 Python 程序中创建ChainMap实例 探索差异之间ChainMap和dict 用于ChainMap将多个字典合二为一 管理键查找优先使用ChainMap 为了充分利用本教程,您应该了解在 Python 中使用字典和列表的基础知识。 在旅程结束时,您将找到一些实际示例,这些示例将帮助您更...
相关文章
文章评论
共有0条评论来说两句吧...