在当今的软件开发领域,随着 DevOps 理念的不断普及,软件开发团队越来越倾向于采用自动化、持续集成和持续部署等 DevOps 实践来提高软件交付效率。然而,在现实应用中,由于不同团队或企业所处的环境不尽相同,存在着多样化的技术栈和操作系统的使用。因此,DevOps 系统需要能够适配各种异构环境,以满足不同团队的需求。
作为一款全能的 DevOps 平台,Zadig 提供了丰富的功能和工具,可适配不同操作系统和部署方式,助力团队实现持续交付、自动化测试和灰度发布等 DevOps 实践,从而极大地提升了软件交付的效率和质量。在「Zadig 支持 Android、iOS App 自动化发布了」一文中,我们了解到 Zadig 除了支持使用 Kubernetes 作为构建基础设施外,还支持在主机(Linux、MacOS)上编译和发布应用。接下来,我们将进一步探讨如何在 Windows 环境下利用 Zadig 平台实践 Java + Tomcat 项目的构建与部署。
下面我们将以项目 java-tomcat-demo 为例,介绍如何使用 Zadig 在 windows 上构建发布应用,项目源码参考:java-tomcat-demo 。
管理员配置
步骤 1:集成 Windows 主机
需要先在 Zadig 上集成主机资源,Zadig 工作流任务才可以使用主机作为构建节点,具体集成过程如下:
1. 在 Zadig 上 「资源配置」-> 「主机管理」添加主机,填写以下必要信息。
- 连接方式:选择 Agent 接入
- 主机名称:用于识别主机的名称
- 标签:工作流可以通过标签来限制任务执行的主机
2. 在 Windows 主机上安装 Zadig Agent。根据主机的实际系统和架构选择对应的命令在主机上执行。
步骤 2:项目初始化配置
1. 创建主机项目,在项目向导中配置服务的构建和部署脚本。
2. 配置 java-tomcat 服务的构建和部署脚本。
构建配置如下:
-
构建环境:选择「主机」,并选择预设的 「windows」 标签
-
代码信息:选择服务代码仓库信息
-
通用构建脚本:选择 「Power Shell 脚本」,构建脚本供参考:
$ErrorActionPreference = "Stop"
cd zadig/examples/java-tomcat-demo mvn package tar cvf $env:PKG_FILE target
-
二进制包存储:上传二进制包到对象存储,用于后续的部署任务
部署配置如下:
-
部署环境:选择「主机」,并选择预设的 「windows」 标签
-
部署脚本:选择「批处理脚本」,脚本内容供参考:
@echo off
mv %ARTIFACT% . tar xvf %PKG_FILE% %TOMCAT_HOME%\bin\shutdown.bat cp -r target %TOMCAT_HOME%/webapps %TOMCAT_HOME%\bin\startup.bat
3. 创建环境 dev 和 prod,分别用于测试和生产发布。
4. 系统自动生成两条工作流 。
- java-tomcat-demo-workflow-dev :用于研发联调自测
- java-tomcat-workflow-ops:用于生产发布,进入项目后可对工作流进行微调,加上必要的审批过程,使得生产发布更安全可靠。
工程师使用
场景一:开发工程师测试联调
开发工程师代码实现完毕后需要测试联调时,执行 java-tomcat-demo-workflow-dev 工作流,选择对应的代码信息,自动执行构建部署过程。
场景二:发布工程师生产发布
版本验证通过后,发布工程师执行 java-tomcat-workflow-ops 工作流,选择对应版本进行自动化发布。鉴于生产发布的严肃性,需要相关责任人对发布内容进行审批,审批人员可以通过 Zadig 工作流任务信息详细了解本次任务的具体改动,来保障发布内容的正确性和可靠性。
场景三:发布工程师生产回滚操作
如果生产发布的版本出现异常,可以通过访问 java-tomcat-workflow-ops 工作流历史列表页面,选择先前的发布任务,然后点击“克隆”任务来快速进行版本回滚。
小结
Zadig 为发布流程提供更多选择,不仅支持容器构建发布、还全面支持主机构建发布,涵盖多种操作系统,包括 Linux、MacOS、Windows 等,同时支持 AMD 和 ARM 架构,适配各种异构环境,以满足不同团队的需求。Zadig 不仅仅是一个发布工具,更是一个打通开发与部署环节的关键利器,为团队的软件开发和交付流程注入了新的活力和效率。
Zadig,让工程师更加专注创造。
推荐阅读