在CloudFoundry的生产环境中启动多个(后台工作人员)流程

时间:2018-10-09 15:46:28

标签: ruby-on-rails cloudfoundry foreman procfile god

我有一个RoR应用程序并将其部署到CloudFoundry。与应用程序本身一起,我想启动一个Resque调度程序和几个工作人员。

我尝试了各种szenarios:

  • Procfile:v3支持多个进程,这是实验性的,尚不支持清单文件;
  • 领班:确实可行,但由于缺乏适当的流程管理,不建议用于生产用途
  • 新贵:不可能,因为它将需要root特权
  • 直接通过命令(-c):可以在它们之间使用&执行多个守护进程。但是,在这种情况下,终止的进程不会重新启动(没有运行状况检查)。

所以我最终要为清单文件中的每个进程指定一个单独的应用程序。我简直不敢相信这是这里的最佳做法?不仅从资源的角度,而且从工作流程的角度(考虑几个应用程序的部署持续时间)。

最重要的是,我的问题是:在CloudFoundry的生产环境中启动多个(工人)流程的最佳方法是什么?我正在考虑-c选项加上Monit或God,但是恐怕这将再次需要root特权。

1 个答案:

答案 0 :(得分:0)

您要使用此选项:

  

Procfile:v3支持多个进程,这是试验性的,尚不支持清单文件;

我知道它说的是“实验性”,但这只是说技术上可能会将Cloud Controller的API更改。 不是并不意味着使用此选项存在任何内在的不稳定。您的流程以与部署多个应用程序时完全相同的方式运行(第四个选项),这只是在Cloud Controller中组织它们的资源的另一种方式。

我相信清单文件支持会很快出现。在撰写本文以完成v3 API和弃用v2 API时,正在付出很大的努力。您在这里可能会领先一些,但幅度不大。如果您走这条路,那么您还将为将来做好准备。

希望有帮助!