COMMCLOUD
15 февраля 2022
Время прочтения: 5 минут
Приложения на Node.js: подготовка инфраструктуры и настройка масштабирования
Приложения на Node.js
Готовите инфраструктуру для приложений Node.js вручную? Хотите автоматизировать процесс развёртывания приложений?

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

В этой статье мы рассмотрим основные инструменты и функции для хостинга приложений Node.js.
В статье мы расскажем:
1. Хостинг среды Node.js
Чтобы запустить приложение Node. js, создайте соответствующую среду с помощью мощного и интуитивно понятного мастера топологии. Переключитесь на вкладку Node.js, выберите необходимую версию сервера приложений и добавьте любой другой необходимый стек программного обеспечения. При необходимости настройте другие параметры, например, количество клаудлет и узлов, публичный IPv4 и т. д.
Примечание: каждый экземпляр представляет собой полностью изолированный контейнер, независимый и не подверженный влиянию других стеков. Кроме того, масштабируемые узлы автоматически распределяются между физическими серверами (или виртуальными машинами), обеспечивая высокую доступность.
2. Управление версиями Node.js
В настоящее время поддерживаются следующие ветки Node.js:
1
17.х.х
2
16.х.х
3
15.х.х
4
14.х.х
5
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 (поэтому для существующих приложений не требуется никаких изменений), обеспечивая при этом более высокую скорость, надежность и удобство.
По умолчанию Package Manager npm используется для серверов приложений Node.js, но при необходимости его можно легко переключить на yarn. Для этого откройте вкладку переменных контейнера и установите соответствующее значение PACKAGE_MANAGER (либо npm, либо yarn).
5. Node.js Менеджеры процессов
Менеджеры процессов предоставляют возможность контролировать жизненный цикл приложений, отслеживать запущенные службы и поддерживать работоспособность проекта. CommCloud PaaS обеспечивает поддержку следующих менеджеров процессов для стека Node.js:
— инициирует и настраивает несколько процессов;

— предоставляет огромное разнообразие функций управления приложениями, включая запущенный мониторинг процессов Node.js;
— позволяет управлять вашими процессами Node.js непрерывно и автоматически перезапускается при сбое;
— отслеживает запущенные приложения на предмет изменений и автоматически перезапускает необходимые приложения, чтобы поддерживать их в актуальном состоянии.
Пользователи могут выбрать необходимый менеджер процессов во время пересоздания контейнера или путем настройки переменной PROCESS_MANAGER (используя в качестве значения forever, npm, pm2 или supervisor, для применения новых опций требуется перезапуск контейнера).
Зарегистрируйтесь и получите 7 дней для бесплатного тестирования
Масштабируйте приложения на Node.js с помощью облачной PaaS-платформы от CommCloud
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.
Зарегистрируйтесь и получите 7 дней для бесплатного тестирования
Масштабируйте приложения на Node.js с помощью облачной PaaS-платформы от CommCloud
Регистрация на платформе
Регистрируясь, вы соглашаетесь с условиями оферты и даёте согласие на обработку персональных данных в соответствии с политикой по обработке ПДн и порядком осуществления прав.