В чем разница между типами процессов и Dynos в Heroku

Я подписался на план Хобби в Heroku.

В деталях плана указывается, что он допускает до 10 типов процессов.

Поэтому я разработал приложение со следующим Procfile:

backend-dev: node ./backend-dev/backend.js
backend-prod: node ./backend-prod/backend.js

Что представляет собой 2 типа процессов, верно?

Но когда я запускаю его с:

heroku ps:scale backend-dev=1
heroku ps:scale backend-prod=1

В итоге у меня два хобби-динамо... Так как в плане также указано 7 евро / месяц / дина, мне выставляется счет 14 евро / месяц.

Итак, мои вопросы:

  1. В чем разница между типами процессов и Dynos?
  2. Могу ли я запустить 2 типа процессов в пределах одного Dyno?
  3. Могу ли я запустить, например, 1 бесплатную Dyno (для backend-dev) и 1 Hobby Dyno (для backend-prod)?

1 ответ

  1. Рассмотрим этот простой пример веб-приложения с фоновым рабочим, поэтому он имеет web процесс и worker процесс. Когда такое приложение получает большой веб-трафик, но обрабатывает очень мало фоновых заданий, вы можете увеличить количество web процесс, но есть только один Dyno для worker процесс. Также возможно иметь разный размер dyno для процесса. Вместо того, чтобы использовать больше dyno, вы можете использовать dyno performance-l для web процесс и стандарт-1x для worker процесс. Другими словами, типы процессов описывают различные процессы, которые работают вместе в одном приложении. Они не должны быть разными приложениями, как в вашем случае.

  2. Нет. Вы можете запустить один тип процесса на нескольких динамо.

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

Ваш Procfile все неправильно. У вас должно быть имя типа процесса web получать веб-трафик. Если вы запустите текущую настройку, вы запустите два процесса, но они никогда не получат никаких веб-запросов. Это описано в документах Heroku, только web Процесс может получать веб-трафик, и у вас может быть только один такой процесс. Итак, чтобы запустить две версии вашего приложения, вам нужно создать два разных приложения Heroku. И в идеале вы должны разрешить настраивать ваше приложение с помощью переменных среды, чтобы вы могли развернуть один и тот же код в обоих приложениях.

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