将express node应用程序并行部署到多个应用程序服务器

时间:2016-06-14 04:42:20

标签: node.js git express deployment capistrano

我在Linode堆栈上部署了一个mean.io express / node js web应用程序。

我的2台应用服务器运行Ubuntu 14.04,可以在Ubuntu 14.04上再次运行2台 Haproxy 负载平衡器后访问。

我们打电话给应用服务器1 => APP1 和应用服务器2 =>的 APP2

目前,我通过

手动部署
  1. 从两个负载均衡器的haproxy.cfg中删除 APP1 条目并重新启动。

  2. 更新 APP1

  3. 上的代码
  4. 从两个负载均衡器的haproxy.cfg中删除 APP2 条目并将 APP1 条目放回

  5. 重新启动 APP1

  6. 更新 APP2

  7. 上的代码
  8. APP2 条目放回haproxy.cfg并重新启动

  9. 重新启动 APP2

  10. 我遵循这个过程,以便在任何时候我们的Web应用程序的用户即使在部署期间也能获得一致的数据,即app服务器的实例都没有运行不同的代码副本。

    我正在转向自动部署系统,我已经考虑部署的两个选项是 Capistrano Shipit JS

    它们都提供了在配置中提及多个服务器的方法,例如 capistrano

    role :app, "APP1", "APP2"
    

    Shipit JS

    shipit.config.servers = ['APP1', 'APP2']
    
    1. 所以,我的问题是这些库如何确保两台服务器在重新启动之前并行更新?有没有办法在更新期间锁定对这些服务器的传入请求?

    2. 这些部署系统是仅适用于简单的客户端 - 应用服务器架构还是可以在有负载均衡器的系统中使用?

    3. 任何解释都是非常宝贵的。我已尽力解释这里的情况。如果您需要更多意见,请在评论中提及。

0 个答案:

没有答案