studiostoks - Fotolia
Pixid part à la conquête du marché européen grâce à la simplicité de MariaDB
Le spécialiste des services en ligne pour le travail temporaire a voulu faire la différence avec une plateforme globale. Il lui a fallu trouver comment réaliser techniquement cette prouesse malgré l’absence de DBA dans ses équipes.
Pixid peut se targuer d’avoir relevé un sacré défi. Éditeur d’une plateforme de services dans le monde de l’intérim, il a assis son succès en France avec une interface unique qui évite aux entreprises, aux agences de travail temporaire et aux intérimaires d’avoir à se connecter/déconnecter à chaque fois qu’ils changent d’interlocuteur. Mais pour y parvenir, il lui a fallu opérer un véritable travail d’horloger sur la base de données dont dépend la réactivité de ses applications, et il n’avait pas les compétences pour.
« Le premier bond significatif de notre activité a eu lieu en 2010. Pour gérer une croissance de 30 % à ce moment-là et continuer à offrir une expérience fluide à nos utilisateurs, nous devions passer d’un seul serveur de bases de données à un cluster. Cette transformation supposait un certain savoir-faire technique sur notre SGBDR Oracle. Malheureusement, nous avions des difficultés à recruter un DBA avec la bonne expérience », se souvient Antoine Gosset, Responsable d’exploitation chez Pixid.
Cet expert IT a donc dû relever les manches pour manipuler lui-même les rouages du SGBDR. Et il s’en est sorti ; Pixid est devenu leader en France et un tiers de son activité se fait à présent au Royaume-Uni, en Allemagne, en Belgique. La solution d’Antoine Gosset a été de trouver une alternative à Oracle. L’utilisation de MySQL, puis de son descendant MariaDB, lui a permis de suivre l’évolution des demandes depuis neuf ans, en configurant à chaque sursaut d’activité là, plus de fonctions décisionnelles, ou, là, de quoi absorber plus de requêtes.
Oracle, trop compliqué pour les administrateurs système
« La difficulté de passer à une solution RAC d’Oracle, en cluster, ne nous rassurait pas. En revanche, parmi nos applications, nous en avions une à part qui gérait les signatures électroniques à partir d’une base de données MySQL. Nous avons trouvé cela très bien car, depuis que nous l’avions mise en production, nous n’avions jamais eu à nous occuper de sa maintenance, au contraire d’Oracle qui nécessitait depuis le début une personne à plein temps », raconte Antoine Gosset.
Parmi les difficultés dont il se souvient, la réduction régulière des tables Oracle pour éliminer les données périmées imposait de d’arrêter la production, d’envoyer des commandes pour effacer, d’autres pour récupérer l’espace inutilisé. Sous MySQL, les données étaient effacées à la volée et le stockage automatiquement libéré.
Néanmoins, migrer d’Oracle à MySQL n’est pas toujours simple, en particulier lorsque les requêtes envoyées par les applications utilisent le langage PL/SQL typique du premier. C’est pour vérifier son adhérence aux technologies d’Oracle, qu’Antoine Gosset contacte une première fois le prestataire SkySQL, qui prendra par la suite le nom de MariaDB (et qui, ironiquement, lancera des années plus tard une solution qui s’appelle de nouveau SkySQL). SkySQL se veut à l’époque un spécialiste européen des SGBDR Open Source ; son activité de conseil prime alors sur celle d’éditeur. Son analyse détaillée permet à Pixid de finalement s’en sortir avec quelques modifications surmontables sur les changements de syntaxe.
« Classiquement, la dépendance au langage PL/SQL n’est pas importante. Il s’agit surtout d’écritures différentes pour, par exemple, spécifier que l’on souhaite faire une requête sur seulement les 10.000 champs. Ce genre d’adaptations demande peu d’efforts », commente Antoine Gosset.
Gérer la scalabilité au-delà du simple nombre d’IOPS
La migration effectuée, Antoine Gosset réplique la base du serveur principal (le master) sur deux nœuds secondaires (les slaves). La copie des données se fait de manière asynchrone : les applications écrivent toujours les données sur le master mais les lisent sur l’un ou l’autre nœud. La difficulté que les développeurs doivent prendre en compte est que les esclaves n’ont pas forcément des données à jour. De fait, l’utilisation du cluster est limitée ; les slaves ne servent finalement qu’à sélectionner des champs, la lecture des valeurs elles-mêmes se faisant toujours sur le master.
En 2011, Pixid fait de nouveau appel à SkySQL/MariaDB pour décliner sa base de données jusque-là transactionnelle en une version décisionnelle, avec des index par colonnes. L’enjeu est d’offrir aux clients de la plateforme un service supplémentaire, qui dresse des rapports d’activité. La solution consiste à ce moment à déployer InfiniDB, un SGBD revendu par SkySQL et de l’alimenter via un ETL qui génère des données depuis le cluster MySQL. SkySQL insiste alors pour que Pixid bascule sa base transactionnelle sur MariaDB, qui constitue un fork toujours Open source de MySQL, alors que ce dernier a entretemps été racheté par Oracle. Pixid s’y refuse ; MariaDB est trop jeune, son avenir incertain.
Du moins jusqu’en 2015, lorsque paraît Galera Cluster. Cette extension de MariaDB sert à répliquer les données du master de manière synchrone vers les slaves, autorisant de fait la lecture des données sur tous les nœuds du cluster. « Nous avons alors consenti à basculer sur MariaDB. A notre grande surprise, la migration a été automatique. La seule difficulté a finalement été de déployer Galera. Les 2400 IOPS des baies de disques rattachées à chacun de nos serveurs étaient trop faibles pour autoriser une réplication synchrone. Nous les avons équipés d’unités de stockage XtremIO offrant 100.000 IOPS », raconte Antoine Gosset.
A ce stade, les applications doivent toujours elles-mêmes choisir le serveur sur lequel lire les données. « Le prestataire MariaDB, désormais appelé ainsi, nous a conseillé de déployer son répartiteur de charge MaxScale, afin que les applications ne s’adressent plus qu’à une seule adresse IP et que l’infrastructure choisisse automatiquement le serveur le plus disponible. Mais cela n’a pas fonctionné : nos requêtes étaient formatées par nos développeurs de manière trop séquentielle. Nous avons passé un an avec les développeurs pour résoudre le problème », assure le responsable d’exploitation de Pixid.
GlusterFS pour mettre le décisionnel en cluster, en attendant Galera
En 2016, c’est au tour d’InfiniDB de connaître une amélioration en cluster. Problème, à l’époque MariaDB n’a pas encore finalisé l’intégration de ce logiciel avec ses autres produits. Antoine Gosset prend donc le parti de repartir sur une réplication asynchrone entre un master et un slave, avec la difficulté d’avoir cette fois-ci deux couches à prendre en compte dans la base décisionnelle, appelées UM et PM. C’est cette fois-ci ses connaissances en administration système qui lui permettent de trouver la solution : il unifie le stockage de tous les nœuds au moyen du système de fichiers distribué GlusterFS.
L’année suivante, Pixid déploie AppDynamics, un logiciel de monitoring qui mesure les performances des clusters. Antoine Gosset peut se féliciter : les taux d’erreur observés entre les applications et les données ne sont que de 8%, ce que Pixid qualifie de très bon score. Et il devrait encore s’améliorer avec le déploiement en 2019 de Galera Cluster sur les serveurs décisionnels.
« Au final, je me rends compte que nous avons pu effectuer, grâce à MySQL puis MariaDB, un recalibrage constant des performances de nos bases de données de manière très simple pour un administrateur système. Nous n’aurions jamais réussi à franchir toutes ces étapes avec Oracle, car la solution était pour nous trop compliquée », dit-il.
Un choix technophile qui découle sur d’importants bénéfices économiques
Antoine Gosset revendique avoir abandonné Oracle pour des raisons purement technophiles. Il fait néanmoins pour LeMagIT le calcul : « ce n’était pas le but premier, mais nous nous rendons compte aujourd’hui que MariaDB nous a accessoirement coûté quatre fois moins cher que ce que nous aurions dû payer si nous étions restés sur des solutions Oracle. »
« Les efforts d’Antoine nous ont permis de proposer à nos clients un environnement qui est resté global, depuis lequel tout le monde peut tout faire. Grâce à cela, nous sommes restés plus simples que nos concurrents qui ont pris la facilité technique d’avoir une base de données par client. De plus, notre base unique nous permet d’adresser aussi bien des grands comptes que des PME. Ce travail de configuration a permis en somme à notre activité de grandir chaque année », se félicite pour sa part Jérôme Mouret, directeur des solutions chez Pixid.
« Notre plateforme gère aujourd’hui les informations de 2 millions d’intérimaires européens et a permis de remplir 100 millions de documents dématérialisés, sans jamais que quiconque n’ait pu se plaindre de lenteurs dans l’interface. Nous devrions maintenant atteindre un CA de 30 millions d’euros en 2019, et nous sommes bien partis pour conquérir l’Europe », conclut-il.