Meteor Application - 如何实现多实例部署的编排/配置?

时间:2013-08-15 20:09:46

标签: javascript shell deployment meteor

我有一个meteor.js应用程序,可以很好地作为单个实例部署,但现在我想设置基础架构以启用和自动创建更多实例(每个客户端1个)。

我打算为每个部署提供一个为给定客户端保留的子域。

我想要的图像:

  1. 为每个客户端(通过某个注册网站)检索所需的子域名
  2. 捆绑应用程序
  3. 在一个单独的端口上部署实例,每个
  4. 都有一个单独的数据库
  5. 设置反向代理以将子域转发到相应的内部端口
  6. 设置某些内容以监控进程,并在发生崩溃或重新启动时重新启动它们
  7. 在更新和发布应用程序代码时自动重新捆绑和部署到所有实例
  8. 据我所知,我认为适合这项工作的工具是在编排系列(Capistrano,Fabric,Func,Rundeck)中,但我不明白他们会照顾哪些部件以及应该是什么部件?留给其他工具。

    我的许多问题来自于不知道如何连接步骤和/或是否应该连接它们。其他人来自于不知道最佳实践是什么,或者在哪里可以学习围绕这些东西的设计模式。

    例如:

    • 我知道如何在命令行上捆绑应用程序但是该步骤应该是shell脚本,python脚本或ruby的一部分....同样适用于部署中的第2步(我知道如何在命令行但不是如何自动化它)
    • 我想我可以设置一个反向代理,但我不知道哪些反向代理工具可以动态修改或配置,如果任何脚本语言对于进行动态配置会有什么好处。
    • 我不知道在更新/重新部署应用时需要考虑或应该做些什么。

    基本上似乎有很多工具可以做很多方法,但很少有关于哪些工具可以很好地协同工作或者如何正确地完成工作的指导。如果我不想选择一套能够很好地协同工作的工具,那么我将非常积极地学习必要的工具和语言。

1 个答案:

答案 0 :(得分:1)

你可以从meteor-up开始,让你的服务器一直运行(永远是npm)和启动时。

haproxy具有soft-reconfiguration功能,允许在不重新启动服务的情况下添加和删除子域(或子域的服务器)。

你应该拥有开始所需的一切。