PM2 : gestionnaire de processus multi-plateforme

par Jean-François Garcia

Quand on déploie une application, il est souvent nécessaire de maintenir le fonctionnement de nos logiciels 24/7, même en cas d’erreur.

Si nous prenons les précautions habituelles pour gérer les problématiques d’erreurs et d’exceptions dès la conception, il est parfois plus sécurisant de monitorer nos applications avec un système surveillant leur fonctionnement.

PM2 est là pour vous ! PM2 est un manageur de processus.

Basé sur Node.js (>= V8) qui doit être installé sur votre système, PM2 est un outil en ligne de commande permettant la gestion de vos applications supervisées.

La solution open-source, le runtime, permet un contrôle de vos processus. Différentes options de démarrage et de redémarrage automatique sont disponibles.

PM2 lance et supervise vos applications de tout type, que ce soit des scripts Python, Node.js, ou des application sous forme binaire, packagée, etc…

PM2 a aussi l’avantage de disposer d’un module exporteur pour fournir des métriques sur les processus supervisés à Prometheus. De cette manière via Grafana, par exemple, vous pouvez définir des dashboards et surtout des alertes pour vous avertir des évènements anormaux sur vos processus (ressources mémoires, CPU, nombre de redémarrage).

PM2 permet également de créer des clusters et de gérer automatiquement du Load Balancing sur les flux HTTP/TCP/UDP entre les processus d’un même cluster.

Le moteur de surveillance (PM2 Runtime) est en open source, et accessible sur GitHub 

Son installation se fait via npm.

Etant donné que PM2 est basé sur Node.js, il est compatible tout OS, Linux / Windows / MacOS. Il peut même fonctionner sans problème sur les cartes RaspberryPi.  

Parallèlement à la version gratuite, PM2 peut également être géré à distance via PM2 Monitor (offres appelées PM2 Plus et PM2 entreprise) en solution payante (une version gratuite en démo avec un nombre limité de processus).

Via une interface Web, il surveille vos applications, vous fournit des dashboards détaillés et des informations sur l’état de santé de vos processus, vous affiche les journaux de vos applications (oui oui, c’est possible), les pilote à distance et vous envoie des alertes en cas de problème identifié.

N’hésitez pas à tester cette solution, très pratique, stable et peu gourmande en ressources. La documentation disponible sur le site est claire et complète. Le petit plus pour les débutants avec PM2 est l’aide en ligne lors de l’installation (petit guide de démarrage rapide fourni dans le terminal)

Une grille d’articles responsive

par Jean-Philippe Thevenoux

Depuis que les CSS Grid sont disponibles sur quasi tous les navigateurs, leurs usages se sont démocratisés. On a vu fleurir plusieurs exemples de layout, ainsi que des guides complets. En parallèle de cela, de plus en plus de sites présentent leurs articles sous une forme “journalistique” avec des blocs côte à côte de différentes tailles. Cet article montre comment faire cette présentation avec cette technique, et le tout en très peu de lignes, et pour un résultat responsive.

https://css-tricks.com/responsive-grid-magazine-layout-in-just-20-lines-of-css/ 

Babel 7.9.0

par Thomas Broyer

La version 7.9.0 de Babel est parue avec pour principales nouveautés le support de TypeScript 3.8 (et ses imports et exports de types uniquement), et surtout (de mon point de vue) l’intégration du plugin preset-modules, que nous évoquions il y a quelques mois, dans le plugin preset-env (derrière un flag pour le moment). On notera également que les développeurs de Babel travaillent conjointement avec l’équipe de React pour proposer une nouvelle version de la transformation JSX dans le but de simplifier React et d’améliorer les performances au runtime.

Les monolithes sont le futur

par Thomas Broyer

L’article est paru il y a bientôt 2 mois mais j’ai raté la deadline le mois dernier 😉. C’est un de ces nombreux articles qui nous mettent en garde contre la pensée magique selon laquelle les microservices vont vous sauver de tous les maux de votre architecture actuelle (ceci alors que Melvin Conway nous alertait dès 1967 que votre problème est alors d’ordre organisationnel/structurel, et non technique). Là où c’est particulièrement intéressant, c’est que son auteur est Kelsey Hightower, un developer advocate chez Google dont la spécialité est… Kubernetes et les microservices ! Précisons donc simplement qu’il n’y a pas d’architecture one-size-fits-all, celle-ci doit être réfléchie pour chaque projet, et modifiée si besoin en fonction de l’évolution du cahier des charges.