
Gestionnaire de processus Node
Gratuit
PM2 est un gestionnaire de processus de qualité production pour les applications Node.js, conçu pour garantir une haute disponibilité et des performances optimales. Contrairement aux simples exécuteurs de processus, PM2 intègre un équilibreur de charge, des rechargements sans interruption (zero-downtime) et une gestion complète des logs. Il gère de manière unique le cycle de vie des processus, incluant le redémarrage automatique en cas de crash ou de redémarrage système. En exploitant le module cluster de Node.js, il permet aux développeurs de scaler leurs applications sur tous les cœurs CPU disponibles sans modifier le code. C'est le standard de l'industrie pour les ingénieurs DevOps et les développeurs backend gérant des environnements Node.js en production.
PM2 permet le rechargement à chaud des applications sans interrompre les connexions entrantes. En utilisant le module cluster, il recharge les processus un par un, garantissant que l'application reste disponible pour les utilisateurs lors des déploiements. Cela élimine le besoin de fenêtres de maintenance et évite les interruptions de service lors de l'exécution des pipelines CI/CD, ce qui est crucial pour les environnements de production à fort trafic.
L'équilibreur de charge intégré distribue les requêtes HTTP/HTTPS entrantes sur toutes les instances d'application générées. En exploitant le module cluster de Node.js, PM2 maximise l'utilisation du CPU sur les serveurs multi-cœurs. Cela permet à une seule application Node.js de gérer des volumes de requêtes simultanées nettement plus élevés par rapport à une instance monothread, augmentant ainsi les performances horizontalement sur une seule machine.
PM2 fournit un tableau de bord centralisé pour la surveillance en temps réel de l'utilisation du CPU et de la mémoire par processus. Il agrège les logs de plusieurs instances dans un flux unique, simplifiant le débogage et le suivi des erreurs. Les utilisateurs peuvent accéder aux logs via 'pm2 logs' ou les rediriger vers des agrégateurs externes, offrant une visibilité sur la santé de l'application et les goulots d'étranglement sans avoir besoin de se connecter en SSH aux conteneurs individuels.
PM2 surveille la santé de l'application et redémarre automatiquement les processus s'ils plantent en raison d'exceptions non gérées ou de fuites de mémoire. Cette capacité 'toujours actif' garantit que les services se rétablissent instantanément sans intervention manuelle. En maintenant une liste de processus persistante, PM2 garantit que les services backend critiques restent opérationnels même après des redémarrages de serveur ou des pannes système inattendues.
PM2 prend en charge un écosystème robuste, incluant PM2 Plus pour une surveillance avancée, des alertes et une gestion multi-serveurs. Il s'intègre parfaitement aux outils CI/CD comme Jenkins, GitHub Actions et GitLab CI, permettant des flux de déploiement automatisés. Son approche de configuration en tant que code, utilisant des fichiers ecosystem.config.js, garantit que les variables d'environnement et les paramètres de déploiement sont versionnés et cohérents entre les environnements de développement, de staging et de production.
Les développeurs backend utilisent PM2 pour scaler les API Node.js sur tous les cœurs CPU. En utilisant le mode cluster, ils s'assurent que l'API gère des milliers de requêtes simultanées, maintenant une faible latence et un débit élevé tout en redémarrant automatiquement toute instance défaillante sous une charge importante.
Les équipes DevOps gèrent des architectures de microservices complexes en définissant plusieurs services dans un seul fichier de configuration PM2. Cela leur permet de démarrer, arrêter et surveiller des dizaines de services indépendants depuis une seule interface, garantissant des modèles de déploiement cohérents sur toute l'infrastructure.
Les administrateurs système utilisent PM2 pour encapsuler des scripts Node.js hérités qui manquent de gestion de processus intégrée. PM2 fournit à ces scripts des fonctionnalités modernes comme les redémarrages automatiques, la rotation des logs et la persistance au démarrage, prolongeant la durée de vie et la fiabilité des anciennes applications sans nécessiter de refactorisation de code.
Ont besoin d'outils fiables pour gérer les cycles de vie des applications, assurer des déploiements sans interruption et maintenir la stabilité du système sur les clusters de production.
Nécessitent un moyen simple et efficace d'exécuter, de scaler et de surveiller les applications Node.js pendant le développement et la production sans orchestration de conteneurs complexe.
Se concentrent sur le temps de disponibilité des serveurs et la gestion des ressources, ayant besoin d'outils qui automatisent la récupération des processus et offrent une visibilité claire sur la consommation des ressources.
Open source (licence AGPL-3.0). PM2 lui-même est gratuit ; l'entreprise (Keymetrics) propose des services payants de surveillance et de gestion SaaS.