Cette traduction fournie par StrongLoop / IBM.

Il se peut que ce document soit obsolÚte par rapport à la documentation en anglais. Pour connaßtre les mises à jour les plus récentes, reportez-vous à la documentation en anglais.

✖

Gestionnaires de processus pour les applications Express

Quand vous exĂ©cutez l’application Express pour la production, utilisez un gestionnaire de processus car celui-ci peut vous permettre :

Un gestionnaire de processus est quelque sorte un “conteneur” d’applications qui facilite le dĂ©ploiement, offre une haute disponibilitĂ© et vous permet de gĂ©rer l’application lors de son exĂ©cution.

Les gestionnaires de processus les plus populaires pour Express et d’autres applications Node.js sont les suivants :

L’utilisation d’un de ces trois outils peut ĂȘtre trĂšs utile, cependant le gestionnaire de processus StrongLoop est le seul qui fournisse un dĂ©lai d’exĂ©cution exhaustif ainsi qu’une solution de dĂ©ploiement qui s’adresse Ă  l’intĂ©gralitĂ© du cycle de vie de l’application, avec des outils pour chaque Ă©tape avant et aprĂšs la production, le tout dans une interface unifiĂ©e.

Voici un bref aperçu de chacun de ces outils. Pour une comparaison détaillée, voir http://strong-pm.io/compare/.

StrongLoop Process Manager

Le gestionnaire de processus StrongLoop (StrongLoop PM) est un gestionnaire de processus de production pour les applications Node.js. StrongLoop PM possĂšde un Ă©quilibrage de charge, une surveillance et un dĂ©ploiement multi-hĂŽte, ainsi qu’une console graphique intĂ©grĂ©s. Vous pouvez utiliser StrongLoop PM pour les tĂąches suivantes :

Vous pouvez utiliser StrongLoop PM en passant par un puissant outil d’interface de ligne de commande appelĂ© slc, ou un outil graphique appelĂ© Arc. Arc est un code source ouvert, avec une prise en charge professionnelle fournie par StrongLoop.

Pour plus d’informations, voir http://strong-pm.io/.

Documentation complĂšte :

Installation

$ [sudo] npm install -g strongloop

Utilisation de base

$ cd my-app
$ slc start

Afficher le statut du gestionnaire de processus ainsi que de toutes les applications déployées :

$ slc ctl
Service ID: 1
Service Name: my-app
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Cluster size
     4.1.13      1.5.14           4
Processes:
        ID      PID   WID  Listening Ports  Tracking objects?  CPU profiling?
    1.1.57692  57692   0
    1.1.57693  57693   1     0.0.0.0:3001
    1.1.57694  57694   2     0.0.0.0:3001
    1.1.57695  57695   3     0.0.0.0:3001
    1.1.57696  57696   4     0.0.0.0:3001

Lister toutes les applications (services) sous gestion :

$ slc ctl ls
Id          Name         Scale
 1          my-app       1

ArrĂȘter une application :

$ slc ctl stop my-app

Redémarrer une application :

$ slc ctl restart my-app

Vous pouvez Ă©galement “redĂ©marrer en douceur”, ce qui donne aux processus de traitement un dĂ©lai supplĂ©mentaire afin de fermer les connexions existantes, et permet un redĂ©marrage des applications en cours :

$ slc ctl soft-restart my-app

Supprimer une application de la gestion :

$ slc ctl remove my-app

PM2

PM2 est un gestionnaire de processus de production pour les applications Node.js, qui possĂšde un Ă©quilibreur de charge intĂ©grĂ©. PM2 vous permet de conserver des applications avec une durĂ©e de vie illimitĂ©e et de les recharger sans temps d’arrĂȘt, ce qui facilite les tĂąches de l’administrateur systĂšme commun. PM2 vous permet Ă©galement de gĂ©rer la journalisation, la surveillance et le regroupement de l’application.

