将更新部署到生产node.js代码

Mad*_*høj 5 node.js

这可能是一个基本问题,但我如何有效地部署当前运行的node.js代码的更新?

我来自PHP,JavaScript(客户端)背景,我可以在需要更新的时候覆盖文件,并且可以在produciton网站上立即获得更改.

但是在node.js中,我必须覆盖现有文件,然后关闭并重新启动应用程序.我应该担心这可能造成的停机吗?对我来说,它似乎比PHP(脚本)方式更危险.除非我有一个服务器集群,否则我可以一次取下一台服务器进行更新.

有什么样的策略可供选择?

joe*_*son 2

就我而言,这几乎是:

svn up; monit restart node

该节点服务器充当具有长轮询客户端的彗星服务器,因此客户端只需像平常一样重新连接即可。Node 服务器做的第一件事是从数据库中获取当前状态信息,因此一切都会立即顺利运行。

我认为这并不比更新svn up一堆 PHP 文件风险更大。如果有什么的话,那就更安全一点。当您更新一个大型 php 项目时,您有可能(如果它是一个高流量站点,则基本上是 100% 的机会)您仍在更新时会通过 Web 服务器收到请求。这意味着您将在同一请求中运行更新的和过时的代码。至少使用 Node 方法,您可以更新所有内容并重新启动 Node 服务器,并知道所有代码都是最新的。