(Dieser Artikel wurde ursprünglich von Ampere Computing veröffentlicht)
Sie sind mit Amadeus vielleicht nicht vertraut, da es sich um ein B2B-Unternehmen handelt. Wenn Sie jedoch nach Flügen oder Hotels im Internet suchen, besteht eine gute Chance, dass Sie die amadeus unterstützten Dienste hinter den Kulissen verwenden, sagt Didier Spezia, Cloud, Cloud Architekt bei Amadeus.
Amadeus ist ein weltweit führendes IT-Unternehmen, das viele Teilnehmer der Tourismusbranche unterstützt: Fluggesellschaften, Hotelketten, Reisebüros, Flughäfen usw. Eines der Unternehmen von Amadeus ist es, Reisebüros und Unternehmen wie Kajak oder Expedia Flugsuche und Preisdienste anzubieten. Amadeus unterstützt außerdem fortschrittlichere Funktionen wie budgetbasierte Abfragen und kalenderbezogene Abfragen, die eine vorab kalkulierende mehrdimensionale Indizes erfordern. Die Suche nach dem richtigen Flug mit verfügbaren Sitzen unter einer Vielzahl von Fluggesellschaften ist sehr schwierig.
Die beste Lösung wird als NP-Puzzle angesehen. Um die bester Antwort zu geben, verwendet Amadeus eine Kombination aus Brute-Force-Methoden, Graph-Algorithmen und Heuristiken. Es erfordert große verteilte Systeme und verbraucht viel CPU und läuft nun auf Tausenden von Maschinen in den internen Einrichtungen von Amadeus. Um den Kundenbedürfnissen gerecht zu werden, betreibt Amadeus mehrere lokale Einrichtungen auf der ganzen Welt und leitet Workloads bei mehreren Cloud-Dienstanbietern aus.
Vor einigen Jahren startete Amadeus ein großes, mehrjähriges Projekt, um die meisten internen Ressourcen in Azure zu migrieren. Für diesen speziellen Anwendungsfall arbeitete Amadeus mit Microsoft zusammen, um die ampere-ARM-basierte virtuelle Maschine (VM) zu überprüfen.
Microsofts Mo Farhat kommentierte in der Diskussion:
von unserem Standpunkt aus… [Microsoft] möchte unseren Kunden die Möglichkeit bieten. Wir werden [sie] zwischen einer Architektur und einer anderen nicht booten ... oder zwischen einer CPU und einer anderen. Wir möchten eine Reihe von Optionen bereitstellen und glaubwürdige Ratschläge geben ...
Amadeus war zunächst nicht unbedingt daran interessiert, verschiedene Architekturen als Teil des Übergangs einzuführen. Spezia sagte:
Wir stellen nur verschiedene Architekturen ein, weil wir einige Vorteile erwarten. Wir sind sehr besorgt über das Leistungs-/Preisverhältnis, das wir von Ampere erhalten können. Wir möchten Maschinen mit herkömmlichen X86 -CPUs mit Maschinen mit Ampere -CPUs mischen und laufen Die Arbeitsbelastung auf der CPU, die am besten zu dieser Arbeitsbelastung passt.
Sie wählten eine große, verteilte, rechenintensive C-Anwendung als erste, die auf Ampere ausgeführt wird, da sie glauben, dass dies den größten vergleichenden Vorteil gegenüber X86 bietet.
Wir glauben, dass ARM-basierte Maschinen eine gute Wahl sind, aber natürlich müssen wir unsere Annahmen überprüfen und bestätigen. Wir haben zuerst eine Reihe von synthetischen Benchmarks ausgeführt. ... Die Ergebnisse sind positiv, aber die synthetischen Benchmarks sind nicht sehr relevant. Da die Einführung neuer CPU -Architekturen in das Ökosystem nicht neutral ist, benötigen wir bessere Garantien und beschließen, den realen Anwendungscode für das Benchmarking zu verwenden. … Die Anwendung ist eine große C -Codebasis. Es stützt sich auf viele zugrunde liegende Open -Source -Bibliotheken sowie einige Amadeus Middleware -Bibliotheken und schließlich auf den Funktionscode selbst. Eine Teilmenge dieses Codes wurde für das Ausführen von Benchmarks auf der Testbench isoliert.
Einer der Faktoren, die das Projekt erfolgreich machten, war die Fähigkeit des Amadeus -Teams, zu Beginn des Projekts Ampere -Server zu erhalten. Didier sagte:
Zunächst hat Amadeus mehrere Maschinen mit Ampere Altra CPUs intern installiert. Sie werden für die erste Transplantation verwendet und führen bis heute unseren CI/CD aus. Da wir gerade in die öffentliche Cloud wechseln und mit komplexen Ökosystemen stark gemischt sind, sind wir sehr dankbar, dass wir einige Maschinen vor Ort einsetzen können, die die gleiche CPU-Architektur haben wie die in Azure angebotenen VMs. Wir fanden heraus, dass die Verwendung von Maschinen von der Zielarchitektur für CI/CD und Tests anstelle von Cross-Compiling von unschätzbarem Wert ist.
Die CI der Anwendung wird weiterhin auf dem Ampere -Server in Amadeus Labs ausgeführt.
Unsere Codeportierung begann damit, alles mit einem ARM64-kompatiblen Toolchain (AARG64-Ziel) neu zu kompilieren, was Auswirkungen auf unsere CI/CD hatte.
Der Prozess der Portierung dieses Codes auf Ampere war sehr reibungslos, obwohl einige Probleme gefunden wurden. Einige plattformspezifische Compiler-Verhaltensweisen, z. B. ob der "Char-Datentyp" signiert oder nicht signiert ist, unterscheiden sich auf X86 und ARM64, und die Anwendung macht Annahmen über das Verhalten.
Um ihre große C -Code -Basis zu kompilieren, verwendet Amadeus sowohl GCC- als auch Clang -C -Compiler. Unter den im Rahmen der Portierung erforderlichen Änderungen müssen einige Open -Source -Abhängigkeiten aktualisiert werden, um die verbesserte ARM64 -Unterstützung zu nutzen. Einige dieser Upgrades umfassen API- oder Verhaltensänderungen, die weitere Codesänderungen erfordern. Darüber hinaus wurden im Rahmen der Migration einige potenzielle Codeprobleme, die sich nicht auf x86 (im Zusammenhang mit undefiniertem oder plattform definiertem Verhalten) zeigten, freigelegt und festgelegt.
In der Cloud werden Amadeus-Anwendungen auf OpenShift-Clustern (Red Hat Kubernetes-basierte Containerplattform) bereitgestellt. Um in einer Produktionsumgebung auszuführen, erfordert die Anwendung ein komplettes Middleware -Ökosystem (Enterprise Service Bus, Protokollierungs- und Überwachungseinrichtungen usw.), das auch in OpenShift gehostet wird.
Amadeus möchte seine gesamte Anwendungsinfrastruktur nicht auf ARM64 migrieren. Ein weiterer vertrauenswürdiger Partner, Red Hat, hat Kubernetes -Funktionalität geliefert, die openShift als unterstützte Funktionen heterogene Hardwarearchitekturen unterstützt.
Insbesonderebedeutet dies, dass ein einzelner OpenShift -Cluster X86- und Arm -Computerknoten enthalten kann. Durch Definieren von Knotensätzen mit X86- und ARM64 -Knoten und Bereitstellen von Containern mit Tags und "Blues" können Entwickler problemlos entscheiden, welcher VM -Typ Pods planen. Daher können die Unterstützungskomponenten der Amadeus -Anwendungsinfrastruktur auf einem herkömmlichen X86 -VM ausgeführt werden, und Amadeus entscheidet, dass die auf ARM64 ausgeführten Anwendungskapseln aus Kosten- und Leistungsgründen auf Azure DPS V5 VM ausgeführt werden können, die von Ampere Altra CPU angetrieben werden.
heterogenes Clustering ist entscheidend, um eine inkrementelle Migration zu unterstützen und zu vermeiden, dass die Anzahl der OpenShift -Cluster verdoppelt wird.
Vor dem Eintritt in die Produktion hofft Amadeus offensichtlich, ihre Hypothesen mit einigen Benchmarks zu überprüfen. Unter Verwendung von Cpubench1a -Synthese -Benchmark unter Verwendung von VMs von 32 VCPU 13% höher und 27% höherer Leistung/Preis -Durchsatz.
Wenn das Benchmarking mit einem realen Einkaufsanwendungs-Benchmarking durchgeführt wird, besteht ein Kompromiss zwischen Durchsatz und Reaktionszeit. Je höher der Durchsatz, desto größer ist der Einfluss der Reaktionszeit. Die Leistung/das Preisverhältnis von Ampere Altra VM ist um 47% höher, wobei eine durchschnittliche Reaktionszeit um 11% niedriger ist als die Intel VM, eine höhere Leistung/das Preisverhältnis von 37% von AMD VM und eine durchschnittliche Reaktionszeit von 9%.
Amadeus hat jetzt genügend Anwendungskomponenten portiert, um echte Anwendungen auszuführen (nicht nur Benchmarks). Das Unternehmen absolviert derzeit Integrationstests und überprüft den letzten Teil der Plattform. Nach Abschluss wird Amadeus die Skalierung von Produktionsumgebungen in mehreren Azure -Regionen beginnen.
Der erste Cloud-nativen Prozessor von Ampere ist für nachhaltiges Cloud-Computing entwickelt und bietet vorhersehbare hohe Leistung, Plattformskalierbarkeit und Energieeffizienz, die die Branche noch nie zuvor gesehen hat. Wir laden Sie ein, mehr über die Arbeit unserer Entwickler zu erfahren, Best Practices, Erkenntnisse und Gespräche beizutreten: Entwickler.amperecomputing.com und Community.amperecomputing.com.Wenden Sie sich an unser Expert -Verkaufsteam für Partnerschaften oder für weitere Informationen oder erhalten Sie einen Testzugang zu Ampere -Systemen über unser Entwicklerzugriffsprogramm.
Das obige ist der detaillierte Inhalt vonAmadeus Cloud -Migration in Ampere Altra -Instanzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!