Pour plus d’informations, voir https://github.com/Unitech/pm2.

Installation

$ [sudo] npm install pm2 -g

Utilisation de base

Quand vous dĂ©marrez une application en utilisant la commande pm2 vous devez indiquer le chemin d’accĂšs de l’application. Cependant, quand vous arrĂȘtez, redĂ©marrez ou supprimez une application, vous pouvez n’indiquer que le nom ou l’ID de l’application.

$ pm2 start npm --name my-app -- start
[PM2] restartProcessId process id 0
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────┌────┌──────┌───────┌────────┌─────────┌────────┌─────────────┌───────────
│ my-app   │ 0  │ fork │ 64029 │ online │ 1       │ 0s     │ 17.816 MB   │ disabled │
└──────────┮────┮──────┮───────┮────────┮─────────┮────────┮─────────────┮──────────┘
 Use the `pm2 show <id|name>` command to get more details about an app.

Quand vous dĂ©marrez une application Ă  l’aide de la commande pm2, l’application est immĂ©diatement envoyĂ©e en arriĂšre-plan. Vous pouvez contrĂŽler l’application en arriĂšre-plan Ă  partir de la ligne de commande en utilisant diverses commandes pm2.

AprĂšs qu’une application a Ă©tĂ© dĂ©marrĂ©e en utilisant la commande pm2, elle est enregistrĂ©e dans la liste de processus de PM2 avec un ID. Vous pouvez donc gĂ©rer les applications avec le mĂȘme nom Ă  partir de rĂ©pertoires diffĂ©rents dans le systĂšme, en utilisant leurs ID.

Notez que si plusieurs application avec le mĂȘme nom sont en cours d’exĂ©cution, les commandes pm2 les affecteront toutes. Il vaut donc mieux utiliser les ID plutĂŽt que les noms pour gĂ©rer les applications individuelles.

Lister tous les processus en cours :

$ pm2 list

ArrĂȘter une application :

$ pm2 stop 0

Redémarrer une application :

$ pm2 restart 0

Pour afficher les informations dĂ©taillĂ©es d’une application :

$ pm2 show 0

Pour supprimer une application du registre PM2 :

$ pm2 delete 0

Forever

Forever est un simple outil d’interface de ligne de commande qui permet de s’assurer qu’un script donnĂ© est exĂ©cutĂ© de façon continue (forever). L’interface simple de Forever en fait un outil idĂ©al pour exĂ©cuter des dĂ©ploiements plus petits des applications et des scripts de Node.jps.

Pour plus d’informations, voir https://github.com/foreverjs/forever.

Installation

$ [sudo] npm install forever -g

Utilisation de base

Pour dĂ©marrer un script, utilisez la commande forever start et indiquez le chemin d’accĂšs du script :

$ forever start script.js

Cette commande exĂ©cutera le script en mode dĂ©mon (Ă  l’arriĂšre-plan).

Pour exĂ©cuter le script de façon Ă  ce qu’il soit joint au terminal, il ne faut pas prendre en compte start :

$ forever script.js

C’est une bonne idĂ©e de consigner votre sortie du script et de l’outil Forever en utilisant les options de consignation -l, -o et -e, comme illustrĂ© dans l’exemple suivant :

$ forever start -l forever.log -o out.log -e err.log script.js

Pour visualiser la liste des scripts qui ont été démarrés par Forever :

$ forever list

Pour arrĂȘter un script qui a Ă©tĂ© dĂ©marrĂ© par Forever, utilisez la commande forever stop et indiquez l’index de processus (tel qu’il est listĂ© par la commande forever list).

$ forever stop 1

Sinon, indiquez le chemin d’accùs du fichier :

$ forever stop script.js

Pour arrĂȘter tous les scripts qui ont Ă©tĂ© dĂ©marrĂ©s par Forever :

$ forever stopall

Forever possĂšde beaucoup d’autres options, et il fournit Ă©galement une API programmable.