ホームページ >テクノロジー周辺機器 >IT業界 >Ampere AltraインスタンスでのAmadeusクラウド移行
(この記事はもともとAmpere Computingによって公開されました)
それはB2Bの会社であるため、あなたはアマデウスに精通していないかもしれませんが、インターネットでフライトやホテルを検索すると、舞台裏でアマデウスがサポートするサービスを使用している可能性が高いと、ディディエ・スペジアは言います。アマデウスの建築家。
Amadeusは、航空会社、ホテルチェーン、旅行代理店、空港など、観光業界の多くの参加者をサポートする世界をリードする旅行IT会社です。 Amadeusのビジネスの1つは、旅行代理店やKayakやExpediaなどの企業にフライト検索および価格設定サービスを提供することです。 Amadeusは、多次元インデックスの事前計算を必要とする予算ベースのクエリやカレンダーが制約したクエリなど、より高度な機能もサポートしています。幅広い航空会社の中で利用可能な座席で適切なフライトを検索することは非常に困難です。
最良のソリューションを取得することはNPパズルと見なされるため、最良の回答を提供するために、Amadeusはブルートフォース方法、グラフアルゴリズム、ヒューリスティックの組み合わせを使用します。大規模な分散システムが必要であり、多くのCPUを消費し、現在はAmadeusの内部施設で数千のマシンで実行されています。顧客のニーズを満たすために、Amadeusは世界中で複数のオンプレミス施設を運営しており、複数のクラウドサービスプロバイダーでワークロードを実行しています。
数年前、アマデウスは、その内部リソースの大部分をAzureに移行するために、大規模な複数年のプロジェクトを開始しました。この特定のユースケースのために、AmadeusはMicrosoftと協力してAmpere Armベースの仮想マシン(VM)を検証しました。
MicrosoftのMo Farhatが議論でコメントした:
私たちの観点から…[Microsoft]はお客様の選択肢を提供したいと考えています。 1つのアーキテクチャと別のアーキテクチャの間、または1つのCPUと別のアーキテクチャ間で起動することはありません。さまざまなオプションを提供し、信頼できるアドバイスを提供したい...当初、アマデウスは、移行の一部としてさまざまなアーキテクチャを導入することに必ずしも関心がありませんでした。 Speziaは次のように述べています
さまざまなアーキテクチャのみを導入します。いくつかの利点を期待しているため、アンペアから得られるパフォーマンス/価格比について非常に心配しています。そのワークロードに最適なCPUのワークロード。
彼らは、X86よりも最大の比較優位性を提供すると考えているため、Ampereで最初に実行された大規模で分散されたコンピューティング集約型Cアプリケーションを選択しました。
アームベースのマシンは良い選択かもしれないと考えていますが、もちろん、仮定を検証して確認する必要があります。最初にいくつかの合成ベンチマークを実行しました。 ...結果は肯定的ですが、合成ベンチマークはあまり関連性がありません。新しいCPUアーキテクチャをエコシステムに導入することはニュートラルではないので、より良い保証が必要であり、ベンチマークに実際のアプリケーションコードを使用することを決定します。 …アプリケーションは大規模なCコードベースです。基礎となる多くのオープンソースライブラリに加えて、いくつかのAmadeusミドルウェアライブラリ、そして最後に機能コード自体に依存しています。このコードのサブセットは、テストベンチでベンチマークを実行するために分離されています。
プロジェクトを成功させた要因の1つは、プロジェクトの初期にAmpereサーバーを取得するAmadeusチームの能力でした。ディディエは言った:
まず、Amadeusは、内部でAmpere Altra CPUを含むいくつかのマシンをインストールしました。それらは最初の移植作業に使用されており、今日までCI/CDを実行しています。私たちはパブリッククラウドに移動しており、複雑なエコシステムと非常に混合されているため、Azureで提供されているVMと同じCPUアーキテクチャを持ついくつかのマシンをオンプレミスを展開できることに非常に感謝しています。 CI/CDのターゲットアーキテクチャを実行しているマシンを使用して、クロスコンパイルの代わりにテストを使用することは非常に貴重であることがわかりました。
アプリケーションのCIは、Amadeus LabsのAmpereサーバーで引き続き実行されます。
チャレンジ
コードポーティングは、CI/CDに影響を与えるARM64互換ツールチェーン(AARCH64ターゲット)ですべてを再コンパイルすることから始まりました。
このコードをアンペアに移植するプロセスは非常にスムーズでしたが、いくつかの問題が見つかりました。 「char」データ型が署名されているか符号なしで、x86とarm64で異なるかなど、いくつかのプラットフォーム固有のコンパイラ動作があり、アプリケーションは動作について仮定します。
大規模なCコードベースをコンパイルするために、AmadeusはGCCとClang Cコンパイラの両方を使用します。移植の一部として必要な変更の中で、ARM64サポートの改善を活用するために、いくつかのオープンソース依存関係をアップグレードする必要があります。これらのアップグレードの一部には、さらにコードの変更が必要なAPIまたは動作の変更が含まれます。さらに、移行の一部として、X86(未定義またはプラットフォーム定義の動作に関連する)に表示されなかった潜在的なコードの問題が公開され、固定されました。
展開
クラウドでは、AmadeusアプリケーションがOpenShiftクラスター(Red Hat Kubernetesベースのコンテナプラットフォーム)に展開されます。生産環境で実行するには、アプリケーションには完全なミドルウェアエコシステム(エンタープライズサービスバス、伐採、監視施設など)が必要です。これもOpenShiftでホストされています。Amadeusは、アプリケーションインフラストラクチャ全体をARM64に移行したくありません。別の信頼できるパートナーであるRed Hatは、不均一なハードウェアアーキテクチャをサポートしてサポートされている機能としてOpenShiftにサポートするKubernetes機能を提供しました。
具体的には、これは単一のOpenShiftクラスターにx86およびアーム計算ノードを含めることができることを意味します。 X86およびARM64ノードを使用してノードセットを定義し、タグと「ブルース」でコンテナを展開することにより、開発者はポッドをスケジュールするためにどのVMタイプを決定できます。したがって、Amadeusアプリケーションインフラストラクチャのサポートコンポーネントは、従来のX86 VMで実行される可能性があり、Amadeusは、ARM64で実行されるアプリケーションポッドがコストとパフォーマンスの理由でAzure DPS V5 VMをAmpere Altra CPUを搭載して実行できることを決定します。
不均一なクラスタリングは、増分移行をサポートし、OpenShiftクラスターの数を2倍にしないようにするために重要です。
result
明らかに、生産に入る前に、アマデウスはいくつかのベンチマークで仮説を検証したいと考えています。 32 VCPUのVMSを使用して、CPUBENCH1A合成ベンチマークを使用して、単一のアンペアAltra VM(D32PS_V5)を提供し、パフォーマンス/価格比は同等のIntel VMよりも50%高く、RAWスループットは同等のAMD VMよりも20%高くなります。 13%高く、パフォーマンス/価格のスループットが27%高くなっています。実際のショッピングアプリケーションベンチマークを使用してベンチマークが行われると、スループットと応答時間の間にトレードオフがあります。スループットが高いほど、応答時間の影響が大きくなります。 Ampere Altra VMのパフォーマンス/価格比は47%高く、平均応答時間はIntel VMよりも11%低く、AMD VMのパフォーマンス/価格比が37%、平均応答時間が9%低くなります。
Amadeusは、実際のアプリケーションを実行するのに十分なアプリケーションコンポーネントを移植しました(ベンチマークだけでなく)。同社は現在、統合テストを完了し、プラットフォームの最終部分を検証しています。完了すると、Amadeusは複数のAzure領域で生産環境のスケーリングを開始します。
Ampereの最初のクラウドネイティブプロセッサは、持続可能なクラウドコンピューティングのために構築されており、業界がこれまでに見たことのない予測可能な高性能、プラットフォームのスケーラビリティ、電力効率を提供します。開発者の仕事について詳しく学び、ベストプラクティスや洞察を見つけ、会話に参加することをお勧めします:Developer.AmpereComputing.comとcommunity.amperecomputing.com。
パートナーシップまたは詳細については、専門家の営業チームに連絡するか、開発者アクセスプログラムを通じてAmpere Systemsへの試用アクセスを取得してください。
以上がAmpere AltraインスタンスでのAmadeusクラウド移行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。