Bonjour les gens,
Je prépare un serveur Debian Wheezy pour Node.js qui va héberger plusieurs applications Express. Le déploiement se fera progressivement. J'ai mis en place nginx avec une config reverse proxy pour gérer le contenu statique, les applis node et les websockets. A priori chaque application node sera indépendante des autres (un serveur node sur port dédié pour chacune d'elles). Il faut maintenant que je prépare la mise en prod progressive des applis node.
Comment feriez vous pour gérer de façon souple/simple l'ajout, le démarrage et le monitoring (pourquoi pas) de ce genre d'applis dans le système ?
J'ai cherché, mais il y a plein de solutions différentes, scripts LSB, upstart, monit avec forever, je ne sais pas vraiment laquelle choisir. Un petit retour de votre expérience serait le bienvenu.
Salut,
J'utilise supervisord pour faciliter la gestion des nodes et ça marche bien, par contre, c'est assez chiant à ajouter des nodes la premières fois, mais après c'est limite du copier/coller.
Cdlt, Jonathan bartoua Schneider
Le 27 août 2013 15:58, Artur frsag@pydo.org a écrit :
Bonjour les gens,
Je prépare un serveur Debian Wheezy pour Node.js qui va héberger plusieurs applications Express. Le déploiement se fera progressivement. J'ai mis en place nginx avec une config reverse proxy pour gérer le contenu statique, les applis node et les websockets. A priori chaque application node sera indépendante des autres (un serveur node sur port dédié pour chacune d'elles). Il faut maintenant que je prépare la mise en prod progressive des applis node.
Comment feriez vous pour gérer de façon souple/simple l'ajout, le démarrage et le monitoring (pourquoi pas) de ce genre d'applis dans le système ?
J'ai cherché, mais il y a plein de solutions différentes, scripts LSB, upstart, monit avec forever, je ne sais pas vraiment laquelle choisir. Un petit retour de votre expérience serait le bienvenu.
-- Cordialement, Artur.
Liste de diffusion du FRsAG http://www.frsag.org/
Tu peux les lancer par exemple avec supervisord ou circusd si tu veux un peu plus évolué https://circus.readthedocs.org/en/latest/ .
Le 27 août 2013 15:58, Artur frsag@pydo.org a écrit :
Bonjour les gens,
Je prépare un serveur Debian Wheezy pour Node.js qui va héberger plusieurs applications Express. Le déploiement se fera progressivement. J'ai mis en place nginx avec une config reverse proxy pour gérer le contenu statique, les applis node et les websockets. A priori chaque application node sera indépendante des autres (un serveur node sur port dédié pour chacune d'elles). Il faut maintenant que je prépare la mise en prod progressive des applis node.
Comment feriez vous pour gérer de façon souple/simple l'ajout, le démarrage et le monitoring (pourquoi pas) de ce genre d'applis dans le système ?
J'ai cherché, mais il y a plein de solutions différentes, scripts LSB, upstart, monit avec forever, je ne sais pas vraiment laquelle choisir. Un petit retour de votre expérience serait le bienvenu.
-- Cordialement, Artur.
Liste de diffusion du FRsAG http://www.frsag.org/
A savoir que supervisord redémarre tous les process fils lorsqu'on fait un reload de la conf (même si la modif n'impacte pas les process en question ou si c'est juste une modif de cosmétique).
C'est assez pénible.
JFB
Le 27 août 2013 à 16:07, seb astien a écrit :
Tu peux les lancer par exemple avec supervisord ou circusd si tu veux un peu plus évolué https://circus.readthedocs.org/en/latest/ .
Le 27 août 2013 15:58, Artur frsag@pydo.org a écrit : Bonjour les gens,
Je prépare un serveur Debian Wheezy pour Node.js qui va héberger plusieurs applications Express. Le déploiement se fera progressivement. J'ai mis en place nginx avec une config reverse proxy pour gérer le contenu statique, les applis node et les websockets. A priori chaque application node sera indépendante des autres (un serveur node sur port dédié pour chacune d'elles). Il faut maintenant que je prépare la mise en prod progressive des applis node.
Comment feriez vous pour gérer de façon souple/simple l'ajout, le démarrage et le monitoring (pourquoi pas) de ce genre d'applis dans le système ?
J'ai cherché, mais il y a plein de solutions différentes, scripts LSB, upstart, monit avec forever, je ne sais pas vraiment laquelle choisir. Un petit retour de votre expérience serait le bienvenu.
-- Cordialement, Artur.
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Salut,
Le 27 août 2013 16:22, JF Bustarret jf@bustarret.com a écrit :
A savoir que supervisord redémarre tous les process fils lorsqu'on fait un reload de la conf (même si la modif n'impacte pas les process en question ou si c'est juste une modif de cosmétique).
C'est assez pénible.
JFB
Tiens moi j'ai un "souci différent". Je lance via supervisor des .sh qui lance eux même des -jar. Le .sh est très simple et contient java -jar machin.jar $@.
Mais forcément, quand je restart le process via supervisor, ça ne restart que le sh et je me retrouve avec deux process jar, alors que je voulais restart le jar.
On 2013-08-27 16:39:29 +0200, seb astien wrote:
Tiens moi j'ai un "souci différent". Je lance via supervisor des .sh qui lance eux même des -jar. Le .sh est très simple et contient java -jar machin.jar $@.
Mais forcément, quand je restart le process via supervisor, ça ne restart que le sh et je me retrouve avec deux process jar, alors que je voulais restart le jar.
Je ne connais pas supervisor, mais j'imagine qu'on peut lui indiquer où aller chercher le pid souhaité (dans un fichier), et inclure cette logique dans le script shell ($$).
Par défaut il détermine peut-être le pid du premier processus (le script shell) comme étant le processus à gérer. S'il n'est pas requis de démarrer un nouveau processus, il est peut-être plus simple de modifier le script pour remplacer le shell courant plutôt que de forker :
#!/usr/bin/env sh
exec java -jar machin.jar $@
Mais du coup le script devient plutôt inutile, autant lancer la programme java directement depuis supervisor peut-être ?
Ou utiliser flock pour éviter de lancer deux fois un même process/outil. Par exemple "flock -n /var/lock/myapp -c /path/to/myapp" ne va executer l'appli que si le lockfile n'est pas déjà existant et ouvert.
Le 27/08/2013 20:09, Thibault Jouan a écrit :
On 2013-08-27 16:39:29 +0200, seb astien wrote:
Tiens moi j'ai un "souci différent". Je lance via supervisor des .sh qui lance eux même des -jar. Le .sh est très simple et contient java -jar machin.jar $@.
Mais forcément, quand je restart le process via supervisor, ça ne restart que le sh et je me retrouve avec deux process jar, alors que je voulais restart le jar.
Je ne connais pas supervisor, mais j'imagine qu'on peut lui indiquer où aller chercher le pid souhaité (dans un fichier), et inclure cette logique dans le script shell ($$).
Par défaut il détermine peut-être le pid du premier processus (le script shell) comme étant le processus à gérer. S'il n'est pas requis de démarrer un nouveau processus, il est peut-être plus simple de modifier le script pour remplacer le shell courant plutôt que de forker :
#!/usr/bin/env sh
exec java -jar machin.jar $@
Mais du coup le script devient plutôt inutile, autant lancer la programme java directement depuis supervisor peut-être ?
Ah, merci. J'étais juste en train de chercher des infos sur ce point. Effectivement ce n'est pas top du tout. Je cherche une solution qui permettrait de rajouter une nouvelle appli dans la config et de la démarrer/monitorer sans perturber le reste.
Le 27/08/2013 16:22, JF Bustarret a écrit :
A savoir que supervisord redémarre tous les process fils lorsqu'on fait un reload de la conf (même si la modif n'impacte pas les process en question ou si c'est juste une modif de cosmétique).
C'est assez pénible.
JFB
Le 27 août 2013 à 16:07, seb astien a écrit :
Tu peux les lancer par exemple avec supervisord ou circusd si tu veux un peu plus évolué https://circus.readthedocs.org/en/latest/ .
Le 27 août 2013 15:58, Artur <frsag@pydo.org mailto:frsag@pydo.org> a écrit :
Bonjour les gens, Je prépare un serveur Debian Wheezy pour Node.js qui va héberger plusieurs applications Express. Le déploiement se fera progressivement. J'ai mis en place nginx avec une config reverse proxy pour gérer le contenu statique, les applis node et les websockets. A priori chaque application node sera indépendante des autres (un serveur node sur port dédié pour chacune d'elles). Il faut maintenant que je prépare la mise en prod progressive des applis node. Comment feriez vous pour gérer de façon souple/simple l'ajout, le démarrage et le monitoring (pourquoi pas) de ce genre d'applis dans le système ? J'ai cherché, mais il y a plein de solutions différentes, scripts LSB, upstart, monit avec forever, je ne sais pas vraiment laquelle choisir. Un petit retour de votre expérience serait le bienvenu. -- Cordialement, Artur. _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/