Развертывание сервера nodejs для веб-CRM для производства - PullRequest
0 голосов
/ 25 февраля 2019

Я ищу какой-либо метод или учебник для развертывания на локальном сервере / компьютере экспресс-приложения nodejs.это будет для производственной среды.Все, что я читал о таких решениях, как zenit now, localtunnel, forever, pm2 и аналогичных, состоит в том, что они не рекомендуются для производственных сред.Идея состоит в том, чтобы иметь общедоступную сеть без хостинга.Мне нужно, чтобы этот метод позволял поддерживать более одного активного узла / сети одновременно.

1 Ответ

0 голосов
/ 25 февраля 2019

Когда люди говорят, что компонент не рекомендуется для производства, это не значит, что он нестабилен.В большинстве случаев это означает, что это не полнофункциональное решение, учитывающее все аспекты производственного развертывания:

  • масштабируемость
  • отработка отказа
  • безопасность
  • конфигурируемость
  • автоматизация
  • и т. Д.

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

Несколько примеров:

Классическая установка (хорошо подходит для развертываний Do-It-Yourself)

  • установка Git + (Node.js и NPM) + (навсегда или эквивалент) + ваша база данных (например, MongoDB) + (NGINX или HAProxy) в ваш любимый / принятый дистрибутив Linux
  • клонируйте каждое приложение Node.js в свой собственный каталог
  • устанавливайте cronjobs для базового мониторинга и обслуживания
  • добавляйте сценарии для динамического удаления / добавления конфигураций веб-сервера NGINX на основе удаленных / добавленных приложений Node.js

Более современная установка (подходит для развертываний AWS / GCE, но также возможна локально с такими инструментами, как skaffold )

  • установить кластер Kubernetes на пару машин
  • подготовить образ базового контейнера Docker, который соответствует всем вашим приложениям Node.js
  • , если необходимо, добавьте файл Docker в каждое приложение Node.js, чтобы создать одинDocker imagДля каждого приложения на основе базового образа контейнера Docker
  • добавьте новое развертывание для каждого вашего приложения Node.js
  • Kubernetes сделает для вас "keep-alive""
  • заполните соединение между вашей серверной сетью (DNS, IP, порты) и IP-адресами, предоставленными вам Kubernetes (NGINX или HAProxy также заполнит эту дыру)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...