4 Gestors de processos per a aplicacions Node.js a Linux


Un gestor de processos Node.js és una eina útil per assegurar-se que un procés o script Node.js s'executa de manera contínua (per sempre) i pot permetre que s'iniciï automàticament a l'inici del sistema.

Permet supervisar els serveis en execució i facilita les tasques comunes d'administració del sistema (com ara reiniciar en cas d'error, aturar-se, tornar a carregar configuracions sense temps d'inactivitat, modificar les variables/configuracions d'entorn, mostrar mètriques de rendiment i molt més). També admet el registre d'aplicacions, la agrupació en clúster i l'equilibri de càrrega, i moltes altres funcions útils de gestió de processos.

Un gestor de paquets és útil especialment per al desplegament d'aplicacions Node.js en un entorn de producció. En aquest article, revisarem quatre gestors de processos per a la gestió d'aplicacions Node.js en un sistema Linux.

1. PM2

PM2 és un codi obert, avançat, ric en funcions, multiplataforma i el gestor de processos a nivell de producció més popular per a Node.js amb un equilibrador de càrrega integrat. Us permet enumerar, supervisar i actuar sobre tots els processos de Nodejs llançats i admet el mode de clúster.

Admet la supervisió d'aplicacions: ofereix una manera senzilla de supervisar l'ús de recursos (memòria i CPU) de la vostra aplicació. Admet el vostre flux de treball de gestió de processos, ja que us permet configurar i ajustar el comportament de cada aplicació mitjançant un fitxer de procés (els formats compatibles inclouen Javascript, JSON i YAML).

Els registres d'aplicacions sempre són clau en un entorn de producció, en aquest sentit PM2 us permet gestionar fàcilment els registres de la vostra aplicació. Proporciona diferents maneres i formats per gestionar i mostrar els registres respectivament. Podeu mostrar els registres en temps real, netejar-los i tornar-los a carregar quan calgui.

És important destacar que PM2 admet scripts d'inici que podeu configurar per iniciar automàticament els vostres processos en reinicis de màquina esperats o inesperats. També admet el reinici automàtic d'una aplicació quan es modifica un fitxer al directori actual o als seus subdirectoris.

A més, PM2 inclou un sistema de mòduls que permet als usuaris crear mòduls personalitzats per a la gestió de processos de Nodejs. Per exemple, podeu crear un mòdul per al mòdul de rotació del registre o l'equilibri de càrrega, i molt més.

Finalment, però no menys important, si utilitzeu contenidors Docker, PM2 permet la integració de contenidors i ofereix un sistema API que us permet utilitzar-lo de manera programàtica.

StrongLoop PM també és un gestor de processos de producció avançat de codi obert per a aplicacions Node.js amb equilibri de càrrega integrat igual que PM2 i es pot utilitzar mitjançant una línia d'ordres o una interfície gràfica.

Admet la supervisió d'aplicacions (vegeu mètriques de rendiment com ara temps de bucle d'esdeveniments, CPU i consum de memòria), desplegament multi-amfitrió, mode de clúster, reinicis i actualitzacions d'aplicacions sense temps d'inactivitat, reinici automàtic del procés en cas de fallada i agregació i gestió de registres.

A més, s'envia amb suport Docker, us permet exportar mètriques de rendiment a servidors compatibles amb StatsD i visualitzar-les en consoles de tercers com ara DataDog, Graphite, Syslog i fitxers de registre en brut.

3. Per sempre

Forever és una eina d'interfície de línia d'ordres de codi obert, senzilla i configurable per executar un script determinat de manera contínua (per sempre). És adequat per executar desplegaments més petits d'aplicacions i scripts de Node.js. Podeu utilitzar-lo per sempre de dues maneres: mitjançant la línia d'ordres o inserint-lo al vostre codi.

Us permet gestionar (iniciar, llistar, aturar, aturar-ho tot, reiniciar, reiniciar-ho tot, etc.) els processos Node.js i admet la matança d'un procés i la personalització del senyal de sortida, i molt més. A més, admet diverses opcions d'ús que podeu passar directament des de la línia d'ordres o passar-les en un fitxer JSON.

4. SystemD – Gestor de serveis i sistema

A Linux, Systemd és un dimoni que gestiona els recursos del sistema, com ara processos i altres components del sistema de fitxers. Qualsevol recurs gestionat per systemd es coneix com a unitat. Hi ha diferents tipus d'unitats, com ara servei, dispositiu, sòcol, muntatge, objectiu i moltes altres unitats.

Systemd gestiona les unitats mitjançant un fitxer de configuració conegut com a fitxer d'unitats. Per tant, per gestionar el vostre servidor Node.js com qualsevol altre servei del sistema, heu de crear-hi un fitxer unitat, que en aquest cas serà un fitxer de servei.

Un cop hàgiu creat un fitxer de servei per al vostre servidor Node.js, podeu iniciar-lo, habilitar-lo perquè s'iniciï automàticament en el moment de l'arrencada del sistema, comprovar-ne l'estat, reiniciar (aturar-lo i tornar-lo a iniciar) o tornar a carregar la seva configuració, i fins i tot atura-ho com qualsevol altre servei de systemd.

Per obtenir més informació, vegeu: Com crear i executar noves unitats de servei a Systemd mitjançant l'script de Shell

Un gestor de paquets Node.js és una eina útil per desplegar el vostre projecte en un entorn de producció. Manté una aplicació viva per sempre i simplifica com podeu controlar-la. En aquest article, hem revisat quatre gestors de paquets per a Node.js. Si teniu alguna addició o pregunta a fer, feu servir el formulari de comentaris que trobareu a continuació per posar-vos en contacte amb nosaltres.