I have a RoR application and deploy it to CloudFoundry. Together with the application itself I want to start a Resque scheduler and a couple of workers.
I tried various szenarios:
- Procfile: Multiple processes supported from v3, which is experimental and does not support manifest files yet;
- Foreman: Actually works, but is not recommended for production usage due to lack of proper process management
- Upstart: Not possible as it would need root privileges
- Directly via command (-c): It is possible to execute multiple daemon processes using & between them. However, in this case terminated processes are not restarted (no health check available).
So I am ending up to specify a separate app for each process in my manifest file. I just can't believe that this is the best practice here?! Not only from a resources perspective, but also from a workflow perspective (think of the duration for a deployment for a couple of apps).
Bottom line, my question here is: What is the best approach to start more than one (worker) process in a production environment on CloudFoundry? I am thinking of -c option plus Monit or God, but I am afraid this would require root privileges again.