浅谈web应用上线和回滚中的自动化

本文介绍了如何构建一个自动化上线系统,实现从jenkins打包到web应用部署和回滚的全程自动化。用户只需输入项目信息,系统便能完成上线和回滚操作,并具备服务重启和远程日志查看功能。系统分为上线服务、jenkins和应用服务器三个部分,部署在不同服务器以确保稳定性。详细阐述了Java代码触发jenkins构建和查询打包状态的实现。
摘要由CSDN通过智能技术生成

前言

最近要成立一个新项目,需要架设在非公司内网的服务器上,因此不能使用公司层面的上线流程了。于是,自己着手开发完成了一个自动化上线系统。下面以该系统为例,聊聊web项目上线和回滚中的自动化实施。

系统功能简介

该系统是一个高度自动化的上线管理系统,从触发jenkins打包到服务部署的上线过程和执行回滚都是一键完成。在整个过程中,用户只需要输入项目名称,选择要上线和回滚的服务器和SVN信息即可。此外,该系统还提供了服务重启、远程日志实时查看等辅助功能,为上线过程提供便利。

系统部署和工作流程

该系统需要使用jenkins进行编译打包,在部署上包括以下三块:上线服务本身、jenkins机器和部署应用的应用服务器,为了避免服务器被动宕机或主动重启导致的相互影响,建议将上线服务、jenkins服务和应用服务分开,分别部署到不同的服务器上。

以下是该上线系统的部署图:

 

主要的工作流程如下:

上线和回滚的包管理

部分实现细节

Java代码触发jenkins参数化构建

Java代码查询打包状态

Jenkins提供了如下URL查询job的执行状态的详细情况,格式是一个xml。该xml中,result节点为success表示执行成功,如果构建中的job,则无result节点。

1. 上线前的备份工作: 按日期生成上线记录文件夹 文件结构目录和正式环境保持一致 备份你所涉及到的修改文件 2. 上线前的准备工作: 把你修改到的patch文件 到 PATCH_ROOT 目录 文件结构目录和正式环境保持一致 3. 上线工作: diff -r -b 比较 备份环境 和 发布环境 文件差异; 再次确定修改是否正确 PATCH_ROOT 下的文件夹和文件 发布到正式环境 即可; 完成上线后,要检查系统功能是否正确。 4. 回滚工作: BAK_ROOT 下的文件夹和文件 回滚到正式环境 即可 ; 完成回滚后 要检查系统功能是否正确回滚。 5. shell脚本功能: === 参数配置 ===: #指定正式环境的路径 正式环境的文件 WEB_ROOT=/var/www/html echo ${WEB_ROOT} #指定发布环境的路径 发布环境的文件 PAT_ROOT=/home/chenlong/blog echo ${PAT_ROOT} #指定发布管理日志的路径 记录发布过程,完成文件备份和文件patch PUB_ROOT=/home/chenlong/Publish === 使用方法 ===: #./apply.sh blog /home/chenlong/patch_sh/list20100520.txt 例如 -bash-3.2$ ./apply.sh blog /home/chenlong/patch_sh/list20100520.txt /var/www/html /home/chenlong/blog /home/chenlong/Publish blog /home/chenlong/patch_sh/list20100520.txt /home/chenlong/patch_sh === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/wp-includes/js/common.js === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/upload_editor.php /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/upload_editor.php /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/upload_editor.php === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/BM/Tpl/default/Admin/Img/index.php /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/BM/Tpl/default/Admin/Img/index.php /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/BM/Tpl/default/Admin/Img/index.php === cmd === :/home/chenlong/patch_sh/apply_cp.sh /home/chenlong/blog/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/patch /bin/cp /home/chenlong/blog/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/patch/home/chenlong/blog/wp-includes/js/common.js === cmd === :/home/chenlong/patch_sh/apply_cp.sh /home/
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拥春飞翔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值