Migration vers Passenger – Ruby Entreprise Edition « Neomarco Insiders

Migration vers Passenger – Ruby Entreprise Edition

Cet article est le second dans la série “Migration vers Passenger” dont vous pouvez commencer par le préambule.

L’utilisation de Passenger ne nécessite rien d’autre qu’Apache, mais il a été développé par une équipe qui a aussi travaillé à un fork de Ruby basé sur la version 1.8.6 officielle. On peut trouver tous les détails sur leur site. En gros c’est une série d’améliorations au niveau du “garbage collector” et de l’allocation mémoire. Ils prétendent qu’une application Ruby on Rails consomme 33% de mémoire en moins avec Passenger et REE qu’avec la machine Ruby officielle (MRI).

Bon, ben vu qu’on va utiliser Passenger et que la version Debian Etch de Ruby est assez ancienne (1.8.5), pourquoi pas utiliser aussi une version optimisée de Ruby.

Étant un utilisateur convaincu de Debian, j’ai pas trop envie d’utiliser des paquets compilés manuellement. Je préfère utiliser Apt pour gérer mes logiciels ou librairies installées, mais là il faut avouer que l’installation de REE est très simple et rassurante.

On télécharge les sources compressées et on lance simplement un script d’install qui se charge de tout avec un miminum de questions. Il installe par défaut le tout dans le dossier /opt/ pour respecter les conventions et il n’a besoin d’aucune dépendance externe.

Il faut ensuite indiquer à Passenger quelle version de Ruby utiliser. Là encore, l’install nous donne un bout de texte à copier/coller dans la config de Passenger.

Pour ce que j’ai pu en tester, ça a l’air de très bien fonctionner jusque là. J’ai même l’impression que les applis vont plus vite. Je ne sais pas encore précisément si c’est vrai ou pas, ni si c’est dû à la version de Ruby (1.8.6 au lieu de 1.8.5), à REE en soi, ou bien au remplacement de Nginx/Mongrel par Apache/Passenger.

Il y a quand même un petit hic, je trouve, dans ce monde de rêve : la gestion des gems.

TOUTES les gems doivent être re-installées via le binaire rubygems fourni par REE. Il faut donc repérer les gems (et leurs versions antérieures éventuelles) nécessaires et les installer avec un très long

$ /opt/ruby-enterprise-1.8.6-20090113/bin/ruby /opt/ruby-enterprise-1.8.6-20090113/bin/gem install XYZ

C’est assez casse pieds d’avoir à taper ces chemins d’accès à chaque fois, et puis à chaque mise à jour de REE (3 fois depuis octobre 2008) le chemin change (à cause de la date dans le chemin). J’ai donc fait un simple lien symbolique “/opt/ruby-ee” qui pointe vers la version courante.

J’ai pas encore réfléchi aux conséquences possibles d’un lien symbolique plus courant pour avoir REE à la place de Ruby globalement dans tout le système. C’est sûr queça serait pratique d’avoir le même Ruby pour l’appli web via Apache que via IRB ou la console de Rails (qui est IRB + le code de Rails chargé d’ailleurs). Mais pour le moment je peux supporter la coexistence de 2 Ruby sur la machine sans trop m’enmêler avec.

la suite : VirtualHosts

Mots-clefs : , , , , , , ,



Laisser une réponse