Meteor应用程序-如何实现多实例部署的编排/配置

Meteor Application - How might one implement orchestration/provisioning for multi-instance deployments?

本文关键字:部署 实例 配置 应用程序 何实现 实现 Meteor      更新时间:2023-09-26

我有一个metro.js应用程序,它可以很好地进行单实例部署,但现在我想设置基础设施,以启用并自动创建更多实例(每个客户端1个)。

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

我的图像我必须:

  1. 检索每个客户端所需的子域(通过一些注册网站)
  2. 捆绑应用程序
  3. 在单独的端口上部署一个实例,每个端口都有一个单独的DB
  4. 设置反向代理以将子域转发到相应的内部端口
  5. 设置一些程序来监视进程,并在进程崩溃或重新启动时重新启动它们
  6. 在更新和发布应用程序代码时自动重新绑定并部署到所有实例

据我所知,我认为适合这份工作的工具在编排家族中(Capistrano、Fabric、Func、Rundeck),但我不知道他们处理哪些片段,以及哪些片段应该留给其他工具。

我的很多问题都来自于不知道如何连接步骤和/或是否应该连接它们。其他的原因是不知道什么是最佳实践,也不知道在哪里可以学到做这类事情的设计模式。

例如:

  • 我知道如何在命令行上捆绑应用程序,但这一步骤应该是shell脚本、python脚本或ruby的一部分吗。。。。部署中的第2步也是如此(我知道如何在命令行上完成,但不知道如何自动化)
  • 我想我可以设置一个反向代理,但我不知道有什么反向代理工具可以动态修改或配置,如果任何脚本语言都适合进行动态配置
  • 我不知道在更新/重新部署应用程序时需要或应该考虑什么

基本上,似乎有很多工具和很多方法可以做到这一点,但很少有关于哪些工具可以很好地配合使用或如何正确操作的指导。如果我不觉得选择一套能很好地协同工作的工具实际上是掷骰子,我会非常有动力学习必要的工具和语言。

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

haproxy具有软重新配置功能,可以在不重新启动服务的情况下添加和删除子域(或子域的服务器)。

你应该拥有一切你需要的东西。