(Cet article a été initialement publié par Ampere Computing)
Vous ne connaissez peut-être pas Amadeus parce que c'est une entreprise B2B… mais lorsque vous recherchez des vols ou des hôtels sur Internet, il y a de fortes chances que vous utilisiez des services soutenus par Amadeus dans les coulisses, dit Didier Spezia, Cloud Architecte à Amadeus.
Amadeus est une entreprise informatique de voyage de pointe qui soutient de nombreux participants à l'industrie du tourisme: compagnies aériennes, chaînes hôtelières, agences de voyage, aéroports, etc. L'une des entreprises d'Amadeus est de fournir des services de recherche de vol et de prix aux agences de voyage et aux entreprises telles que Kayak ou Expedia. Amadeus prend également en charge des fonctionnalités plus avancées telles que les requêtes budgétaires et les requêtes limitées par le calendrier qui nécessitent une pré-calcul des indices multidimensionnels. La recherche du bon vol avec des sièges disponibles parmi une large gamme de compagnies aériennes est très difficile.
Obtenir la meilleure solution est considéré comme un puzzle NP, donc pour fournir la réponse la mieux en effet, Amadeus utilise une combinaison de méthodes de force brute, d'algorithmes de graphique et d'heuristique. Il nécessite de grands systèmes distribués et consomme beaucoup de CPU, et exécute désormais des milliers de machines sur les installations internes d'Amadeus. Pour répondre aux besoins des clients, Amadeus exploite plusieurs installations sur site dans le monde et exécute des charges de travail sur plusieurs fournisseurs de services cloud.
Il y a quelques années, Amadeus a lancé un grand projet pluriannuel pour migrer la plupart de ses ressources internes vers Azure. Pour ce cas d'utilisation spécifique, Amadeus a travaillé avec Microsoft pour vérifier la machine virtuelle (VM) basée sur AMPERE AMPERE.
Mo Farhat de Microsoft a commenté dans la discussion:
De notre point de vue… [Microsoft] veut offrir des choix à nos clients. Nous ne démarrerons pas [ils] entre une architecture et une autre ... ou entre un processeur et un autre. Nous voulons fournir une gamme d'options et fournir des conseils crédibles ...
Initialement, Amadeus n'était pas nécessairement intéressé à introduire différentes architectures dans le cadre de la transition. Spezia a dit:
Nous introduisons uniquement des architectures différentes parce que nous nous attendons à certains avantages… Nous sommes très préoccupés par le rapport performance / prix que nous pouvons obtenir d'Ampère… Nous voulons pouvoir mélanger des machines avec des processeurs traditionnels x86 avec des machines avec des processeurs AMPER La charge de travail sur le CPU qui convient le mieux à cette charge de travail.
Ils ont choisi une grande application C distribuée et à forte intensité de calcul comme la première à fonctionner sur Ampère, car ils croient que cela fournira le plus grand avantage comparatif sur X86.
Nous pensons que les machines basées sur les bras peuvent être un bon choix, mais bien sûr, nous devons vérifier et confirmer nos hypothèses. Nous avons d'abord dirigé un certain nombre de repères synthétiques. ... Les résultats sont positifs, mais les repères synthétiques ne sont pas très pertinents. Étant donné que l'introduction de nouvelles architectures de CPU dans l'écosystème n'est pas neutre, nous avons besoin de meilleures garanties et décidons d'utiliser le code d'application réel pour l'analyse comparative. … L'application est une grande base de code C. Il s'appuie sur de nombreuses bibliothèques open source sous-jacentes, plus certaines bibliothèques de middleware Amadeus, et enfin le code fonctionnel lui-même. Un sous-ensemble de ce code a été isolé pour l'exécution de repères sur le banc de test.
L'un des facteurs qui ont réussi le succès était la capacité de l'équipe Amadeus à obtenir des serveurs Ampère au début du projet. Didier a dit:
Tout d'abord, Amadeus a installé plusieurs machines avec des processeurs Ampère Altra en interne. Ils sont utilisés pour les travaux de transplantation initiaux et exécutent toujours notre CI / CD à ce jour. Étant donné que nous sommes en train de passer au cloud public et que nous sommes très mélangés à des écosystèmes complexes, nous sommes très reconnaissants de pouvoir déployer certaines machines sur site qui ont la même architecture CPU que les machines virtuelles offertes dans Azure. Nous avons constaté que l'utilisation de machines exécutant l'architecture cible pour CI / CD et les tests au lieu de compilation croisée est inestimable.
L'IC de l'application continue d'exécuter sur le serveur Ampère dans Amadeus Labs.
Notre portage de code a commencé par recompiller tout avec une chaîne d'outils compatible ARM64 (cible Aarch64), qui a eu un impact sur notre CI / CD.
Le processus de portage de ce code à Ampère a été très fluide, bien que certains problèmes aient été trouvés. Certains comportements du compilateur spécifiques à la plate-forme, tels que le type de données "char" est signé ou non signé, diffèrent sur x86 et ARM64, et l'application fait des hypothèses sur le comportement.
Pour compiler leur grande base de code C, Amadeus utilise les compilateurs GCC et Clang C. Parmi les modifications requises dans le cadre du portage, certaines dépendances open source doivent être améliorées pour profiter de l'amélioration du support ARM64. Certaines de ces mises à niveau impliquent des modifications de l'API ou du comportement qui nécessitent d'autres modifications de code. De plus, dans le cadre de la migration, certains problèmes de code potentiels qui ne se sont pas affichés sur X86 (liés à un comportement non défini ou défini par la plate-forme) ont été exposés et fixes.
Dans le cloud, les applications Amadeus sont déployées sur des clusters OpenShift (plate-forme de conteneur basée sur Red Hat Kubernetes). Pour s'exécuter dans un environnement de production, l'application nécessite un écosystème de middleware complet (Bus de service d'entreprise, installations de journalisation et de surveillance, etc.), qui est également hébergée dans OpenShift.
Amadeus ne veut pas migrer l'intégralité de son infrastructure d'application à ARM64. Un autre partenaire de confiance, Red Hat, a fourni des fonctionnalités de Kubernetes qui prennent en charge les architectures matérielles hétérogènes pour OpenShift en tant que fonctionnalités prises en charge.
Plus précisément, cela signifie qu'un seul cluster OpenShift peut contenir des nœuds de calcul x86 et bras. En définissant des ensembles de nœuds avec des nœuds x86 et ARM64 et en déploiement des conteneurs avec des balises et des "blues", les développeurs peuvent facilement décider quel type de machine virtuelle de planifier les pods. Par conséquent, les composants de support de l'infrastructure d'application Amadeus peuvent fonctionner sur une VM de x86 traditionnelle, et Amadeus décide que les pods d'application fonctionnant sur ARM64 pour des raisons de coût et de performances peuvent fonctionner sur Azure DPS V5 VM alimentée par Ampere Altra CPU.
Le regroupement hétérogène est essentiel pour soutenir la migration incrémentielle et éviter de doubler le nombre de clusters OpenShift.
Évidemment, avant d'entrer en production, Amadeus espère vérifier leurs hypothèses avec quelques repères. En utilisant la référence de synthèse CPUBENCH1A, en utilisant des machines virtuelles de 32 VCPU, un seul Ampère Altra VM (D32PS_V5) fournit un débit brut 20% plus élevé, le rapport performance / prix est 50% plus élevé que les VM Intel équivalents, et le débit brut est 20% plus élevé que les VM AMD équivalents plus élevé 13% plus élevé et 27% de performances / débit de prix plus élevés.
Lorsque l'analyse comparative est effectuée en utilisant une véritable analyse d'analyse comparative, il y a un compromis entre le débit et le temps de réponse. Plus le débit est élevé, plus l'impact du temps de réponse est élevé. Le rapport performance / prix de la VM Ampère Altra est 47% plus élevé, avec un temps de réponse moyen en baisse de 11% de moins que la machine virtuelle Intel, un rapport de performance / prix plus élevé de 37% de la VM AMD et un temps de réponse moyen inférieur de 9% en baisse.
Amadeus a désormais porté suffisamment de composants d'application pour exécuter des applications réelles (pas seulement des repères). La société termine actuellement les tests d'intégration et vérifie la partie finale de la plate-forme. Une fois terminé, Amadeus commencera à mettre à l'échelle des environnements de production dans plusieurs régions azure.
Le premier processeur natif du cloudAmpère est conçu pour le cloud computing durable, offrant des performances élevées prévisibles, une évolutivité de la plate-forme et une efficacité énergétique que l'industrie n'a jamais vue auparavant. Nous vous invitons à en savoir plus sur le travail de nos développeurs, à trouver les meilleures pratiques, aux idées et à rejoindre la conversation: développeur.amperecomputing.com et communautaire.amperecomputing.com.
Contactez notre équipe de vente experte pour des partenariats ou pour plus d'informations ou obtenez un accès à l'essai aux systèmes AMPERE via notre programme d'accès aux développeurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!