MO:SES - Fotolia
Amadeus accélère la recherche de billets d’avion grâce à l’Open Source
Au centre de l’infrastructure qui sert à acheter des sièges sur un vol, Amadeus doit répondre à cent fois plus de requêtes depuis l’apparition des métamoteurs de recherche e-commerce.
Faire cent fois plus sans que cela coûte plus cher pour contrer l’ubérisation du marché. Tel est le défi qu’a dû relever le gestionnaire de vente de billets d’avion Amadeus. « Avant, pour dix recherches concernant un voyage, nous réalisions une vente. Mais depuis l’arrivée des agences en ligne, des métamoteurs de recherche qui agrègent les résultats de différents portails ou encore des applications mobiles, nous ne réalisons plus qu’une vente pour mille recherches. Et le nombre de recherches ne cesse d’augmenter. Techniquement, cela signifie qu’avec un budget donné, nos applications doivent supporter aujourd’hui cent fois plus de charges de travail qu’auparavant et demain encore plus », lance ainsi Christophe Defayet, directeur R&D Airline IT et systèmes d’inventaires chez Amadeus.
Depuis la seconde moitié des années 80, le groupe est l’un des principaux prestataires mondiaux pour la gestion informatique des ventes de billets d’avion. Concevant initialement des GDS (Global Distribution System) qui connectaient les agences de voyage avec les compagnies aériennes, Amadeus s’est peu à peu réorienté vers la conception d’applications de réservation pour, aujourd’hui, 140 compagnies aériennes. Les temps de réponse d’un site comme ceux d’Air France ou de Lufthansa lorsqu’un internaute recherche des vols sont directement liés aux performances de l’IT d’Amadeus, qui s’appuyait jusqu’il y a peu juste un datacenter en Allemagne avec une capacité maximale de 600 000 transactions par seconde.
« Le lenteur d’une réponse peut faire échouer une vente. Notre mission est donc que les recherches ne soient jamais lentes et, ce, même en sachant que 99,9% d’entre elles ne découlent désormais plus sur une vente. Notre challenge est alors d’atteindre ce but sans pour autant démultiplier le financement de nos ressources IT », explique Christophe Defayet.
Pourchasser la moindre perte de temps grâce à OpenShift, OpenStack et les containers
L’IT d’Amadeus est constituée d’un enchevêtrement d’applications écrites en C++, en Java ou en Go qui se chargent pour chacune des compagnies - des calendriers de mise en vente, du calcul des sièges disponibles, de l’assignation de ces derniers ou encore de réaffectation des passagers entre différents vols. Du fait de l’existence d’un grand nombre de vieux protocoles propriétaires dans l’industrie aéronautique, toutes ces applications s’échangent des données au travers d’un ESB (Enterprise Serial Bus), une plateforme logicielle, ici écrite sur mesure, qui convertit à la volée les informations des uns pour les livrer aux autres.
En 2014, l’équipe de Christophe Defayet est convaincue que l’IT d’Amadeus ne pourra rester suffisamment élastique face aux pics d’activité provoqués par les métamoteurs de recherche et les applications mobiles qu’à la condition d’exécuter des applications ailleurs. « A l’évidence, nous devions rapprocher l’exécution des applications de nos utilisateurs pour réduire la latence des réponses. Mais encore fallait-il savoir déployer notre code dans les Cloud d’AWS ou de Google selon la charge à un instant T », indique l’intéressé.
Red Hat, l’un des fournisseurs partenaires d’Amadeus, dispose déjà à cette époque des premières versions d’OpenShift dans son catalogue. OpenShift est un logiciel capable d’assembler automatiquement des machines virtuelles dans le format des Cloud d’AWS ou de Google Computer Engine (celles d’Amadeus sont au format VMware vSphere), réduisant drastiquement les délais de mise en production. Associé à la plateforme OpenStack, OpenShift peut aussi déployer ces applications automatiquement quand surviennent les pics d’activité.
Mais Christophe Fayet veut aller encore plus loin en manipulant ses applications sous la forme de containers, à savoir des machines virtuelles dépourvues de couches systèmes et qui se mettent donc bien plus rapidement en production. Pour Amadeus, la chasse à la moindre perte de temps dans le système est désormais ouverte.
« Les containers présentent deux avantages. D’une part, ils nous permettent de packager de la même manière du code Java, C++ ou Go, ce qui simplifie grandement les opérations de mise en production en mettant toutes les applications sous la tutelle des mêmes outils de monitoring et d’administration, sans plus aucune procédure spécifique à écrire pour l’une ou pour l’autre. D’autre part, un container est le même en production et sur la machine d’un développeur. On évite ainsi d’introduire des bugs en packageant une instance au format d’un Cloud et l’on minimise donc le risque de perdre du temps à réparer », indique encore Christophe Defayet.
Faire le choix de technologies Open source pour un maximum d’optimisation
Red Hat lancera finalement dès l’année suivante une version 3 d’OpenShift capable de manipuler des containers grâce à la nouvelle couche Open Source Kubernetes. Amadeus adopte immédiatement cette solution et commence à déployer ses applications à partir de 2016 sur les Cloud de d’AWS et de GC, sur différentes régions dans le monde afin de limiter la distance avec tous les utilisateurs finaux.
« Nous évitons d’utiliser les technologies d’Amazon ou de Google pour créer des datacenters virtuels dans leurs Cloud car cela nous ramènerait à la contrainte de perdre du temps avec des procédures spécifiques. A la place, nous nous servons de l’outil Open Source Terraform. Celui-ci déploie des ressources qu’OpenShift 3 n’a plus qu’à consommer ensuite », détaille Christophe Defayet.
Cette discipline ne va pas jusqu’à utiliser le stockage S3 d’AWS car, dès lors, les applications ne seraient plus déplaçables vers GCE qui ne dispose pas d’un format compatible. A la place, les applications d’Amadeus stockent leurs données via la base NoSQL Open Source Couchbase dont l’intérêt est d’être distribuée, c’est-à-dire qu’elle supporte de fonctionner avec plusieurs instances parallèles pour conserver des temps de réponse rapides, quelle que soit la charge de travail. En revanche, le principe de fonctionnement en cluster de Couchbase n’étant pas adapté au format des containers, Amadeus déploie ici ses instances sur tous les Cloud sous la forme de machines virtuelles classiques. Toutes les instances Couchbase synchronisent régulièrement leurs données avec les informations maîtresses, stockées dans le datacenter allemand d’Amadeus.
« Nous sommes très fiers de l’intégration de CouchBase à OpenShift car il s’agit d’une contribution Amadeus à la communauté Open Source. C’est d’ailleurs l’un des intérêts d’utiliser des produits Open Source : nous pouvons mettre nos propres développeurs à contribution pour améliorer OpenShift, mais aussi Kubernetes de sorte qu’ils répondent mieux à nos propres besoins », commente Christophe Defayet.
Une plateforme technique qui ouvre la voie à de nouveaux business
Outre le fait de pouvoir désormais supporter les pics d’activité en allant chercher des ressources dans les Cloud publics, le bénéfice de ce déploiement en containers est qu’Amadeus peut même désormais exécuter ses applications sur n’importe quelle infrastructure chapeautée par OpenStack. « Ainsi, nous pouvons désormais aussi bien avec des chaînes hôtelières pour la réservation de leurs chambres, comme cela est déjà le cas aux USA avec InterContinental Hotels Group, pour lesquels nous exécutons nos applications dans deux datacenters, l’un sur la côte Est et l’autre sur la côte Ouest », se félicite Christophe Defayet.
Concernant l’activité historique, le dispositif mis en place par Amadeus lui a permis de commercialiser auprès des revendeurs de billets une offre Amadeus Airline Cloud Availability qui prend à sa charge des calculs qu’ils étaient censés faire eux-mêmes. « A présent, les compagnies aériennes ne veulent qu’exposer leurs sièges disponibles, à la charge des revendeurs de calculer les meilleurs prix. Mais pour ce faire, ils devaient disposer de leur propre centre de calcul. Désormais, ils peuvent s’appuyer sur notre solution qui leur donnera des réponses en temps réel sans qu’ils aient à investir dans un datacenter et qui, surtout, mettra à jour en temps réel l’inventaire des sièges », dit Christophe Defayet.
Pour l’heure, la gestion des pics d’activité reste encore manuelle, avec des opérateurs qui reçoivent des alertes et appuient sur des boutons pour déployer de nouvelles instances des applications d’Amadeus. Mais Christophe Defayet estime que le déploiement automatique d’instances devrait arriver rapidement, dès que l’intégration d’OpenShift 3 sera terminée.