4 administradores de procesos para aplicaciones Node.js en Linux


Un administrador de procesos de Node.js es una herramienta útil para garantizar que un proceso o secuencia de comandos de Node.js se ejecute continuamente (para siempre) y pueda permitir que se inicie automáticamente al arrancar el sistema.

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

Un administrador de paquetes es útil especialmente para la implementación de aplicaciones Node.js en un entorno de producción. En este artículo, revisaremos cuatro administradores de procesos para la administración de aplicaciones Node.js en un sistema Linux.

1. PM2

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

Admite la supervisión de aplicaciones: ofrece una forma sencilla de supervisar el uso de recursos (memoria y CPU) de su aplicación. Es compatible con su flujo de trabajo de gestión de procesos permitiéndole configurar y ajustar el comportamiento de cada aplicación a través de un archivo de proceso (los formatos compatibles incluyen Javascript, JSON y YAML).

Los registros de aplicaciones son siempre clave en un entorno de producción, en este sentido PM2 le permite administrar fácilmente los registros de su aplicación. Proporciona diferentes formas y formatos para manejar y mostrar registros respectivamente. Puede mostrar registros en tiempo real, eliminarlos y volver a cargarlos cuando sea necesario.

Es importante destacar que PM2 admite scripts de inicio que puede configurar para iniciar automáticamente sus procesos en reinicios de máquina esperados o inesperados. También admite el reinicio automático de una aplicación cuando se modifica un archivo 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, puede crear un módulo para el módulo de rotación de registros o el equilibrio de carga, y mucho más.

Por último, pero no menos importante, si está utilizando contenedores Docker, PM2 permite la integración de contenedores y ofrece un sistema API que le permite usarlo mediante programación.

StrongLoop PM es también un administrador de procesos de producción avanzado de código abierto para aplicaciones Node.js con balanceo de carga integrado como PM2 y se puede usar a través de una línea de comandos o una interfaz gráfica.

Admite la supervisión de aplicaciones (ver métricas de rendimiento, como los tiempos de bucle de eventos, consumo de CPU y memoria), implementación de 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 administración de registros.

Además, es compatible con Docker, le permite exportar métricas de rendimiento a servidores compatibles con StatsD y verlas en consolas de terceros como DataDog, Graphite, Splunk, así como Syslog y archivos de registro sin procesar.

3. Para siempre

Forever es una herramienta de interfaz de línea de comandos de código abierto, simple y configurable para ejecutar un script determinado de forma continua (para siempre). Es adecuado para ejecutar implementaciones más pequeñas de aplicaciones y scripts de Node.js. Puede usar forever de dos maneras: a través de la línea de comandos o incrustándolo en su código.

Le permite administrar (iniciar, listar, detener, detener todo, reiniciar, reiniciar todo, etc.) los procesos de Node.js y es compatible con la observación de cambios de archivos, modo de depuración, registros de aplicaciones, eliminació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 puede pasar directamente desde la línea de comando o pasarlas en un archivo JSON.

4. SystemD - Administrador de servicios y sistemas

En Linux, Systemd es un demonio que administra los recursos del sistema, como los procesos y otros componentes del sistema de archivos. Cualquier recurso gestionado por systemd se conoce como unidad. Hay diferentes tipos de unidades que incluyen servicio, dispositivo, zócalo, montaje, objetivo y muchas otras unidades.

Systemd administra las unidades a través de un archivo de configuración conocido como archivo de unidad. Por lo tanto, para administrar su servidor Node.js como cualquier otro servicio del sistema, debe crear un archivo de unidad, que en este caso será un archivo de servicio.

Una vez que haya creado un archivo de servicio para su servidor Node.js, puede iniciarlo, habilitarlo para que se inicie automáticamente en el momento del inicio del sistema, verificar su estado, reiniciar (detenerlo e iniciarlo nuevamente) o recargar su configuración, e incluso deténgalo como cualquier otro servicio systemd.

Para obtener más información, consulte: Cómo crear y ejecutar nuevas unidades de servicio en Systemd mediante el script de shell

Un administrador de paquetes de Node.js es una herramienta útil para implementar su proyecto en un entorno de producción. Mantiene una aplicación viva para siempre y simplifica la forma de controlarla. En este artículo, revisamos cuatro administradores de paquetes para Node.js. Si tiene alguna adición o pregunta que hacer, utilice el formulario de comentarios a continuación para comunicarse con nosotros.