Требуется разъяснение о восьмом факторе манифеста приложений с двенадцатью факторами и демонтированных процессах

Я имею в виду приложение манифеста "Двенадцать факторов", которое можно найти здесь: http://12factor.net

В восьмом факторе автор пишет:

Двенадцатифакторные процессы приложений никогда не должны демонамизировать или писать файлы PID. Вместо этого полагайтесь на диспетчера процессов операционной системы (например, Upstart, диспетчер распределенных процессов на облачной платформе или инструмент как Форман в разработке) для управления выходными потоками, реагировать на сбойные процессы и обработку инициированных пользователем перезапуска и останова.

Я не уверен, что здесь подразумевается под "процессами никогда не следует демонамизировать".

Может кто-нибудь объяснить, какие плюсы и минусы демонстрации процесса будут - особенно в контексте Java-процесса? Кроме того, диспетчер процессов не может управлять демонамизированным процессом?

5
задан balteo 04 февр. '15 в 23:24
источник поделиться

1 ответ

Если процесс деамонизирует, это означает, что он фактически пытается самостоятельно управлять своим жизненным циклом. Это хорошо для некоторых типов приложений, но для распределенного веб-приложения, и это приложение, к которому относится 12-факторный манифест, обычно означает проблему. Если приложение пытается управлять собой, его, вероятно, не будет легко управлять внешними менеджерами процессов, или в лучшем случае это может означать, что необходимы специальные плагины или расширения для этих менеджеров, что усложняет развертывание.

Примером того, что вы хотели бы сделать с приложением, и что может предотвратить демонанизация, будет автоматическое масштабирование. С помощью таких инструментов, как Mesos, вы, по сути, хотите рассказать системе: "вот мои 50 машин, теперь я ставлю свои приложения на эти машины", Вам не нужно вручную управлять тем, что происходит, но пусть менеджер кластера обрабатывает его автоматически. Он может создавать больше или меньше экземпляров автоматически в зависимости от условий, например. сколько трафика ваша система получает, и он может помещать несколько экземпляров на одну машину. Если приложение пытается управлять собой, оно будет вмешиваться и сделать такое внешнее управление невозможным или очень сложным.

5
ответ дан Michał Kosmulski 10 февр. '15 в 21:50
источник поделиться

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