4 Process Managers til Node.js-applikationer i Linux


En Node.js-procesmanager er et nyttigt værktøj til at sikre, at en Node.js-proces eller et script kører kontinuerligt (for evigt) og kan gøre det muligt automatisk at starte ved systemstart.

Det giver dig mulighed for at overvåge de kørende tjenester, og det letter almindelige systemadministrationsopgaver (såsom genstart ved fejl, stop, genindlæsning af konfigurationer uden nedetid, ændring af miljøvariabler/indstillinger, visning af præstationsmålinger og så meget mere). Det understøtter også applikationslogning, klyngedannelse og belastningsafbalancering og så mange andre nyttige processtyringsfunktioner.

En pakkehåndtering er især nyttig til implementering af Node.js-applikationer i et produktionsmiljø. I denne artikel gennemgår vi fire procesadministratorer for Node.js-applikationsadministration i et Linux-system.

1. PM2

PM2 er en open source, avanceret, funktionsrig, platformeoverskridende og den mest populære procesmanager på produktionsniveau til Node.js med en indbygget load balancer. Det giver dig mulighed for at liste, overvåge og handle på alle lancerede Nodejs-processer, og det understøtter klyngetilstand.

Det understøtter applikationsovervågning: tilbyder en enkel måde at overvåge ressourceforbruget (hukommelse og CPU) i din applikation. Det understøtter din processtyringsworkflow ved at give dig mulighed for at konfigurere og indstille adfærden for hver applikation via en procesfil (understøttede formater inkluderer Javascript, JSON og YAML).

Applikationslogfiler er altid nøglen i et produktionsmiljø. I denne henseende giver PM2 dig mulighed for nemt at administrere din applikations logfiler. Det giver forskellige måder og formater til henholdsvis håndtering og visning af logfiler. Du kan vise logfiler i realtid, skylle dem og genindlæse dem efter behov.

Det er vigtigt, at PM2 understøtter opstartsskripter, som du kan konfigurere til automatisk at starte dine processer på tværs af forventet eller uventet genstart af maskinen. Det understøtter også automatisk genstart af et program, når en fil ændres i det aktuelle bibliotek eller dets underkataloger.

Derudover kommer PM2 med et modulsystem, der giver brugerne mulighed for at oprette brugerdefinerede moduler til Nodejs-processtyring. For eksempel kan du oprette et modul til logrotationsmodul eller belastningsbalancering og meget mere.

Sidst men ikke mindst, hvis du bruger Docker-containere, giver PM2 mulighed for containerintegration og tilbyder et API-system, der giver dig mulighed for at bruge det programmatisk.

StrongLoop PM er også en open source, avanceret produktionsproces manager til Node.js applikationer med indbygget belastningsbalancering ligesom PM2, og den kan bruges via en kommandolinje eller en grafisk grænseflade.

Det understøtter applikationsovervågning (se præstationsmålinger såsom hændelsessløjfe, CPU- og hukommelsesforbrug), implementering af flere hoster, klyngetilstand, applikationer genstartes og nulstilles, automatisk procesgenstart ved fejl og logaggregering og -styring.

Derudover leveres den med Docker-understøttelse, giver dig mulighed for at eksportere præstationsmålinger til StatsD-kompatible servere og se i tredjepartskonsoller som DataDog, Graphite, Splunk samt Syslog og rå logfiler.

3. For evigt

Forever er et open source, simpelt og konfigurerbart kommandolinjegrænseværktøj til at køre et givet script kontinuerligt (for evigt). Det er velegnet til at køre mindre implementeringer af Node.js apps og scripts. Du kan bruge evigt på to måder: gennem kommandolinjen eller ved at indlejre den i din kode.

Det giver dig mulighed for at administrere (start, liste, stop, stop alt, genstart, genstart alt osv.) Node.js-processer, og det understøtter overvågning af filændringer, fejlretningstilstand, applikationslogfiler, dræbning af en proces og afslut signaltilpasning og så meget mere. Derudover understøtter den flere anvendelsesmuligheder, som du kan videregive direkte fra kommandolinjen eller videregive dem i en JSON-fil.

4. SystemD - Service og System Manager

I Linux er Systemd en dæmon, der styrer systemressourcer såsom processer og andre komponenter i filsystemet. Enhver ressource, der administreres af systemd, er kendt som en enhed. Der er forskellige typer enheder inklusive service, enhed, stikkontakt, montering, mål og mange andre enheder.

Systemd administrerer enheder via en konfigurationsfil kendt som en enhedsfil. Derfor er du nødt til at oprette en enhedsfil for at administrere din Node.js-server som alle andre systemtjenester, som i dette tilfælde vil være en servicefil.

Når du har oprettet en servicefil til din Node.js-server, kan du starte den, aktivere den til automatisk start ved systemstarttid, kontrollere dens status, genstarte (stop og start den igen) eller genindlæse dens konfiguration og endda stop det som alle andre systemd-tjenester.

For mere information, se: Sådan oprettes og køres nye serviceenheder i Systemd ved hjælp af Shell Script

En Node.js-pakkehåndtering er et nyttigt værktøj til implementering af dit projekt i et produktionsmiljø. Det holder en applikation i live for evigt og forenkler, hvordan du kan kontrollere den. I denne artikel gennemgik vi fire pakkeforvaltere for Node.js. Hvis du har tilføjelser eller spørgsmål at stille, så brug nedenstående feedbackformular for at nå os.