Inscrivez-vous gratuitement à la Newsletter BFM Business
Les SGBDR open source affichent de bonnes performances et gagnent en fonctionnalités. Migrer d'une base propriétaire élimine les coûts de licence, mais oblige à convertir les données et à adapter l'environnement applicatif.
Lorsque le besoin de monter en performances se fait sentir, la question se pose de changer radicalement de plate-forme. En matière de base de données, l'offre a ceci d'intéressant qu'elle est constituée de produits propriétaires et open source qui affichent des performances similaires dans les situations usuelles, et qui reposent tous sur le même standard, le langage SQL. Cela signifie que l'on peut, en théorie, échanger un serveur de base de données réputé cher, tels Oracle ou Informix, avec un autre dont le seul coût est le support, MySQL et PostgreSQL en tête. Certes, les données doivent être converties dans le nouveau format, mais il n'y a pas, a priori, à réécrire l'application qui accède à la base.Hélas, l'interchangeabilité n'existe pas encore, et la migration n'est ni aussi rapide ni aussi douce. Dans huit cas sur dix, une application émet des requêtes non standards ; l'éditeur de la base prétendant qu'elles sont plus rapides. Lors d'une migration, il faudra donc identifier les fonctions qui ne s'adaptent pas au nouveau serveur de base de données et les réécrire, si possible en respectant ce coup-ci le standard. Pis, les entreprises qui se posent la question de la migration ont par essence un système d'information (SI) ancien. Les langages Delphi, VB ou C utilisés pour élaborer l'application qui pilote la base de données sont obsolètes. Souvent, ce sont les pratiques mêmes de conception qui ne sont plus à jour. L'exemple d'un système monolithique, où les données et l'application s'enchevêtrent dans le même serveur, reste typique. Dans ces cas-là, il faudra trouver le moyen d'extraire les données originales pour les réinjecter dans un SI entièrement reconstruit.
Les besoins : économiser et faire évoluer le SI
' Début 2005, notre système d'information posait deux problèmes ', dit Laurent Benintende, DG de Fnac Billetel, la direction informatique en charge des opérations de vente de billets de spectacle à la Fnac. ' D'une part, le programme développé en C et les données en fichiers plats que nous utilisions ne supportait pas les pics de charge de la vente sur internet. D'autre part, consolider les machines AIX qui le faisaient fonctionner aurait coûté trop cher en licences. ' Une situation dans laquelle se reconnaissent Gilbert Boneill, DSI du site Météo Consult, et Bertrand Bigay, PDG de Cityvox, le guide en ligne des sorties et des loisirs en Europe. Le premier a migré dès 2001, lassé du prix et des performances décevantes de sa base Informix sur serveurs Sun. Le second a eu beau racheter des serveurs Sun jusqu'en 2004, son audience restait saturée en permanence. Cependant, Bertrand Bigay ne remet pas tout de suite en cause sa base Oracle : ' Nos tests pointaient un goulet d'étranglement au niveau du gestionnaire de contenu Vignette. Nous avons donc décidé de réécrire notre applicatif en PHP et de passer à la dernière version d'Oracle. Mais, surprise : il fallait d'abord payer 40 000 euros pour le support ?" non utilisé ?" des deux années précédentes ! ' Ec?"uré, Bertrand Bigay opte pour l'open source, son prestataire lui assurant que PostgreSQL atteindra les mêmes performances qu'Oracle. Laurent Benin tende et Gilbert Boneilloptent, eux, pour MySQL, au vu de ses bons résultats dans les tests de performance.Le cas de Patrick Van Dervoort est différent. En 2002, Oracle cesse de supporter NetWare, le système que ce DSI a déployé. Pour lui, il était alors plus simple de changer de serveur de bases de données que de système : ' Notre entreprise, TMS, vend des pièces de rechange et nous gérons les stocks dans la base centrale au travers d'une application que j'ai développée sous NetWare. Je ne voulais pas tout réécrire pour un autre système. Surtout qu'une solution simple existait : MySQL 4 était fourni dans NetWare 6 et obéissait aux mêmes requêtes SQL qu'Oracle. '
La mise en ?"uvre : avantage au SQL standard
Patrick Van Dervoost a pu se féliciter de la rigueur de son code : ' Je n'ai dû réécrire dans mon application que 1 % des requêtes SQL. Il faut dire que j'avais fait très attention au respect strict du standard, notamment en excluant les procédures stockées. ' Un mois après le début des tests, MySQL remplaçait déjà Oracle.Pour Gilbert Boneill et Bertrand Bigay, le projet a mobilisé de trois à quatre personnes pendant cinq à six mois. En cause, le déploiement de nouveaux matériels et la réécriture de leur applicatif en PHP. Mais seuls 10 à 15 % des requêtes SQL ont dû être modifiées. La commutation vers le nouveau système s'est faite en une nuit. Bertrand Bigay a mis son service en maintenance durant six heures : ' Le temps pour les scripts d'OpenWide de convertir les 12 Go de notre base Oracle au format de PostgreSQL. 'Laurent Benintende se souvient, lui, d'une expérience plus compliquée : ' Nous avons reconstruit tout notre SI à partir d'un cluster RedHat avec des applications Java exécutées par JBoss. Rien que la conversion des données vers MySQL 4 a demandé 300 jours/homme. Nos tests ont duré trois mois, car nous avons dû prendre en compte la difficulté de vendre des billets et d'en ajouter en même temps. '
Les gains : moins cher, mais aussi rapide et plus simple
Le nouveau SI de Laurent Benintende ne l'a toujours pas déçu : ' Il n'a jamais failli à absorber de très forts pics de demandes. Le record est de 7 000 billets vendus en dix minutes, pour Madonna. Je suis sûr que nous pouvons faire encore mieux ! ' Même gain chez Cityvox : ' Notre audience a cru de 25 % dès le premier jour de la commutation. En deux ans, elle a été multipliée par 5 ', dit Bertrand Bigay. Pour lui, c'est surtout une réussite financière : ' Les 50 000 euros par an économisés en licences Oracle et Vignette sont une goutte d'eau par rapport à l'explosion des recettes publicitaires que nous avons connue depuis notre migration. 'Pour TMS et Météo Consult, le gain de la migration vers MySQL correspond surtout à une simplification du système d'information. Selon Patrick Van Dervoorst, ' avec une base Oracle, il faut un administrateur formé et dédié ; pas avec MySQL. Par exemple, la possibilité de stocker la base sous forme de fichiers plutôt qu'à l'intérieur d'une image disque facilite les opérations de sauvegarde et de reprise après sinistre '. Gilbert Boneill souligne, lui, la souplesse des mises à jour : ' Nous sommes passés à MySQL 5 il y a un an. L'opération s'est résumée à un copier/coller de la base sur un nouveau serveur. '
Les écueils : rester attentif à l'évolution dans le temps
Quoiqu'il en dise, Patrick Van Dervoorst a tout de même attendu cinq ans, depuis 2002, pour sortir la base Oracle du système d'information de TMS. En activité au titre de solution de sauvegarde, elle aurait pris le relais si l'application qui communiquait avec MySQL 4 avait failli. ' Bien qu'en production, l'application reliée à MySQL 4 est restée longtemps en phase de développement, car j'ai voulu l'adapter à de nouveaux besoins, dit Patrick Van Dervoorst. Parmi eux, l'importation des bases hétérogènes de nos fournisseurs '. Il a aussi fallu remplacer NetWare par Linux, et donc reprogrammer les bibliothèques de communication entre la base et l'application. La stabilité est aujourd'hui atteinte, mais le passage à MySQL 5 est déjà à l'étude : ' Je mesure scrupuleusement nos tests, car si la migration devrait être simple, il faut savoir qu'on ne peut plus revenir en arrière ensuite. 'Laurent Benintende pointe un bogue de purge mémoire sur le Linux qui fait fonctionner les serveurs MySQL : ' Le processus gonflait sans cesse, nous forçant pendant un an et demi à redémarrer régulièrement. Le problème ne s'est résolu que récemment avec l'application d'un correctif sur le noyau du système. 'Pour Gilbert Boneill, il s'agit surtout de ne pas franchir le pas trop tôt : ' Nous avons migré notre base de données météorologique en 2001, mais nous avons attendu 2004 pour faire de même avec la base de nos clients, le temps que MySQL se dote des capacités d'intégrité suffisantes. '
Votre opinion