Bootcamp i backendutvikling med Node.js · leksjon

Prosessadministrasjon med PM2

Lær å bruke PM2 til å administrere, overvåke og skalere Node.js-applikasjoner i produksjonsmiljøer.

Leksjon 3 av 412 trinn

Prosessadministrasjon med PM2 er en gratis leksjon i Bootcamp i backendutvikling med Node.js på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med Node.js, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.

Hva er PM2

Velkommen til prosessadministrasjon med PM2! PM2 står for Process Manager 2 og er et kraftig verktøy for Node.js-applikasjoner.

I produksjon må applikasjonen kjøre pålitelig, starte på nytt hvis den krasjer og utnytte serverressursene effektivt. PM2 håndterer alt dette.

  • Holde i gang: Starter appen automatisk på nytt hvis den krasjer.
  • Overvåking: Gir innsikt i appens ytelse.
  • Skalering: Gjør det enkelt å kjøre flere instanser av appen for bedre ytelse.

Installere PM2 globalt

Det er enkelt å komme i gang med PM2. De installerer det globalt ved hjelp av npm, slik at det er tilgjengelig som et kommandolinjeverktøy på systemet.

Åpne terminalen og kjør følgende kommando:

npm install -g pm2

Denne kommandoen installerer PM2 CLI (Command Line Interface) globalt, slik at De kan bruke pm2-kommandoer fra hvilken som helst katalog.

Starte den første appen

Når PM2 er installert, kan De starte enhver Node.js-applikasjon med en enkel kommando. PM2 holder den kjørende i bakgrunnen, selv om terminalen lukkes!

Først ser De her en grunnleggende Node.js-server:

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello from PM2!\n');
});

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

Starte med PM2

For å starte serveren fra forrige scene (la oss si at den er lagret som app.js) med PM2, kjører De:

pm2 start app.js --name my-first-app

Flagget --name gir prosessen en lett gjenkjennelig identifikator. PM2 viser deretter den kjørende applikasjonen med status, oppetid og andre detaljer.

Hvis appen krasjer, starter PM2 den automatisk på nytt, slik at den forblir svært tilgjengelig!

Overvåke prosessene

PM2 tilbyr gode verktøy for å overvåke kjørende applikasjoner. De kan raskt se en liste over alle administrerte prosesser og statusene deres.

  • pm2 list: Viser en tabell over alle prosesser som administreres av PM2, inkludert ID, navn, status, CPU-bruk, minnebruk og oppetid.
  • pm2 monit: Gir en oversikt som ligner et kontrollpanel i terminalen, med sanntidsdata for CPU, minne og logger for alle applikasjonene. Dette er nyttig for raske helsesjekker.

Stoppe og starte apper på nytt

Det er enkelt å administrere livssyklusen til applikasjonene med PM2. De kan stoppe, starte på nytt eller slette prosesser ved hjelp av navnet eller ID-en deres.

  • pm2 stop my-first-app: Stopper applikasjonen med navnet «my-first-app».
  • pm2 restart my-first-app: Starter applikasjonen på nytt. Nyttig etter kodeendringer.
  • pm2 delete my-first-app: Stopper applikasjonen og fjerner den fra PM2s prosessliste.
  • pm2 stop all: Stopper alle kjørende applikasjoner som administreres av PM2.

Disse kommandoene gir Dem full kontroll over de distribuerte Node.js-tjenestene.

Bruke en konfigurasjonsfil

For mer komplekse oppsett eller administrasjon av flere applikasjoner kan De bruke en konfigurasjonsfil (f.eks. ecosystem.config.js) med PM2. Denne filen definerer applikasjoner, miljøvariabler og andre innstillinger.

Her er en enkel app som demonstrasjon:

const http = require('http');
const port = process.env.PORT || 3001;

http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end(`Hello from config app on port ${port} (PID: ${process.pid})!\n`);
}).listen(port, () => {
  console.log(`Config demo server running on port ${port}`);
});

Eksempel på ecosystem-konfigurasjon

La oss nå definere en ecosystem.config.js for å administrere denne appen:

module.exports = {
  apps : [{
    name: "my-config-app",
    script: "app-config-demo.js",
    instances: 1,
    exec_mode: "fork",
    env: {
      NODE_ENV: "development",
      PORT: 3001
    },
    env_production: {
      NODE_ENV: "production",
      PORT: 80
    }
  }]
};

For å starte denne appen ved hjelp av konfigurasjonsfilen kjører De: pm2 start ecosystem.config.js. Dette er nyttig for versjonskontroll og konsistente distribusjoner.

Skalere med klyngemodus

Node.js bruker én tråd, men moderne servere har flere CPU-kjerner. PM2s klyngemodus gjør det mulig å kjøre flere instanser av appen og fordele belastningen på alle tilgjengelige kjerner.

Her er en enkel app som viser prosess-ID-en:

const http = require('http');
const process = require('process');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end(`Hello from instance ${process.pid}!\n`);
});

const PORT = 3002;
server.listen(PORT, () => {
  console.log(`Cluster server ${process.pid} running on port ${PORT}`);
});

Kjøre i klyngemodus

For å starte appen fra forrige scene (f.eks. app-cluster.js) i cluster-modus kan du bruke:

pm2 start app-cluster.js -i max

Flagget -i max forteller PM2 å starte like mange instanser som CPU-en har kjerner. PM2 fungerer deretter som en lastbalanserer og fordeler innkommende forespørsler mellom disse instansene. Dette forbedrer ytelsen og robustheten betydelig.

Rask sjekk av PM2

Du har lært hvordan du administrerer, overvåker og skalerer Node.js-applikasjoner med PM2. La oss teste forståelsen din!

Oppsummering og neste steg

Godt jobbet! Du har lært det grunnleggende om prosessadministrasjon med PM2.

PM2 er et viktig verktøy for å distribuere og vedlikeholde Node.js-applikasjoner i produksjon. Det tilbyr funksjoner som automatiske omstarter, overvåking og enkel skalering gjennom clustering.

Fortsett å utforske dokumentasjonen til PM2 for mer avanserte funksjoner, for eksempel loggadministrasjon, oppstartsskript og egendefinerte måleverdier. Lykke til med utrullingen!

Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
22
Leksjoner
92

Ofte stilte spørsmål

Er leksjonen «Prosessadministrasjon med PM2» gratis?

Ja – hele teksten i «Prosessadministrasjon med PM2» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bootcamp i backendutvikling med Node.js-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.

Hva lærer jeg i «Prosessadministrasjon med PM2»?

Lær å bruke PM2 til å administrere, overvåke og skalere Node.js-applikasjoner i produksjonsmiljøer. Du øver på Bootcamp i backendutvikling med Node.js med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Bootcamp i backendutvikling med Node.js?

Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med Node.js på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Prosessadministrasjon med PM2»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Bootcamp i backendutvikling med Node.js-leksjonen?

Ja. Alle Bootcamp i backendutvikling med Node.js-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Containerisering med Docker
  2. Skylldistribusjon (AWS/Heroku)
  3. Prosessadministrasjon med PM2
  4. CI/CD-pipelines med GitHub Actions
← Tilbake til Bootcamp i backendutvikling med Node.js