Запуск более одного (фонового рабочего) процесса в производственной среде на CloudFoundry

У меня есть приложение RoR и развернуть его в CloudFoundry. Вместе с самим приложением я хочу запустить планировщик Resque и пару рабочих.

Я пробовал разные сценарии:

  • Procfile: поддерживается несколько процессов из версии 3, которая является экспериментальной и еще не поддерживает файлы манифеста;
  • Форман: На ​​самом деле работает, но не рекомендуется для производственного использования из-за отсутствия надлежащего управления процессом
  • Upstart: невозможно, так как для этого потребуются привилегии root
  • Непосредственно через команду (-c): можно выполнять несколько процессов демона, используя & между ними. Однако в этом случае завершенные процессы не перезапускаются (проверка работоспособности недоступна).

Поэтому я заканчиваю, чтобы указать отдельное приложение для каждого процесса в моем файле манифеста. Я просто не могу поверить, что это лучшая практика здесь?! Не только с точки зрения ресурсов, но и с точки зрения рабочего процесса (подумайте о продолжительности развертывания для нескольких приложений).

В итоге, мой вопрос здесь: Каков наилучший подход для запуска более одного (рабочего) процесса в производственной среде на CloudFoundry? Я думаю о опции -c плюс Monit или God, но боюсь, что для этого снова потребуются привилегии root.

1 ответ

Вы хотите использовать эту опцию:

Procfile: поддерживается несколько процессов из версии 3, которая является экспериментальной и еще не поддерживает файлы манифеста;

Я знаю, что он говорит "экспериментальный", но это только означает, что есть техническая возможность, что API в Cloud Controller может измениться. Это не означает, что в этой опции нет ничего нестабильного. Ваши процессы работают точно так же, как и при развертывании нескольких приложений (ваш 4-й вариант), это просто другой способ организации ресурсов в Cloud Controller.

Я верю, что поддержка файла манифеста придет, надеюсь, скоро. Пока я пишу это, прилагаются большие усилия, чтобы закончить API v3 и отказаться от API v2. Вы можете быть немного впереди кривой, но не намного. Вы также будете в хорошем положении в будущем, если вы пойдете по этому пути.

Надеюсь, это поможет!

Другие вопросы по тегам