Развертывание node.js в производстве

Каковы лучшие практики для развертывания приложения nodejs в рабочей среде?

Я хотел бы знать, как выполняется развертывание для узлов nodejs Api сегодня, сегодня мое приложение находится в докере и работает локально.

Интересно, должен ли я использовать Nginx внутри контейнера и развернуть на нем свой сервер или просто загрузить свой узел изображения, который уже работает сегодня.

* Мне нужен баланс нагрузки

2 ответа

Решение

Есть несколько основных типов развертывания, которые популярны сегодня.

  1. Использование платформы в качестве сервиса, такого как Heroku
  2. Использование VPS, таких как AWS, Digital Ocean и т. Д.
  3. Использование выделенного сервера

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

Посмотрите этот ответ для более подробной информации о том, как установить Node на VPS или выделенный сервер:

Я могу только добавить из опыта работы в AWS использование шлюза NAT, который является выделенным сервером Node с сервером MongoDB за шлюзом. (Очевидно, это масштабируемая система и проект.)

  1. С Docker или без него вам необходимо контролировать производственную среду. Это означает четкое определение того, какие библиотеки NPM вам понадобятся для работы, как вы будете обрабатывать переменные среды и кластеры для ядер.

  2. Я бы настоятельно рекомендовал использовать такой инструмент, как PM2, для обработки кластеров, выключений серверов, перезапусков и журналов. (Рабочие и рабы также, если они вам нужны, и код для них).

Этот список можно продолжать и продолжать, но имейте в виду, что это только с точки зрения AWS. Правильная настройка шлюза в AWS также не простой процесс. Будьте готовы к тому, что попадаются по пути.

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