PM2 est un gestionnaire de processus pour Node.js et les applications JavaScript. Il permet de garder les applications en cours d’exécution en permanence, de recharger sans temps d’arrêt, de faciliter le suivi des erreurs courantes et des statistiques de performances, et d’effectuer la gestion des logs.
« PM2 » est un acronyme de « Process Manager 2 ». Il est particulièrement utile dans une environnement de production. Avec PM2, nous pouvons contrôler facilement nos applications, les recharger sans temps d’arrêt, surveiller automatiquement leurs erreurs et obtenir un tableau de bord basique pour voir leur état. Il est particulièrement pratique pour les serveurs d’API :
- Gestion du redémarrage automatique : Si notre serveur d’API rencontre une erreur et s’arrête, PM2 peut le redémarrer automatiquement, garantissant ainsi la disponibilité continue de notre API.
- Gestion des logs : PM2 collecte les logs de toutes les instances de notre application en un seul endroit, ce qui facilite le débogage et le suivi des erreurs.
- Surveillance des performances : PM2 fournit des outils pour surveiller l’utilisation de la mémoire, le CPU et d’autres statistiques importantes pour notre API.
- Mise à jour à chaud : PM2 nous permet de mettre à jour notre application sans temps d’arrêt, ce qui est crucial pour un serveur d’API qui doit être disponible 24/7.
D’autres fonctionnalités permettent d’utiliser PM2 pour gérer des clusters :
- Gestion des processus en cluster : PM2 peut gérer le clustering, permettant à notre API de tirer parti de plusieurs processeurs et d’améliorer ainsi la performance et la résilience de notre serveur. Si une instance de notre application rencontre une erreur, les autres instances continuent à fonctionner.
- Équilibrage de charge : En conjonction avec le clustering, PM2 gère également l’équilibrage de charge. Cela signifie que les demandes d’API sont réparties entre différentes instances de notre application, ce qui peut améliorer les performances.
Toutes ces caractéristiques font de PM2 un outil précieux pour la gestion des serveurs d’API. Il aide à maintenir la disponibilité et les performances de l’API tout en simplifiant le processus de débogage et de surveillance.
Pour démarrer une application avec PM2, nous avons d’abord besoin d’installer PM2 sur notre système. Nous pouvons l’installer en utilisant npm (le gestionnaire de paquets de Node.js) avec la commande suivante :
npm install -g pm2
Une fois que PM2 est installé, nous pouvons démarrer une application. Par exemple, si nous avons une application Node.js appelée app.js
, nous pouvons la démarrer avec PM2 de cette façon :
pm2 start app.js
Cela démarre notre application en tant que processus géré par PM2, ce qui signifie que PM2 redémarrera automatiquement l’application si elle s’arrête pour une raison quelconque. Nous pouvons également donner un nom à notre processus en utilisant l’option --name
. Par exemple :
pm2 start app.js --name "our-app"
Pour vérifier l’état de notre application, nous pouvons utiliser la commande pm2 list
ou son alias pm2 status
, qui affiche une liste de tous les processus actuellement gérés par PM2.
pm2 list
pm2 status
Si nous voulons voir des informations plus détaillées sur un processus spécifique, nous pouvons utiliser la commande pm2 show
suivie du nom de notre processus :
pm2 show our-app
Pour redémarrer une application nous pouvons utiliser la commande suivante, après avoir fait un git pull
par exemple :
pm2 restart our-app
ou :
pm2 restart 0 // 0 = id du processus renvoyé par pm2 status
Enfin, il est à souligner que même si PM2 possède la capacité de resusciter continuellement de leurs cendres nos applications en cas de plantage, une surveillance constante et une consultation régulière des journaux d’événements restent essentielles, car les incidents de plantage deviennent de fait moins visibles.
PM2 propose de nombreuses autres fonctionnalités dont la documentation est accessible ici.
Laisser un commentaire