Búsqueda de sitios web

4 administradores de procesos para aplicaciones Node.js en Linux


Un administrador de procesos Node.js es una herramienta útil para garantizar que un proceso o script Node.js se ejecute continuamente (para siempre) y puede permitir que se inicie automáticamente al iniciar 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 variables/configuraciones de 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 gestión de procesos.

Lea también: 14 mejores marcos NodeJS para desarrolladores en 2019

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 el más popular para Node.js con un equilibrador de carga integrado. Le permite enumerar, monitorear y actuar sobre todos los procesos Nodejs iniciados y admite 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 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 aplicaciones siempre son 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, vaciarlos y recargarlos cuando sea necesario.

Es importante destacar que PM2 admite secuencias de comandos de inicio que puede configurar para iniciar automáticamente sus procesos en caso de reinicios esperados o inesperados de la máquina. 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 la rotación de registros o el equilibrio de carga, y mucho más.

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

2. PM de bucle fuerte

StrongLoop PM también es un administrador de procesos de producción avanzado de código abierto para aplicaciones Node.js con equilibrio de carga integrado como PM2 y se puede utilizar mediante un comando. línea o una interfaz gráfica.

Admite monitoreo de aplicaciones (ver métricas de rendimiento, como 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 de procesos en caso de falla y agregación y administración de registros.

Además, se entrega con soporte para 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 formato.

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 Node.js. Puedes usar forever de dos maneras: a través de la línea de comandos o incrustándolo en tu código.

Le permite administrar (iniciar, enumerar, detener, detener todo, reiniciar, reiniciar todo, etc.) procesos Node.js y admite la observación de cambios de archivos, modo de depuración, registros de aplicaciones, eliminación de un proceso y personalización de señales 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 sistemas y servicios

En Linux, Systemd es un demonio que administra los recursos del sistema, como 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 unit. Por lo tanto, para administrar su servidor Node.js como cualquier otro servicio del sistema, necesita crear para él 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, reiniciarlo (detenerlo e iniciarlo nuevamente). 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 nuevas unidades de servicio en Systemd usando Shell Script

Resumen

Un administrador de paquetes Node.js es una herramienta útil para implementar su proyecto en un entorno de producción. Mantiene viva una aplicación 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.