代码部署的几种方式

新的公司,同事总是说部署部署的,我是真不理解为什么要部署这么多次,所以这里还是讲一下部署是什么吧。
其实呢,部署就是把代码上传到服务器,就是个文件传输功能。把文件上传到服务器以后,安装(nignx tomocat等服务器软件)中间件软件监听端口,取放文件数据就是了。服务器里的东西上一次就是部署一次。当然方式有多种,有的公司会自己封装一个部署软件来用。一般的就是用shh sever或者git的pull来传输文件,为什么要用shh呢,是因为互联网上不允许使用明文传输,必须要用加密。git也是shh的加密。部署方式不同也就是加密传输文件的软件不同。以下三个是比较好的博客讲的,可以了解一下。
尤其是有一些bug可以看看部署方式一里提到的。比如软件版本,注意杀进程后重启,看能否重启,在进行登录。

部署方式一
1.下载一个pc程序:SSH Secure Shell

2.打开Secure Shell Client

3.file→Quick Connection,输入服务器ip(Host Name),和User Name,项目名称

4.上传代码:在按钮导航栏,点击:New File Transfer Window

上传代码时,要注意代码的路径要一致。

jsp和java的Class放在不同的文件夹下,要保证路径一致

将所有要上传或更新的文件,上传到对应的服务器文件夹里

5.调试验证:

输入命令:ps-ef|grep java,查看进程

先备份现有项目(如果有):tar -zcf mtms.tar.gz (要备份的目录)

找到自己部署的项目所对应的进程代码:5位

然后,杀掉:kill -9 ****(进程代码)

然后,重启,重启的时候,要进入Tomcat,查找一下,一般都放在Tomcat目录下的bin目录下:叫做startup.sh

然后,再输入命令ps-ef|grep java,查看是否有异常(tail-n 500 catalina.out)。

有异常就处理异常。

没有异常,就登录页面,检查功能是否可用。

如果能显示页面,功能完善,一切就ok了。

版权声明:本文为CSDN博主「dogsongyijia」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dogsongyijia/article/details/79789701

的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dogsongyijia/article/details/79789701

部署方式2
1、提交代码

当在本地开发&测试完毕后,将代码合并到 master 分支,并 Push 到远程的 Git 仓库。

通常在开发中使用 Git 作为代码版本管理工具,通过创建一个 dev 分支来进行开发工作,在发布的时候再将代码合并到 master 分支,这样可以保证 master 分支永远都是稳定的版本。

git push origin master

2、拉取并部署代码到预发机

通过以下命令从 Git 仓库获取到最新的代码

git pull

因为开发运行环境和线上运行环境的数据库、缓存等配置的差异,拉取的代码一般无法直接在预发机上直接运行。

通常的做法是,在预发机上执行一个 shell 脚本,将线上的配置覆盖开发环境的配置。

cp code/path/to/config-dist code/path/to/config

预发机的主要作用是留出缓冲的空间,检验代码是否在线上环境可以正常工作。对于一个 Web 项目,我们可以设置域名的 host 配置,直接访问预发机。

3、同步代码到线上

一般情况下,一个 Web 项目都会有多个业务机,通过负载均衡将请求流量平均分配的 N 台机器,以提高服务的承载能力和可用性。

因此,这里面临着一个发布代码到 N 台机器的问题。显然,我们不能一台台的发布,这样效率太低了。

通常,我们通过在预发机上执行 shell 脚本,将代码 scp或者Rsync 到 N 台机器上。

#rsync /path/to/code user@127.0.0.1::path/to/code --exclude-list=exclude.list

scp T M P D I R / {TMP_DIR}/ TMPDIR/{PKG_NAME}.tar.gz $node:/opt/webroot/

4、快速回滚

发布完代码后,我们会在预发机的 Git 仓库上执行 :

git tag v20160522

的命令,记录此次发布的版本。

如果在发布后发现出了问题,可以在预发机的 Git 仓库执行如下命令:

git tag -l

找出上一次发布的版本,并回滚代码:

git reset --hard v20160521

然后,再通过步骤 3 的方式,将回滚的代码同步到 N 台业务机上。

总结

以上便是实践中一种简单高效的代码部署方法,既可以快速发布,又能够及时回滚,而且还能兼顾到开发环境和线上环境的差异。

转载于:https://www.cnblogs.com/pythonal/p/6588431.html
部署方式3
在这里插入图片描述

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值