4 conseils pour le déploiement d'une application Rails

Gestion des versions, déploiement, pré-production, test, etc. Le point sur quelques bonnes pratiques pour déployer des applications développées à partir de l'infrastructure Ruby on Rails.

Ce contenu a été réalisé par le blog accolade.ch (Raphaël Emourgeon) sous licence Creative Commons.

Grâce à à l'infrastructure Rails et à quelques autres outils, le déploiement n'est absolument pas quelque chose de difficile et stressant comme certains tendent à le montrer avec des applications PHP par exemple.

1 - Utiliser un outil de gestion de versions

Que ce soit Subversion, CVS, Git ou n'importe quel autre outil de gestion de version, ne faites jamais l'impasse sur cet outil.

La plupart de ces outils sont gratuits et Open Source et si vous décidez de ne pas laisser votre dépôt (repository) en local, il ne vous coûtera que quelques euros par mois pour profiter d'un service hébergé. Même si vous êtes l'unique développeur du projet, la gestion de version vous permettra de revenir sans problème à une version stable du projet.

Idéallement vous pouvez travailler avec deux branches différents, une pour les développements en cours et une pour les releases. Lorsque vous avez fini une modification et qu'elle est prête à être déployée, vous n'avez qu'à combiner votre branche de développement à la branche de release. Ceci vous permet de faire des gros développements qui durent longtemps tout en assurant la maintenance régulière du projet.

Enfin n'oubliez pas, ne jamais déposer de modifications si celles-ci ne passent pas tous les tests (voir également le point 4) !

2 - Utiliser Capistrano

Capistrano est un outil destiné à l'automatisation de tâches via SSH. Il est très connu et utilisé dans la communauté Ruby et Ruby On Rails car il permet notamment d'automatiser les déploiements d'une application.

Rails intègre tous les outils nécessaires à la réalisation de tests unitaires

Il permet de gérer un déploiement d'une application sur plusieurs serveurs (mongrel, base de données?) depuis un outil de gestion de versions (comme Subversion). En une seule ligne de commande (cap deploy par exemple) vous pourrez ainsi déployer une nouvelle version de votre application sans aucun soucis ! Les fichiers sont extraits du dépôt, les migrations exécutées etc.  Si jamais un déploiement venait à mal se passer, il vous suffit de lancer la commande cap rollback et votre application sera remise dans son état précédent !

Vous l'aurez compris, Capistrano est la pierre centrale d'un déploiement simple, sûr et serein !

3 - Utiliser un serveur de pré-production

Même si vous pensez que votre machine de développement reproduit fidèlement votre environnement de production, il est très difficile d'en être sûr à 100% tout le temps. Investissez donc dans un serveur de pré-production qui sera une copie exacte de votre serveur de production. Avant de déployer en production une nouvelle version, déployez là en pré-production pour vous assurer que tout fonctionne comme prévu.

Capistrano dispose d'une extension ?multiple-stages? pour vous obliger à définir lors du déploiement vers quel environnement vous souhaitez déployer votre application.

4 - Tester, tester, tester

Rails intègre tous les outils nécessaires à la réalisation de tests unitaires, fonctionnels et d'intégrations. Profitez-en ! Je ne peux que vous recommander de faire du développement piloté par les tests (Test-driven development), vous dormirez mieux là nuit.

Pas besoins de 15 conseils, si vous appliquez correctement les 4 conseils ci-dessus, vous êtes à l'abri de la plupart des problèmes et surtout, vous pouvez revenir en quelques secondes dans un état stable !

Ce contenu a été réalisé par le blog accolade.ch (Raphaël Emourgeon) sous licence Creative Commons.