195 か国で事業を展開する Amadeus は、世界の旅行業界に IT ソリューションを提供する大手企業です。トランザクション当たりわずか 100 マイクロ秒の CPU 消費の増加が、1 年間で数千ドルのホスティング コスト増につながるような大規模ソリューションを手がけています。
このたび同社は、コストとパフォーマンスの管理を目的に Google Cloud Platform を導入しました。
航空券の平均検索数に対する予約の成約率(look-to-book レシオ)は、以前は 10 対 1 に達していました。それが今では
1000 対 1 まで落ち込むことも珍しくありません。
しかも、航空券の需要は決して一定ではありません。需要変動に対応するには、ピーク時の大量のトラフィックを予測し、必要なキャパシティ調整を行う必要があります。
これは航空会社にとって厄介な課題です。増加の一途をたどるオンライン購入トランザクションを処理するため、オンライン旅行サイトはキャッシュ ベースのソリューションを開発しました。
しかし、キャッシュ ベースのシステムには限界があります。航空会社の高度な売上管理ポリシーを正確に反映しないからです。
私たち Amadeus は、旅行の未来を形作る技術を開発しています。私たちのお客様とパートナーのビジネス ニーズを理解するため、航空会社に影響を与えるトレンドに非常に注目しています。そうしたトレンドの1 つが、さまざまなデジタル チャネルを通じて航空会社の商品をチェックして購入する消費者の急激な増加です。
大手航空会社は、旅行者から得られる価値を最大化して売り上げに結びつけることを目指しており、高度な売上管理ソリューションに投資しています。
売上高を最大化するには、すべての航空券検索をリアルタイムに処理し、特定の料金クラスの適切な空席を最適な価格で提供する必要があります。さらに、航空会社があらゆる販売機会を捉えるには、さまざまな購入プラットフォームにわたって一貫した形で空席を提供することが重要です。
ところが、キャッシュ ベースのシステムはリアルタイムの売上最大化と相反し、適切な商品を適切な顧客に適切なタイミングと価格で提供する航空会社のマーチャンダイジングとパーソナライズの妨げになります。
すべての流通チャネルにわたって適切で一貫した形で航空券の提供を続けるのは大変ですが、どうすればマスマーケット向けの動的コンテンツ配信で高いパフォーマンスを確保できるのでしょうか?
私たち Amadeus は、
Google Cloud Platform を利用してユニークなクラウド ベースのソリューションを開発しました。この
Amadeus Airline Cloud Availability は、航空会社の予約システムから空席検索と購入トランザクションの処理を肩代わりします。また、それらの予約システムでは最終的な予約と決済が行われます。
このソリューションにより、どのようなパブリック クラウドにもプライベート クラウドにもデプロイできます。オンライン旅行代理店やメタ検索エンジン、グローバル流通システムで使用される購入プラットフォームに近い場所で、より効率の高いソリューションをフルに活用して航空券の提供が行われるようになります。結果的に、航空会社が検索および購入トラフィックの大幅な増加に効率的に対応するのに役立ちます。
私たちは 2015 年 2 月から 7 月まで、Lufthansa と共に GCP で Amadeus Airline Cloud Availability(プロジェクト コードネームは “R-Box” )のパイロット運用を実施しました。その目的は下記の 2 つでした。
Google Compute Engine を使用した空席検索処理のスケーラビリティとパフォーマンスの実証。 Amadeus は現在、ドイツのミュンヘンにあるプライベート データセンターで、140 社以上の航空会社のために空席検索を 1 秒当たり 400 万件以上処理しています。このトラフィックは毎年 50% のペースで増えています。
空席検索および処理トラフィックのインフラストラクチャ コストの抑制
空席検索は、Couchbase クラスタでデータにアクセスする C++ バックエンド ファームで処理されます。分散 NoSQL ストアである Couchbase は、航空券のフライトと料金に関する詳細データをホストしています。
こうした大規模アプリケーションでは、CPU 消費が重要な指標になります。
トランザクション当たりわずか 100 マイクロ秒の CPU 消費の増加が、1 年間で数千ドルのホスティング コストの上昇につながるからです。
私たちのソリューションの
Compute Engine へのデプロイは、最初からシームレスに行うことができました。直感的なコンソールに加え、プリインストールされていた一連のさまざまな Linux イメージ(CentOS 7.1 を使用)のおかげです。
空席検索を処理するバックエンド インスタンスの最初に作成されたものは、初めてネットワークに接続されてからほんの 2 時間後に、トラフィックを受け入れる準備が整っていました。
1,500 コアのチャレンジ
Amadeus と Google のエンジニアリング チームは、3 つのリージョン(米国中部、西欧、東アジア)に分散して割り当てられる 1,500 コアのキャパシティを最大限有効に活用するために協力しました。これらの各リージョンには、Couchbase のレプリケーション プロトコルである Cross-datacenter Replication(XDCR)を使用して航空券データが配布されています。
私たちのミッションは、1 ドル当たりの空席検索処理数を増やすことでした。そのためにいくつかの措置を講じました。
トランザクション当たりの CPU パス長 の短縮。C++ の低レベルのいくつかの最適化を行い、Google のメモリ アロケータである TCMalloc を利用して短縮を実現しました。
アプリケーションのコアを稼働させ続けることを目的とした Couchbase データ ストアの IO スループット の向上。私たちは Compute Engine の内部ネットワークの安定性と非常に低いレイテンシに強い印象を受けました(Couchbase クラスタ ノードへのラウンド トリップがサブミリ秒で安定しています)。
Couchbase クラスタをホストする VM 上での NOOP スケジューラの有効化(SSD のスループットを高めるために最適な IO スケジューリング パターンを実現します)。
サーバーを常に 85~90% の CPU 使用率で動作させるための VM サイズ (CPU /メモリの組み合わせ)の調整(アプリケーション サーバーには n1-highcpu-16 を、Couchbase クラスタ ノードには n1-highmem-4 を選択するなど)。
第 1 フェーズの変化
R-Box のパイロット運用の目標は当初計画よりもはるかに早く達成されました。GCP の柔軟性と Google のサポート チームのおかげです。
1,500 コアを使用した空席検索処理の全体的なスループットは、Amadeus と Google の協業開始からわずか 3 か月で倍増しました。
さらなる前進
私たちは現在、パイロット運用の第 2 フェーズに入っています。このフェーズでは以下のように、航空券需要の変動に応じたハードウェア キャパシティの動的な調整、VM のサイズの微調整、
Compute Engine のプリエンプティブル VM(私たちがよく “低コストの VM ” と呼んでいるものです)の活用を目指しています。
動的なキャパシティ調整
Kubernetes (Google のコンテナ オーケストレーションおよびクラスタ管理ソリューション)を利用して実装が進められています。
Kubernetes は、空席検索および処理トラフィックの変動に応じてアプリケーションの VM を動的に起動またはシャットダウンできるようにするために、R-Box フレームワークに導入されつつあります。
Kubernetes は、私たちの PaaS パートナーである Red Hat が、PaaS 製品およびサービスである OpenShift の一部として出荷しています(私たちは社内アプリケーション プラットフォームの Amadeus Cloud Services を、こうした戦略的製品上に構築しています。IaaS プロバイダーに対する独立性を確保するためです)。
さらに、インスタンスの料金が分単位の従量制であることも、ホスティング コストの最適化に役立ちます。
プリエンプティブル VM
2015 年 5 月にリリースされた
プリエンプティブル VM は、通常の VM よりもはるかに低コストで(70% 安く)利用できます。
ただし、
Compute Engine が他のタスクのためにプリエンプティブル VM の使用するリソースにアクセスする必要がある場合、プリエンプティブル VM は、
Compute Engine によってシャットダウンされる(プリエンプトされる)可能性があります。
私たちは、R-Box のコンピュテーション VM の数を 10% 余分に設定し、これらをすべてプリエンプティブル インスタンスのみで賄うことを計画しています。これは、「こうした VM の一部が日常的にシャットダウンされてしまっても、全体的な処理能力は空席検索を処理するのに必要なレベルに保たれる」という想定に基づいています。
こうして新機能を活用することにより、大幅なコスト節減が見込まれます。
カスタム マシン タイプ
2015 年 11 月にリリースされたカスタム マシン タイプを、これまで使用してきた通常のインスタンス タイプ(n1-highcpu-16 と n1-highmem-4)の代替としてセットアップしています。
カスタム VM のサイズは、自社にとって必要最小限のコアとメモリ(GB 単位)で設定できます。カスタム マシン タイプの目的は、CPU とメモリの無駄をなくすことにあります。
Google Cloud Platform のインパクト
Google Cloud Platform を利用した私たちのプロジェクトは非常にエキサイティングで印象深いものでした。その理由は以下のとおりです。
パフォーマンス
ネットワークのレイテンシ、スループット、安定性は驚くべきものです。また、多くのリージョンで行われている VM の次世代 Intel アーキテクチャ(Haswell)への移行により、空席検索の処理パフォーマンスに CPU の大幅な性能向上の効果が現れるでしょう。
安定性
6 か月にわたるパイロット期間に VM が停止してしまうことはほとんどありませんでした。メンテナンスの通知プロセスも円滑に機能しています。VM のライブ マイグレーションは本当に透過的です。
モニタリング
Stackdriver フレームワークでは、システムに関する指標(CPU、メモリ、IO)とユーザー定義の KPI(1 秒当たりの空席検索処理数に類似)の両方のリポート機能が優れています。効率的なアラート システムやモバイル アプリの「Cloud Console」との組み合わせにより、本番グレードのモニタリング ソリューションがたちまち出来上がりました。
イノベーションのペース
6 か月のパイロット期間中に、私たちのプロジェクトに役立つ大きな発表が 3 つありました。プリエンプティブル VM のリリース、カスタム マシン タイプの導入、そして最も重要な、2015 年 5 月に行われた 15% の値下げです。
要約
Google Cloud Platform による R-Box のパイロット プロジェクトは、パフォーマンスの最適化に関する私たちのアプローチを変えました。私たちは CPU にどれだけコストをかけるかという観点を超えて、インフラストラクチャ全体で最適化を追求するようになったのです(最終的に重要なのは効率性です)。
Google Cloud Platform は、社内ベンチマーキングのための非常に効率的なサンドボックス環境です。
Google Cloud Platform が今後、Amadeus の多くのアプリケーションにとって理にかなったホスティング ソリューションとなるのは間違いないでしょう。
* この投稿は米国時間 1 月 5 日、Google Cloud Platform Team によって投稿されたもの(投稿はこちら)の抄訳です。
今回は、スペインに本拠を置く Amadeus のエアライン IT 担当 Senior Manager、Olivier Favorel 氏からお話を伺います。
図 1 : Amadeus Airline Cloud Availability のアーキテクチャ
195 か国で事業を展開する Amadeus は、世界の旅行業界に IT ソリューションを提供する大手企業です。トランザクション当たりわずか 100 マイクロ秒の CPU 消費の増加が、1 年間で数千ドルのホスティング コスト増につながるような大規模ソリューションを手がけています。
このたび同社は、コストとパフォーマンスの管理を目的に Google Cloud Platform を導入しました。
航空券の平均検索数に対する予約の成約率(look-to-book レシオ)は、以前は 10 対 1 に達していました。それが今では 1000 対 1 まで落ち込むことも珍しくありません。
しかも、航空券の需要は決して一定ではありません。需要変動に対応するには、ピーク時の大量のトラフィックを予測し、必要なキャパシティ調整を行う必要があります。
これは航空会社にとって厄介な課題です。増加の一途をたどるオンライン購入トランザクションを処理するため、オンライン旅行サイトはキャッシュ ベースのソリューションを開発しました。
しかし、キャッシュ ベースのシステムには限界があります。航空会社の高度な売上管理ポリシーを正確に反映しないからです。
私たち Amadeus は、旅行の未来を形作る技術を開発しています。私たちのお客様とパートナーのビジネス ニーズを理解するため、航空会社に影響を与えるトレンドに非常に注目しています。そうしたトレンドの1 つが、さまざまなデジタル チャネルを通じて航空会社の商品をチェックして購入する消費者の急激な増加です。
大手航空会社は、旅行者から得られる価値を最大化して売り上げに結びつけることを目指しており、高度な売上管理ソリューションに投資しています。
売上高を最大化するには、すべての航空券検索をリアルタイムに処理し、特定の料金クラスの適切な空席を最適な価格で提供する必要があります。さらに、航空会社があらゆる販売機会を捉えるには、さまざまな購入プラットフォームにわたって一貫した形で空席を提供することが重要です。
ところが、キャッシュ ベースのシステムはリアルタイムの売上最大化と相反し、適切な商品を適切な顧客に適切なタイミングと価格で提供する航空会社のマーチャンダイジングとパーソナライズの妨げになります。
すべての流通チャネルにわたって適切で一貫した形で航空券の提供を続けるのは大変ですが、どうすればマスマーケット向けの動的コンテンツ配信で高いパフォーマンスを確保できるのでしょうか?
私たち Amadeus は、Google Cloud Platform を利用してユニークなクラウド ベースのソリューションを開発しました。この Amadeus Airline Cloud Availability は、航空会社の予約システムから空席検索と購入トランザクションの処理を肩代わりします。また、それらの予約システムでは最終的な予約と決済が行われます。
このソリューションにより、どのようなパブリック クラウドにもプライベート クラウドにもデプロイできます。オンライン旅行代理店やメタ検索エンジン、グローバル流通システムで使用される購入プラットフォームに近い場所で、より効率の高いソリューションをフルに活用して航空券の提供が行われるようになります。結果的に、航空会社が検索および購入トラフィックの大幅な増加に効率的に対応するのに役立ちます。
私たちは 2015 年 2 月から 7 月まで、Lufthansa と共に GCP で Amadeus Airline Cloud Availability(プロジェクト コードネームは “R-Box” )のパイロット運用を実施しました。その目的は下記の 2 つでした。
Google Compute Engine を使用した空席検索処理のスケーラビリティとパフォーマンスの実証。 Amadeus は現在、ドイツのミュンヘンにあるプライベート データセンターで、140 社以上の航空会社のために空席検索を 1 秒当たり 400 万件以上処理しています。このトラフィックは毎年 50% のペースで増えています。
空席検索および処理トラフィックのインフラストラクチャ コストの抑制
空席検索は、Couchbase クラスタでデータにアクセスする C++ バックエンド ファームで処理されます。分散 NoSQL ストアである Couchbase は、航空券のフライトと料金に関する詳細データをホストしています。
こうした大規模アプリケーションでは、CPU 消費が重要な指標になります。トランザクション当たりわずか 100 マイクロ秒の CPU 消費の増加が、1 年間で数千ドルのホスティング コストの上昇につながるからです。
私たちのソリューションの Compute Engine へのデプロイは、最初からシームレスに行うことができました。直感的なコンソールに加え、プリインストールされていた一連のさまざまな Linux イメージ(CentOS 7.1 を使用)のおかげです。
空席検索を処理するバックエンド インスタンスの最初に作成されたものは、初めてネットワークに接続されてからほんの 2 時間後に、トラフィックを受け入れる準備が整っていました。
1,500 コアのチャレンジ
Amadeus と Google のエンジニアリング チームは、3 つのリージョン(米国中部、西欧、東アジア)に分散して割り当てられる 1,500 コアのキャパシティを最大限有効に活用するために協力しました。これらの各リージョンには、Couchbase のレプリケーション プロトコルである Cross-datacenter Replication(XDCR)を使用して航空券データが配布されています。
私たちのミッションは、1 ドル当たりの空席検索処理数を増やすことでした。そのためにいくつかの措置を講じました。
トランザクション当たりの CPU パス長 の短縮。C++ の低レベルのいくつかの最適化を行い、Google のメモリ アロケータである TCMalloc を利用して短縮を実現しました。
アプリケーションのコアを稼働させ続けることを目的とした Couchbase データ ストアの IO スループット の向上。私たちは Compute Engine の内部ネットワークの安定性と非常に低いレイテンシに強い印象を受けました(Couchbase クラスタ ノードへのラウンド トリップがサブミリ秒で安定しています)。
Couchbase クラスタをホストする VM 上での NOOP スケジューラの有効化(SSD のスループットを高めるために最適な IO スケジューリング パターンを実現します)。
サーバーを常に 85~90% の CPU 使用率で動作させるための VM サイズ (CPU /メモリの組み合わせ)の調整(アプリケーション サーバーには n1-highcpu-16 を、Couchbase クラスタ ノードには n1-highmem-4 を選択するなど)。
第 1 フェーズの変化
R-Box のパイロット運用の目標は当初計画よりもはるかに早く達成されました。GCP の柔軟性と Google のサポート チームのおかげです。
1,500 コアを使用した空席検索処理の全体的なスループットは、Amadeus と Google の協業開始からわずか 3 か月で倍増しました。
さらなる前進
私たちは現在、パイロット運用の第 2 フェーズに入っています。このフェーズでは以下のように、航空券需要の変動に応じたハードウェア キャパシティの動的な調整、VM のサイズの微調整、Compute Engine のプリエンプティブル VM(私たちがよく “低コストの VM ” と呼んでいるものです)の活用を目指しています。
動的なキャパシティ調整
Kubernetes (Google のコンテナ オーケストレーションおよびクラスタ管理ソリューション)を利用して実装が進められています。Kubernetes は、空席検索および処理トラフィックの変動に応じてアプリケーションの VM を動的に起動またはシャットダウンできるようにするために、R-Box フレームワークに導入されつつあります。
Kubernetes は、私たちの PaaS パートナーである Red Hat が、PaaS 製品およびサービスである OpenShift の一部として出荷しています(私たちは社内アプリケーション プラットフォームの Amadeus Cloud Services を、こうした戦略的製品上に構築しています。IaaS プロバイダーに対する独立性を確保するためです)。
さらに、インスタンスの料金が分単位の従量制であることも、ホスティング コストの最適化に役立ちます。
プリエンプティブル VM
2015 年 5 月にリリースされたプリエンプティブル VM は、通常の VM よりもはるかに低コストで(70% 安く)利用できます。
ただし、Compute Engine が他のタスクのためにプリエンプティブル VM の使用するリソースにアクセスする必要がある場合、プリエンプティブル VM は、Compute Engine によってシャットダウンされる(プリエンプトされる)可能性があります。
私たちは、R-Box のコンピュテーション VM の数を 10% 余分に設定し、これらをすべてプリエンプティブル インスタンスのみで賄うことを計画しています。これは、「こうした VM の一部が日常的にシャットダウンされてしまっても、全体的な処理能力は空席検索を処理するのに必要なレベルに保たれる」という想定に基づいています。
こうして新機能を活用することにより、大幅なコスト節減が見込まれます。
カスタム マシン タイプ
2015 年 11 月にリリースされたカスタム マシン タイプを、これまで使用してきた通常のインスタンス タイプ(n1-highcpu-16 と n1-highmem-4)の代替としてセットアップしています。
カスタム VM のサイズは、自社にとって必要最小限のコアとメモリ(GB 単位)で設定できます。カスタム マシン タイプの目的は、CPU とメモリの無駄をなくすことにあります。
Google Cloud Platform のインパクト
Google Cloud Platform を利用した私たちのプロジェクトは非常にエキサイティングで印象深いものでした。その理由は以下のとおりです。
パフォーマンス
ネットワークのレイテンシ、スループット、安定性は驚くべきものです。また、多くのリージョンで行われている VM の次世代 Intel アーキテクチャ(Haswell)への移行により、空席検索の処理パフォーマンスに CPU の大幅な性能向上の効果が現れるでしょう。
安定性
6 か月にわたるパイロット期間に VM が停止してしまうことはほとんどありませんでした。メンテナンスの通知プロセスも円滑に機能しています。VM のライブ マイグレーションは本当に透過的です。
モニタリング
Stackdriver フレームワークでは、システムに関する指標(CPU、メモリ、IO)とユーザー定義の KPI(1 秒当たりの空席検索処理数に類似)の両方のリポート機能が優れています。効率的なアラート システムやモバイル アプリの「Cloud Console」との組み合わせにより、本番グレードのモニタリング ソリューションがたちまち出来上がりました。
イノベーションのペース
6 か月のパイロット期間中に、私たちのプロジェクトに役立つ大きな発表が 3 つありました。プリエンプティブル VM のリリース、カスタム マシン タイプの導入、そして最も重要な、2015 年 5 月に行われた 15% の値下げです。
要約
Google Cloud Platform による R-Box のパイロット プロジェクトは、パフォーマンスの最適化に関する私たちのアプローチを変えました。私たちは CPU にどれだけコストをかけるかという観点を超えて、インフラストラクチャ全体で最適化を追求するようになったのです(最終的に重要なのは効率性です)。
Google Cloud Platform は、社内ベンチマーキングのための非常に効率的なサンドボックス環境です。Google Cloud Platform が今後、Amadeus の多くのアプリケーションにとって理にかなったホスティング ソリューションとなるのは間違いないでしょう。