Блог CommCloud

Приложения на Node.js

Готовите инфраструктуру для приложений Node. js вручную? Хотите автоматизировать процесс развёртывания приложений?

Облако CommCloud предоставляет набор управляемых сервисов для хостинга приложений Node.js. Это упрощает развёртывание приложений и делает его понятным даже для разработчиков.

В этой статье мы рассмотрим основные инструменты и функции для хостинга приложений Node.js.


В статье мы расскажем:

  1. Хостинг среды Node. js;
  2. Управление версиями Node. js;
  3. Развертывание приложений Node. js;
  4. Node.js Package Manager;
  5. Node.js Менеджеры процессов;
  6. Управление доменами;
  7. Автоматическое вертикальное масштабирование;
  8. Ручное горизонтальное масштабирование;
  9. Автоматическое горизонтальное масштабирование.


1. Хостинг среды Node. js

Чтобы запустить приложение Node. js, создайте соответствующую среду с помощью мощного и интуитивно понятного мастера топологии. Переключитесь на вкладку Node.js, выберите необходимую версию сервера приложений и добавьте любой другой необходимый стек программного обеспечения. При необходимости настройте другие параметры, например, количество клаудлет и узлов, публичный IPv4 и т. д.



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


2. Управление версиями Node. js

В настоящее время поддерживаются следующие ветки Node. js:

  • 17.х.х
  • 16.х.х
  • 15.х.х
  • 14.х.х
  • 12.х.х



Вы можете выбрать необходимую версию Node. js непосредственно из мастера топологии во время создания новой среды или настроить ее для существующей с помощью container redeploy.


3. Развертывание приложений Node. js

CommCloud PaaS автоматизирует процесс развертывания для управляемых серверов приложений Node. js с помощью:

Архива приложений
загруженного с локального компьютера или по внешнему URL-адресу.

Удаленного репозитория VSC
например, GitHub.



Совет: обычно, благодаря алгоритму автопереадресации портов CommCloud, развернутые проекты мгновенно доступны без каких-либо дополнительных манипуляций. При этом, для большей точности, вы можете вручную исключить некоторые службы из автопереадресации, указав соответствующие порты через переменную REDIRECT_EXCLUDE_PORTS.


4. Node. js Package Manager

Для большего удобства каждый сервер приложений Node. js содержит встроенный инструмент разработки Package Manager, который обеспечивает стандартизацию и автоматизацию процессов установки, обновления, настройки и удаления.

PaaS-платформа от CommCloud поддерживает два типа Package Manager:

npm
управляет требованиями вашего проекта через установку дополнительных модулей, пакетов и готовых к использованию приложений;

yarn
выполняет те же требования, что и в npm (поэтому для существующих приложений не требуется никаких изменений), обеспечивая при этом более высокую скорость, надежность и удобство.

По умолчанию Package Manager npm используется для серверов приложений Node. js, но при необходимости его можно легко переключить на yarn. Для этого откройте вкладку переменных контейнера и установите соответствующее значение PACKAGE_MANAGER (либо npm, либо yarn).




5. Node. js Менеджеры процессов

Менеджеры процессов предоставляют возможность контролировать жизненный цикл приложений, отслеживать запущенные службы и поддерживать работоспособность проекта. CommCloud PaaS обеспечивает поддержку следующих менеджеров процессов для стека Node. js:

  • npm
  • pm2
  • forever
  • supervisor

Пользователи могут выбрать необходимый менеджер процессов во время пересоздания контейнера или путем настройки переменной PROCESS_MANAGER (используя в качестве значения forever, npm, pm2 или supervisor, для применения новых опций требуется перезапуск контейнера).


6. Управление доменами

Ваше приложение Node. js можно легко дополнить пользовательским доменным именем, которое будет использоваться вместо имени по умолчанию. В зависимости от топологии вашей среды есть два варианта:

  1. Перенаправление CNAME при использовании общего балансировщика нагрузки. Рекомендуется для сред разработки и тестирования.
  2. DNS A-запись, если используется общедоступный IP. Может обрабатывать высокую нагрузку на трафик и подходит для производственных сред.

Кроме того, вы можете быстро переключать трафик между средами (например, перенаправлять клиентов на более новую версию приложения без простоев), используя функциональность swap domains или с помощью метода SwapExtIps API/CLI.




7. Автоматическое вертикальное масштабирование

CommCloud PaaS динамически предоставляет точное количество ресурсов (ОЗУ и ЦП), необходимых для ваших узлов в зависимости от текущей нагрузки, без ручного вмешательства. В результате вы никогда не переплачиваете за неиспользуемые ресурсы и экономите свое время, поскольку платформа избавляет вас от необходимости вносить корректировки или архитектурные изменения, связанные с нагрузкой.

Вам просто нужно установить верхний предел количества клаудлетов (каждый из которых равен 128 МБ оперативной памяти и 400 МГц процессора) для вашего сервера приложений Node. js, а все остальное платформа сделает автоматически.




8. Ручное горизонтальное масштабирование

Чтобы масштабировать/включить серверы приложений Node. js, зайдите в мастер топологии и нажмите кнопки +/- в разделе «Горизонтальное масштабирование», чтобы задать необходимое количество узлов. Кроме того, вы можете настроить предпочтительный режим масштабирования:

Без сохранения состояния
одновременно создает все новые узлы из базового шаблона изображения.

С сохранением состояния
последовательно копирует файловую систему главного контейнера в новые узлы.



Максимальное количество однотипных серверов в пределах одного уровня среды зависит от настроек конкретного хостинг-провайдера (обычно это ограничение составляет 16 узлов и может быть увеличено путем отправки соответствующего запроса в службу поддержки).

Кроме того, для правильного распределения запросов экземпляр балансировщика нагрузки автоматически добавляется при масштабировании сервера Node.js.


9. Автоматическое горизонтальное масштабирование

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



Кроме того, хостинг в CommCloud позволяет использовать другие встроенные инструменты и функции, например:

  1. Пользовательский SSL-сертификат или бесплатный от Let’s Encrypt;
  2. Общедоступные IPv4;
  3. Широкий спектр управляемых программных стеков;
  4. Брандмауэры контейнеров, конечные точки и изоляция среды;
  5. Удобный пользовательский интерфейс и прямой доступ по SSH для управления;
  6. Открытый API и облачные сценарии для автоматизации;
  7. Модель ценообразования с оплатой по мере использования;
  8. Функция совместной работы;
  9. Распространение в нескольких облаках.

Как вы можете видеть, CommCloud PaaS обеспечивает все необходимые условия для качественного хостинга Node.js.


Node.js