4 Gestores de Procesos para Aplicaciones de Node.js en Linux

A Node.js process manager is a useful tool to ensure that a Node.js process or script runs continuously (forever) and can enable it to auto-start at system boot.

Le permite monitorear los servicios en ejecución y facilita tareas comunes de administración del sistema (como reiniciar en caso de falla, detener, recargar configuraciones sin tiempo de inactividad, modificar variables de entorno/configuraciones, mostrar métricas de rendimiento y mucho más). También admite el registro de aplicaciones, el clustering y el equilibrio de carga, y muchas otras útiles características de gestión de procesos.

Leer también: 14 mejores frameworks de NodeJS para desarrolladores en 2019

A package manager is useful especially for deployment of Node.js applications in a production environment. In this article, we will review four process managers for Node.js application management in a Linux system.

1. PM2

PM2 es un gestor de procesos de nivel de producción de código abierto, avanzado, rico en funciones, multiplataforma y el más popular para Node.js con un balanceador de carga incorporado. Le permite listar, monitorear y actuar sobre todos los procesos lanzados de Nodejs, y admite el modo de clúster.

Install PM2 to Run Nodejs Apps in Linux

Admite el monitoreo de aplicaciones: ofrece una forma sencilla de monitorear el uso de recursos (memoria y CPU) de su aplicación. Admite su flujo de trabajo de gestión de procesos al permitirle configurar y ajustar el comportamiento de cada aplicación a través de un archivo de proceso (los formatos admitidos incluyen Javascript, JSON y YAML).

Los registros de aplicación son siempre clave en un entorno de producción, en este sentido PM2 te permite gestionar fácilmente los registros de tu aplicación. Proporciona diferentes formas y formatos para manejar y mostrar los registros respectivamente. Puedes mostrar los registros en tiempo real, vaciarlos y recargarlos cuando sea necesario.

Es importante destacar que PM2 soporta scripts de inicio que puedes configurar para iniciar automáticamente tus procesos en reinicios esperados o inesperados de la máquina. También soporta el reinicio automático de una aplicación cuando un archivo es modificado en el directorio actual o sus subdirectorios.

Además, PM2 viene con un sistema de módulos que permite a los usuarios crear módulos personalizados para la gestión de procesos de Nodejs. Por ejemplo, puedes crear un módulo para rotación de registros o equilibrio de carga, y mucho más.

Por último, si estás utilizando contenedores Docker, PM2 permite la integración con contenedores, y ofrece un sistema API que te permite utilizarlo programáticamente.

2. StrongLoop PM

StrongLoop PM es también un gestor de procesos de producción avanzado de código abierto para aplicaciones Node.js con equilibrio de carga incorporado al igual que PM2 y se puede utilizar a través de una interfaz de línea de comandos o una interfaz gráfica.

StrongLoop PM Process Manager for Nodejs

Soporta el monitoreo de aplicaciones (ver métricas de rendimiento como tiempos de bucle de eventos, consumo de CPU y memoria), despliegue en múltiples hosts, modo de clúster, reinicios y actualizaciones de aplicaciones sin tiempo de inactividad, reinicio automático del proceso en caso de falla y agregación y gestión de registros.

Además, incluye soporte para Docker, te permite exportar métricas de rendimiento a servidores compatibles con StatsD y verlas en consolas de terceros como DataDog, Graphite, Splunk además de Syslog y archivos de registro en bruto.

3. Forever

Forever es una herramienta de interfaz de línea de comandos simple y configurable de código abierto para ejecutar un script de manera continua (para siempre). Es adecuado para ejecutar despliegues más pequeños de Node.js aplicaciones y scripts. Puedes usar forever de dos maneras: a través de la línea de comandos o integrándolo en tu código.

Forever Run Scripts Continuously

Permite gestionar (iniciar, listar, detener, detener todo, reiniciar, reiniciar todo, etc.) procesos de Node.js y admite la detección de cambios en archivos, modo de depuración, registros de aplicación, finalización de un proceso y personalización de la señal de salida, y mucho más. Además, admite varias opciones de uso que puedes pasar directamente desde la línea de comandos o pasarlas en un archivo JSON.

4. SystemD: Servicio y Gestor del Sistema

En Linux, Systemd es un demonio que gestiona recursos del sistema como procesos y otros componentes del sistema de archivos. Cualquier recurso gestionado por systemd se conoce como una unidad. Hay diferentes tipos de unidades incluyendo servicio, dispositivo, socket, montaje, objetivo y muchas otras unidades.

Systemd gestiona unidades a través de un archivo de configuración conocido como un archivo de unidad. Por lo tanto, para gestionar tu servidor Node.js como cualquier otro servicio del sistema, necesitas crear para él un archivo de unidad, que en este caso será un archivo de servicio.Una vez que hayas creado un archivo de servicio para tu servidor Node.js, puedes iniciarlo, habilitarlo para que se inicie automáticamente en el arranque del sistema, verificar su estado, reiniciarlo (detener y volver a iniciarlo) o recargar su configuración, e incluso detenerlo como cualquier otro servicio de systemd.

Una vez que haya creado un archivo de servicio para su servidor Node.js, puede iniciarlo, habilitarlo para que se inicie automáticamente al arrancar el sistema, verificar su estado, reiniciarlo (detenerlo y volver a iniciarlo) o recargar su configuración, e incluso detenerlo como cualquier otro servicio systemd.

Para obtener más información, consulte: Cómo crear y ejecutar nuevos servicios en unidades systemd utilizando un script de shell

Resumen

A Node.js package manager is a useful tool for deploying your project in a production environment. It keeps an application alive forever and simplifies how you can control it. In this article, we reviewed four package managers for Node.js. If you have any additions or questions to ask, make use of the feedback form below to reach us.

Source:
https://www.tecmint.com/process-managers-for-node-js-applications-in-linux/