Il y a quelques semaines, j’écrivais sur mon blog perso un article sur Passenger.
Depuis, la solution a continué de prouver sa stabilité. De plus en plus de grands noms ont basculé leur ancien système vers Apache + Passenger (aka mod_rails).
Ce qui jusque là était considéré comme LA meilleure solution pour héberger des applis Rails – Nginx + Mongrel cluster – est toujours une excellente solution ; rapide, fiable, … mais elle souffre tout de même d’une certaine complexité à laquelle on n’était plus habitué depuis la facilité d’héberger des applis web à base de PHP et consort.
On a démarré neomarco.com sur un système à base de Nginx + Mongrel cluster (entre 5 et 20 process Mongrel selon les moments). Y est adossé un superviseur (Monit) qui s’assure que les process sont bien en vie, les empêche de dépasser un certain seuil de mémoire, les redémarre si besoin, …
Chaque fois qu’on déploie une nouvelle version de l’appli, le cluster redémarre tous les process, Monit hurle que rien ne va plus et nous balance des dizaines de mails (pour de vrai). Il ne fait que son travail, mais là je suis au courant que le cluster redémarre, c’est moi qui ait appuyé sur le bouton
En plus, je suis obligé d’anticiper le nombre de membres dans le cluster ; trop c’est inutile et la ram est prise, pas assez et c’est la file d’attente comme à la Sécu pour les requêtes web. En plus il n’y a pas vraiment d’optimisation, tous les process Mongrel utilisent en Ram tout le code de Rails et de l’appli.
À l’opposé, Passenger (un module pour Apache, pour faire simple et rapide) permet d’éviter tout ça. Les process sont démarrés à la demande par Apache lui-même, la mémoire qui peut être partagée l’est, …
L’avantage c’est qu’en reprenant Apache comme serveur web principal, il redevient très facile d’héberger des applis non Rails, comme des blogs Wordpress, ou des forums, … alors qu’avec Nginx il fallait utiliser PHP en mode FCGI ou bien faire un proxy vers Apache sur un autre port.
Me voilà donc fortement motivé pour repasser mon système sur Apache + Passenger. Ce qui va suivre est un récit progressif (en plusieurs étapes certainement) de cette migration.
La suite : Ruby Entreprise Edition
[...] est là : - préambule - Ruby Entreprise Edition - VirtualHosts - [...]
[...] Insiders « Migration vers Passenger – préambule Migration vers Passenger – épilogue [...]
[...] Insiders « Migration vers Passenger – préambule Migration vers Passenger – VirtualHosts [...]