在现代软件开发实践中,DevOps 理念已被广泛采纳,团队通过自动化、持续集成(CI)和持续部署(CD)等方法来提升软件交付的效率和质量。然而,由于不同团队和企业的技术环境和技术栈多样化,DevOps 解决方案必须能够适应这种异构环境,满足各种特定需求。
Zadig 作为一款全面的 DevOps 平台,提供了强大的功能和工具支持,能够适配多种操作系统和部署环境。这使得团队能够轻松实现持续交付、自动化测试和灰度发布等 DevOps 实践,显著提高软件开发和交付的效率与质量。正如我们在「Zadig 支持 Android、iOS App 自动化发布」一文中所见,Zadig 不仅支持 Kubernetes 构建基础设施,还能在 Linux、MacOS 主机上编译和发布应用。接下来,我们将进一步探讨如何在 Windows 环境下利用 Zadig 平台实践 Java + Tomcat 项目的构建与部署。
下面我们将以项目 java-tomcat-demo 为例,介绍如何使用 Zadig 在 Windows 上构建发布应用,项目源码参考:java-tomcat-demo (opens new window)。
# 管理员配置
# 步骤 1:集成 Windows 主机
需要先在 Zadig 上集成主机资源,Zadig 工作流任务才可以使用主机作为构建节点,具体集成过程如下:
在 Zadig 上 「资源配置」-> 「主机管理」添加主机,填写以下必要信息。
- 连接方式:选择 Agent 接入
- 主机名称:用于识别主机的名称
- 标签:工作流可以通过标签来限制任务执行的主机
- 在 Windows 主机上安装 Zadig Agent。根据主机的实际系统和架构选择对应的命令在主机上执行。
# 步骤 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
创建环境 dev 和 prod,分别用于测试和生产发布。
系统自动生成两条工作流 。
- 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 不仅仅是一个发布工具,更是一个打通开发与部署环节的关键利器,为团队的软件开发和交付流程注入了新的活力和效率。