【问题标题】:Meanjs hotswap deploymentMeanjs 热插拔部署
【发布时间】:2014-11-06 01:43:52
【问题描述】:
我正在尝试将 MEANjs 应用程序部署到生产环境中...
到目前为止,我已经使用jenkins、git、rsync等将项目复制到远程服务器。
在最后一步我只需要调用
-
停止 myMeanjsApp
- 用新版本的应用程序替换文件夹
- 调用启动 myMeanjsApp
但这意味着我试图避免的停机时间
1. 我怎样才能避免这种情况?
2. 这方面有什么好的实践工作流程吗?
我见过this,但我不确定它是否可行
或者还有其他简单的方法吗?
【问题讨论】:
标签:
node.js
jenkins
web-deployment
mean-stack
hotswap
【解决方案1】:
通常通过创建运行升级版软件的新虚拟机来升级大型 Web 应用程序。然后将新的虚拟机添加到负载平衡器(手动或自动)。然后,运行旧版本的虚拟机将从负载平衡器池中删除,当对旧 vm 的所有正在进行的请求都完成后,可以销毁这些 vm。例如。 ELB 和 Auto Scaling 组等 AWS 功能使其成为升级软件的一种有吸引力的方式。
即使您只有一台服务器,您也可以通过将新版本启动到不同的端口来执行相同的操作。
如果您必须就地替换代码,则 naught npm 模块是一种公平的方法。
对于某些应用程序,可以选择在最后一个连接完成后停止接受新连接并使用新版本重新启动。
对于某些应用程序,您可以随时终止旧版本并启动新版本。这完全取决于您的要求和环境。