peshkov - Fotolia
Amadeus : comment un historique du Mainframe s’est converti à l’open source
En un peu plus de dix ans, le moteur de réservation européen est devenu l’un des plus grands utilisateurs de technologies logicielles libres en Europe. Une conversion raisonnée pour une entreprise née dans le monde mainframe et qui a dû s’adapter pour répondre aux besoins de plus en plus sophistiqués de ses clients.
Depuis plusieurs années, Amadeus, l’un des principaux moteurs de réservation pour l’aérien et le voyage (location automobile, réservation hôtelière, réservation ferroviaire, etc.) dans le monde a investi massivement dans l’adoption de solutions open source. Une façon pour la firme de mieux maîtriser sa technologie et de répondre de façon flexible aux demandes de plus en plus complexes de ses clients.
L’adoption du logiciel libre est une rupture radicale par rapport à l’historique mainframe de la firme. Amadeus est né en 1987 de la volonté de grandes compagnies aériennes européennes – Air France, Iberia, Lufhansa, SAS - de développer un moteur de réservation qui leur permette de ne pas dépendre du géant américain Sabre, alors intégré à American Airlines.
Son code historique est le fruit de l’intégration de multiples technologies mainframe notamment le code mainframe TPF (transaction processing Facility) du moteur américain System One (développé à l’origine par Eastern Airlines) et le moteur tarifaire d’Air France pour grands systèmes Unisys. Il est à noter qu’Amadeus a racheté System One en 1995.
Comme le confirme Sébastien Péllisé, Directeur R&D, Securité, Cloud Platform, Communication & API solutions d’Amadeus IT, « de par son origine Amadeus s’est construit sur Mainframes. Mais 30 ans après notre création, nous les avons décommisionnés dans lecourant du mois de juillet 2017. Nous n’avons plus de trafic de réservation qui passe aujourd’hui par les mainframes ».
La sortie du Mainframe a été motivée autant par des raisons technologiques - TPF est rigide et il devient difficile de trouver des experts qualifiés sur la technologie - qu’économiques : en quelques années, le ratio look to book – ratio des requêtes effectuées pour obtenir une réservation ferme – qui était de 10 pour 1 à franchi la barre des 1000 pour 1.
Il était tout simplement impossible de maintenir la compétitivité d’Amadeus en continuant à baser son système sur des grands systèmes – sachant qu’Amadeus a traité 595 millions de réservations l’an passé (avec des pics de 3,9 millions par jour). À cela s’ajoutait un problème grandissant d’acquisition des talents nécessaires pour maintenir et développer la plate-forme d’Amadeus.
Le logiciel libre : un enjeu technologique et économique pour Amadeus
« De par l’évolution du « look to book », nous avons investi dans des technologies moins chères, mais aussi plus simples d’abord. Dans les universités et les écoles, on trouve naturellement des talents formés sur les technologies open source.Ils contribuent à amener ces technologies chez nous. Les faire travailler sur le mainframe requérait a minima 2 mois de formation. L’open source a donc soutenu notre stratégie de réduction de coût. »
L’adoption du logiciel libre par Amadeus ne s’est toutefois pas effectuée du jour au lendemain. « Cela date des années 2000. Au sein du management de la R&D et de l’IT, nous avons fait le choix stratégique de l’open source ». Mais l’adoption s’est effectuée de façon disciplinée, la firme a ainsi identifié quelques plates-formes, frameworks et outils clés sur lesquels appuyer ses développements (comme Kubernetes, Docker, node.js, OpenShift, Apache Spark, Elastic Search et Kibana pour les choix les plus récents, Memcached,Apache Tomcat, Jboss,Spring, Jenkins ou Couchbase pour des choix plus anciens… Et elle a patiemment bâti ce qu’elle appelle Amadeus Cloud Services, sa plate-forme pour l’ère du cloud.
La clé du choix des technologies est leur niveau d’industrialisation selon Sébastien Péllissé. « Les logiciels que nous produisons doivent être maintenus dans la durée. Nous avons besoin de fiabilité, de documentation, de correctifs de sécurité, etc. L’industrialisation des composants open source est donc un enjeu clé pour nous. Nous décidons au cas par cas de la meilleure façon de supporter les composants logiciels. Si nécessaire, nous discutons avec des éditeurs comme Red Hat pour avoir du support ».
Au bout de 15 ans d’efforts, l’essentiel de la pile technologique applicative d’Amadeus s’appuie aujourd’hui sur des librairies et composants Open Source. Il existe encore quelques exceptions notamment des applications Java fonctionnant sous Windows au-dessus de Jboss ou WebLogic. Mais ces applications seront progressivement conteneurisées et migrées sur OpenShift.
Côté infrastructure, Red Hat Entreprise Linux a historiquement la plate-forme OS de choix pour les bases de données tandis que SUSE Linux Entreprise Server était préféré pour les serveurs d’applications. Amadeus utilise en revanche massivement VMware pour la virtualisation de certaines applications et a aussi fait le choix de VMware vSphere Integrated OpenStack pour ses déploiements OpenStack .
S’adapter rapidement aux évolutions pour rester concurrentiel
« Il y a eu une grande évolution du business. Nous avons des contraintes importantes en matière de temps de réponse. Sur les activités liées à la recherche de vols et de produits, il y a eu des investissements pour se rapprocher des gens qui font des requêtes’ explique Sébastien Pélissé. Par exemple, Amadeus distribue aujourd’hui ses workloads autour de la terre sur les clouds de Google et d’autres fournisseurs afin d’optimiser les temps de réponse.
« Avec Lufthansa, nous avons utilisé le Google Compute Engine pour optimiser les performances de la recherche de vols. Le challenge de ces architectures distribuées est de répondre vite, mais avec qualité. Il faut s’assurer que les informations soient récentes. Pour cela, nous utilisons les mécanismes de réplication de Couchbase pour la réplication des données en back end. Couchbase nous permet de fournir une solution répondant aux contraintes de latence, de temps de réplication et de coût ».
Amadeus s’appuyait historiquement beaucoup sur Oracle, mais comme l’explique Sébastien Péllissé, « dans le monde aérien, on n’a pas besoin forcément de toute la complexité d’une base de données traditionnelle pour gérer un enregistrement de réservation ». Ce constat n’est pas nouveau. Dès 2008, Amadeus a ainsi commencé à utiliser Memcached pour optimiser la performance d’accès à ses bases de données depuis des applications massivement distribuées. La firme a aussi très tôt compris l’intérêt des bases NoSQL pour ses besoins.
Mais Amadeus ne s’est pas contenté de consommer des composants libres prêts à l’emploi, elle a aussi parfois porté certains de ses codes sur des plates-formes libres et en ouvert l’accès. « Nous avions développé notre propre broker C++ et lorsque nous avons décidé d’adopter Openshift – le PaaS de Red Hat, N.D.L.R. - , nous nous sommes demandé ce que nous allions faire. Lors d’un Red Hat summit, nous avons discuté avec les ingénieurs de Red Hat et nous sommes tombés d’accord pour faire évoluer Openshift vers nos besoins pour ne pas avoir à recoder notre framework applicatif. Cela nous a amenés à développer un partenariat avec les équipe ingénierie Red Hat », explique Sébastien Pélisé.
Cette collaboration a aussi permis de rapprocher les liens entre les équipes d’Amadeus et de Red Hat et de bénéficier d’une vue détaillée sur la stratégie de l’éditeur. « Openshift et les conteneurs sont ainsi devenus notre stratégie pour le cloud et notre ambition est de développer toutes nos applications de cette façon. Un programme d’évolution de nos applications est en cours pour les adapter à cette plate-forme ».
Pour ses besoins d’intégration continue, Amadeus s’appuie sur Jenkins et sur les solutions d’Atlassian. « Plutôt que de réinventer la roue, nous tentons autant que possible de nous appuyer sur de grands standards de l’open source. De façon générale, nous encourageons aussi nos équipes à participer à la communauté et on a un processus en place pour les accompagner de façon à s’assurer qu’elles communiquent de façon appropriée ». Amadeus contribue ainsi activement au développement de technologies comme Kubernetes ou OpenShift, pour ne citer qu’eux.
Un autre type de contribution est d’aider des technologies émergentes à s’insérer dans un plus grand écosystème en tirant parti du poids d’Amadeus. Récemment, la firme, qui utilise Redis – une base de données et broker de messages in-memory - , a ainsi travaillé avec les équipes de RedisLab pour les aider à intégrer OpenShift. Ce qui fait que la couche d’orchestration de Redis est désormais partagée avec celle d’OpenShift. Ce rôle d’entremetteur, qui profite à Redis et à OpenShift, facilite aussi la vie des équipes d’Amadeus au quotidien.
En faisant le choix de l’open source et des architectures distribuées, Amadeus a pris une longueur d’avance sur ses concurrents - qui pour l’essentiel continuent encore à faire tourner le cœur de leur moteur sur TPF – et a aussi gagné un avantage compétitif. La migration entamée vers le cloud et les conteneurs devrait faire de la firme l’un des grands utilisateurs de ces technologies dans le monde.