0

我正在尝试将我的 MEANjs 应用程序部署到生产环境中......
到目前为止,我已经使用 jenkins、git、rsync 等将项目复制到远程服务器。

在最后一步我只需要打电话

  1. 停止 myMeanjsApp
  2. 用新版本的应用程序替换文件夹
  3. 调用启动 myMeanjsApp

但这意味着我试图避免的停机时间
1. 我怎样才能避免这种情况?
2. 这方面有没有好的实践工作流程?

我已经看到了这个 ,但我不确定它是要走的路还是有其他简单的方法可以做到这一点?

4

1 回答 1

0

通常,通过创建运行升级版软件的新虚拟机来升级大型 Web 应用程序。然后将新的虚拟机添加到负载平衡器(手动或自动)。然后,运行旧版本的虚拟机将从负载平衡器池中删除,当对旧 vm 的所有正在进行的请求都完成后,可以销毁这些 vm。例如,ELB 和自动扩展组等 AWS 功能使其成为升级软件的一种有吸引力的方式。

即使您只有一台服务器,您也可以通过将新版本启动到不同的端口来执行相同的操作。

如果您必须就地替换代码,则 naught npm 模块是一种公平的方法。

对于某些应用程序,可以选择在最后一个连接完成后简单地停止接受新连接并使用新版本重新启动。

对于某些应用程序,您可以随时终止旧版本并启动新版本。这一切都取决于您的要求和环境。

于 2014-09-13T09:53:05.760 回答