Installer un logiciel : comment l’automatisation permet de gagner en efficacité

Dernier maillon du cycle de développement, le déploiement d’une application est un enjeu particulièrement important dans la vie d’une application. Chaque version d’un logiciel, qu’elle apporte des corrections ou des nouveautés, doit passer par un déploiement pour être installée sur un serveur dit de production. Il est donc important que ce déploiement soit sûr et fiable pour que le logiciel installé soit conforme aux attentes.

Qu’est ce qu’un déploiement ?

Mettre à jour une application n’est pas seulement faire une mise à jour des fichiers de l’application. Dans la plupart des cas, cela entraîne d’autres actions, comme par exemple mettre à jour la structure de la base de données, ré-indexer des données, modifier des configurations ou bien mettre à jour les composants du serveur. Si la gestion des fichiers est plus ou moins identique pour chaque application (mettre à jour des fichiers reste un dénominateur quelque soit le logiciel), les autres actions sont spécifiques en fonction des composants utilisés par application (type de base de données, système de cache, outils tiers…), des pré-requis définis (types de serveur, versions minimum, …). Un workflow est alors nécessaire pour déployer une application.

Devant ce constat, les acteurs du web ont vite compris que ces tâches devaient être automatisées pour plusieurs raisons :

– Éviter la répétition des mêmes tâches à chaque déploiement

– Permettre un gain de temps lors du déploiement : certaines applications nécessitent une haute disponibilité (aucun arrêt des services) comme par exemple Google, Facebook, Twitter… Automatiser permet aussi de mettre en production beaucoup plus rapidement et de façon transparente pour l’utilisateur. Le déploiement continu (ou intégration continu) en est l’aboutissement.

– Le gain de temps humain : implémenter un déploiement et les tests associés peuvent prendre du temps à mettre en oeuvre au début, mais le gain sur chaque déploiement futur en vaut largement le prix.

– L’erreur est humaine ! Lors d’un déploiement manuel nous ne sommes pas à l’abri d’une erreur ou d’un oubli

Il existe plusieurs outils pour aider à réaliser des déploiements, parmi lesquels nous pouvons citer Capistrano, Rocketeer ou Jenkins. Ces solutions savent comment gérer les différentes versions des fichiers de l’application et permettent d’avoir une trame pour déployer. Les autres actions spécifiques sont alors implémentées en plus par les mainteneurs de l’application.

Le déploiement des produits Mnesys

L’application Mnesys Archives existe depuis 9 ans, le déploiement est historiquement réalisé grâce à un outil développé par Naoned. A la différence d’un logiciel cloud pour lequel l’environnement est connu et maîtrisé par l’éditeur, Mnesys s’installe dans des environnements et des architectures réseaux différents. Devant cette diversité grandissante, et le logiciel s’étoffant au fur et à mesure de nouvelles fonctionnalités et par conséquent de nouvelles briques logicielles, il a été décidé de revoir le système de déploiement.

Plusieurs enjeux sont identifiés :

– Souplesse : prendre en compte les contraintes techniques et particularités des clients et des DSI

– Efficacité : automatiser pour faire gagner du temps à tout le monde

– Stabilité : une meilleure maîtrise pour éviter les erreurs

Si le déploiement continu est aujourd’hui réservé aux importantes applications cloud (mais se démocratise de plus en plus !), les bénéfices d’un déploiement fiable et maîtrisé restent considérables.

Pour automatiser ses déploiements, Naoned a choisi l’outil Deployer qui utilise des technologies similaires à Mnesys et s’avère être l’outil le plus adapté à nos solutions. Après 2 mois de travaux, le système de déploiement est actuellement en phase de recette en interne et devrait sortir d’ici la fin de l’année.

Alexia Branchereau

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *