I've got a site that has many components that need to run on deployment (web server, email service, photo resizer service, various jobs, etc) and I was wondering how others handle this scenario.
My initial thought was to have a master cluster that forks off all of the separate processes. I'd put the master process in something like upstart to make sure that it kept running and ideally I'd build some logic in the master to be able restart the child processes and to gracefully restart when I need to push new code.
Does anybody have any suggestions?