像 BAT 这样的大公司有一套自动化装配线。由于公司的安全红线要求,我不能说的太多,但可以提供一些思路供题主参考。
工具
要想做好工作,首先要磨砺你的工具。先说一下需要哪些工具吧。
1个git,用来保存最新上线的代码
2个maven,用来打包项目
3、用于触发任务
4 sh 脚本或脚本,执行任务的脚本
过程
接下来是实际过程。
首先,开发者将要启动的代码上传到指定的代码库。
然后开发者触发任务。
这个任务是自动化部署的核心,包括以下步骤
1 开始打包代码
2 将包放在服务器上的指定文件夹中
插入一句话,为了安全起见,建议热部署。什么是热部署?
热部署需要Nginx+多台机器的配合。
假设当前只有一个连接Nginx,可以在另一个上部署要更新的代码,然后启动新的,确认服务启动成功。各项能力启动后,进入修改Nginx的conf文件,将原来的请求切换到新的,从而实现热部署。如果不使用这种方式python 自动部署war包,而是直接在旧的上部署新的war包,重启过程会导致服务器停顿几秒,这是用户无法接受的。说到这里,我们来介绍两个用于热部署的Nginx命令。修改Nginx的conf文件后,在Nginx根目录下执行sbin/nginx -t检查当前conf文件配置是否正确,如果是””,可以执行sbin/nginx -s实现新建切换到新机器,即使新的conf文件生效。
好了,热部署就说到这里了,让我们回过头来。
3 使用cp命令将旧服务器根目录下的war包放到一个特殊的备份文件夹中
4 同样使用 cp 命令将新的 war 包放入即将到来的 war 包中。启动根目录下的文件夹,然后解压
5 执行 sh bin/
start.sh
开始新的
6 检查是否启动成功,包括进程是否存在,tail -f
.out
日志一直在播放,api可以调整
7 修改 Nginx 配置文件
8 检查Nginx配置文件
9 更新 Nginx 配置python 自动部署war包,即 sbin/nginx -s
10继续观察新的操作是否正常,如果不正常立即切换回原来的,本次自动更新失败。
11如果正常,就停掉旧的。
以上,自动部署完成。
我是来自BAT的Java开发工程师苏苏思良。我每天分享科技新闻。欢迎关注我,与我共同进步。
暂无评论内容