Node.js le programme d'installation pour faciliter le déploiement et la mise à jour

Nous sommes en train de développer un site web (TYPO3 sous Apache) pour un client qui est pris en charge par un nœud.js/socket.io application qui fournit en temps réel des mises à jour du contenu de la CMS.

Comme c'est notre premier node.js projet je n'ai pas de meilleures pratiques pour aller lorsqu'il s'agit de "la parfait" donc j'ai passé quelques temps à la recherche des techniques de déploiement.

Un couple de questions restent pour moi de réaliser une bonne installation:

  1. Est facile pour le client de déployer. Ceci est très important parce que notre site sera intégré dans leur "live" de TYPO3 installation qui sert une abondance de sites web et est en cours d'exécution sur des serveurs qui ne sont pas gérés par le client, mais d'un autre (centralisé) l'organisation qui fait des appels de soutien et de modifications du serveur, un processus lent.

  2. Devrait être facile à mettre à jour. Comme mentionné demandant le redémarrage de faire des modifications de serveur est un processus lent, donc idéalement le nœud de l'installation doit redémarrer /mise à jour lorsqu'elle reçoit des modifications qui sont poussés sur le live de l'installation à l'aide de git.

Déploiement

La un consensus général semble être d'utiliser forever quand il s'agit de déployer nœud applications pour les garder en cours d'exécution. J'ai testé forever, et il semble bien fonctionner lorsqu'elles sont installées par npm install forever -g (global). Ce serait d'exiger l'assistance extérieure à l'échelle mondiale installer sur le live à l'environnement, donc je préfère qu'elle soit exécutée à partir de l'application node_modules répertoire, mais je n'ai pas été en mesure de créer un solide wrapper pour le faire.

En outre, forever fonctionne très bien, mais il doit être démarré manuellement. Quelle serait la meilleure approche pour s'assurer qu'il obtient commencé sur le serveur de démarrage et continue de fonctionner?

  • Un simple init.d script?
  • L'écriture d'un chien de garde wrapper?
  • Un TYPO3 planificateur de tâche qui vérifie forever statut?

Développement rapide /Redémarrer sur la mise à jour

Nous sommes actuellement dans la phase de développement du projet et à chaque fois que je modifie le node.js application, j'ai redémarrer manuellement node ou forever. Cela fonctionne, mais c'est loin d'être idéale.
Il y a plusieurs petites npm modules qui permettent de rechercher des modifications de fichier et redémarrez node sur les changements détectés, comme:

Quelqu'un a une expérience avec l'un de ces?

Mise à jour: Pourquoi ne pas simplement utiliser les armes?

La Cluster module offre des fonctionnalités similaires à travers le recharger mécanisme, mais ne fonctionne pas avec le Noeud de 0,5+. Le core Cluster module (Nœud de 0,6+) qui l'a remplacé n'a pas toutes ces fonctionnalités, mais ne fournit de clustering. Qui à son tour ne joue pas bien avec la prise.io. Au moins non sans l'aide de Redis (qui est un problème pour nous, car on ne peut pas forcer une autre prereq service à la clientèle).

--

Évidemment j'essaie de trouver le plus stable de la solution qui allie la mise à jour de redémarrage avec forever avant de remettre le projet au client et j'espère vraiment que quelqu'un a produit une combinaison éprouvée des techniques.

  • et à personne d'autre de la pensée de Groupe: il n'a pas été mis à jour dans les trois dernières années.
InformationsquelleAutor Rem.co | 2012-06-18