本ブログは、企業が直面する実際の問題を取り上げる新たなブログシリーズの第1回です。ここでは、VolterraのApp Delivery Network(ADN)が、取り上げた問題にどのように対処するかをご紹介します。今回は、世界中のオンライン企業が日々直面している、Webアプリケーションのパフォーマンスに関する重要な課題を詳しく解説します。この課題は、多くの消費者が在宅勤務をしている状況によって、さらに深刻化しています。また、アプリケーションを書き換えることなく、Volterraが企業のWebアプリを「Un-Distance」し、アプリケーションパフォーマンスを77%向上させるうえでどのように役立つかをご説明します。
Webアプリのパフォーマンスとは?
Webアプリのパフォーマンスは通常、エンドユーザーがページのコンテンツを表示できるようになるまでにかかる時間で測定されます。Web開発者は、First Contentful Paint、Largest Contentful Paint、Document Completeなど、複数の指標を使用してWebアプリのパフォーマンスを測定します。このブログでは、Webアプリのパフォーマンス指標として「Document Complete」を使用しています。Web開発者は、Web Page Test、Google Lighthouse、Rigorなどのツールを使用して、これらの指標を測定します。
Webアプリのパフォーマンスが重要な理由
Webアプリのパフォーマンスがわずかに低下するだけでも、ユーザーエクスペリエンスに大きな影響を及ぼし、その結果、オンラインポータル経由の売上にも影響します。Eコマース大手のAmazonは、アプリケーションのパフォーマンスが1秒低下すると、16億ドルの収益損失につながると報告しています。Akamaiによる少し前のレポートによると、複数の業種のオンライン企業でも同様の経済的影響が確認されています。GoogleとMicrosoftも、同程度の経済的影響を示す数値を報告しています。

これらのデータから、オンライン企業がWebアプリケーションのパフォーマンスを最重要視していることが明確にわかります。
課題とは?
eコマース分野のオンライン企業を具体例として考えてみましょう。多くのeコマース企業は、1か所または数か所のデータセンターでWebアプリケーションを運用していますが、ユーザーが居住するすべての国にデータセンターがあるわけではありません。ユーザーとデータセンターが異なる国や地域にある場合、両者間のネットワーク遅延が大きくなり、ページの読み込みに6~12秒近くかかることがあります。前述のとおり、ページの読み込み時間が5秒を超えると、直帰する確率は90%に上昇します。
図2に示すように、Webアプリのページ読み込みを分解して見ていきましょう

- まず、安全なSSLセッションを確立します。そのためには、ユーザーのブラウザとWebアプリケーションの間で6回のメッセージ交換が必要です。
- 次に、Webアプリは通常、ユーザーのブラウザに保存されたCookieを使用して、そのユーザーがeコマース事業者のアカウントを持っているかどうかを確認します。
- Cookieに基づき、ユーザーがアカウントを持っている場合はログインページが表示され、持っていない場合はゲストとして購入手続きを行うページが表示されます。
高遅延のリンク(大西洋横断または太平洋横断リンクの可能性があります)を介して伝送する場合、安全なSSLセッションを確立するだけで6つのメッセージが必要となるため、ページの読み込み時間に確実に影響し、結果としてユーザーエクスペリエンスが低下します。
Volterra ADNはアプリのパフォーマンスをどのように向上できるのでしょうか?
画像の圧縮や依存関係の最適化によってページの読み込み時間を短縮するなど、アプリケーションを最適化してWebアプリのパフォーマンスを向上させる手法は数多くあります。しかし、アプリケーション設計の前提となるビジネス要件によっては、こうした最適化を実施できない場合も少なくありません。また、実施できる場合でも、アプリを開発した担当者がすでに組織を離れていたり、新しいサービスの開発に追われていたりするため、現実的な選択肢にならないことがあります。そのため、eコマース企業のDevOpsチームは、アプリケーションを変更せずにアプリのパフォーマンスを向上できるソリューションを重視しています。
Volterraは、VoltMeshとVoltStackという2つの製品を提供しています。これらをVolterraのADNと組み合わせることで、アプリケーションのパフォーマンスを最大75%向上できます(次のセクションのデモをご覧ください)。VolterraのVoltMeshは、グローバルに分散されたネットワーキングおよびセキュリティ製品であり、VolterraのADN上で構成すると、アプリケーションアクセラレーション機能も利用できます。VolterraのVoltStackは、分散型のアプリケーション展開とライフサイクル管理を提供します。これにより、アプリケーションの一部をVolterraのADNにオフロードし、アプリケーションのパフォーマンスをさらに向上できます。
VoltMeshとVoltStackは、次の3つの方法でeコマース企業のWebアプリケーションのパフォーマンス向上に対応します
ソリューション1:Volterra ADNでのSSL終端(別名:TLSオフロード)
Webアプリのパフォーマンスを向上させる最もシンプルな方法は、Volterra Global ADNでSSLセッションを終端することです。SSLセッションの確立に必要な6つのメッセージは、国内のグローバルネットワークエッジにローカルで送信されるため、大西洋横断リンクや太平洋横断リンクを経由しません。また、リモートのVolterraグローバルネットワークサイトとオリジンサーバーの間ではSSLセッションが維持されるため、パフォーマンスがさらに向上します。この仕組みを図3に示します。

ソリューション2:Cookie処理など、レイテンシーの影響を受けやすい処理をVolterra ADNに移行
パフォーマンスをさらに向上させるため、企業はアプリケーションのうちレイテンシーの影響を受けやすい部分をADNにデプロイできます。Webアプリケーションでは、Cookie処理、GraphQL、Backend for Frontendなどが該当します。たとえばeコマース企業では通常、Cookieを処理してユーザーに表示するページを決定します。ユーザーがアカウントを持っている場合はログインページを、持っていない場合はゲスト用ページを表示します。世界の反対側にある一元化されたデータセンターやクラウドでCookieを処理する場合と比べ、F5のADNで処理することでパフォーマンスが大幅に向上します。これを図4に示します。

ソリューション3:Webアプリのフロントエンド(製品カタログなど)自体をエッジ、すなわち実店舗に移行
Macy’s、Home Depot、Targetなど、多くの小売事業者は実店舗も展開しています。消費者は店舗内でオンラインの商品カタログを閲覧し、商品の場所を確認したり、セールやクーポンを利用したりします。ユーザー体験を向上させるため、Webアプリのフロントエンドのみを店舗内のコンピューティング環境に移行することもできます。データベースなど、アプリのその他のコンポーネントは、フロントエンドの商品カタログほど頻繁にはアクセスされないため、バックエンドのデータセンターに残すことができます。この構成を図5に示します。

あらゆるソリューションで考慮すべき主要なアーキテクチャ原則
この問題は本質的に、複数の異種クラウドにまたがる分散コンピューティングの問題です。DevOpsチームは、パブリッククラウドプロバイダー、CDNプロバイダー、エッジプロバイダーなど、さまざまなベンダーの個別ソリューションを組み合わせて独自に構築することも、分散クラウドサービスプラットフォームプロバイダーのパッケージソリューションを購入することもできます。課題については図6に示します。

DevOpsチームがソリューションを評価する際に考慮すべき、アーキテクチャ上の主な原則を以下に示します。
- 複数のクラウドにわたる一貫したアプリケーションランタイム環境: DevOpsチームのアプリケーションは、プライベートデータセンターまたはパブリッククラウドであるバックエンドクラウドのほか、エッジ拠点や実店舗に分散して配置されます。これらの環境では、アプリケーションランタイムがそれぞれまったく異なる可能性があります。DevOpsチームは、Kubernetesを活用して、こうした分散クラウド全体に一貫したアプリケーションランタイム環境を提供するソリューションを優先的に検討する必要があります。Kubernetesはクラウド環境を均質化し、アプリケーションの各部分をクラウド間で容易に移動できるようにします。
- 地理的近接性に基づくトラフィックルーティング: アプリケーションのフロントエンドは、クラウド、エッジ、実店舗のエッジなど、さまざまな場所にデプロイされる可能性があります。そのため、どのソリューションでも、ユーザーのトラフィックをフロントエンドサービスがデプロイされている最寄りの場所に転送できるようにする必要があります。また、検討対象のソリューションでは、DevOpsチームによるインターネットルーティングポリシーの変更が不要であることも求められます。
- グローバル負荷分散:バックエンドサービスが世界各地の複数の場所に配置される可能性があるため、検討するソリューションにはグローバル負荷分散機能が必要です。
- 複数のクラウドにわたる統一されたアプリケーションおよびネットワークセキュリティポリシー: アプリケーションコンポーネントの配置場所はリージョンによって異なる可能性がありますが、検討対象となるソリューションには、フロントエンドサービスがどのクラウドにデプロイされていても、統一されたアプリケーションおよびネットワークセキュリティポリシーを適用できる機能が必要です。
- 複数のクラウド、アプリケーション、ネットワーク接続を一元的に可視化: 分散クラウド環境では、複数のクラウドにまたがるアプリケーションや接続の問題をトラブルシューティングすることは極めて困難です。検討するソリューションには、複数のクラウドにまたがる接続、セキュリティ、アプリケーションのデプロイを一元的に可視化する機能が必要です。
Volterraのソリューションがもたらす成果
テスト環境
次に示すテスト環境を使用して、前のセクションで説明した各Volterraソリューションによるパフォーマンス向上を実証しました。
- 使用したWebアプリケーションは、Online Boutiqueです。これはGoogleが提供するクラウドネイティブなマイクロサービスのデモアプリケーションです。図7に示すように、このWebアプリケーションは11個のマイクロサービスで構成されています。

- Webアプリのパフォーマンスはwebpagetest.orgを使用して測定しました
- webpagetest.orgでWebアプリのパフォーマンスを判定するために使用した指標は「Document Complete」でした
- この企業は、パリにデータセンターを置く欧州のeコマース企業です
- ユーザー(またはクライアント)は常にサンフランシスコに所在します。
テストシナリオと結果
以下の4つのシナリオをテストし、各シナリオで得られたパフォーマンスの向上について説明します。
ベースラインシナリオ:まず、図8に示すように、ユーザーがサンフランシスコにいて、Webアプリ全体がパリのデータセンターで稼働している場合のパフォーマンスをベースラインとして測定しました。このシナリオにおけるWebアプリのパフォーマンスは3.5秒でした。

ソリューション1のテストシナリオ: ソリューション1のテストでは、ユーザーは引き続きサンフランシスコにおり、Webアプリも引き続きパリのデータセンターで稼働しています。ただし、SSLセッションは、サンノゼのVolterra ADN上で稼働するVoltMeshリバースプロキシで終端されます。このシナリオを図9に示します。

VoltMeshは、サンノゼのPoPで稼働するリバースプロキシと、パリのデータセンターで稼働するWebアプリケーションの間に、永続的なSSLセッションを自動的に確立します。Webアプリケーションのパフォーマンスは2.9秒に向上し、約18%の改善となりました。
ソリューション2のテストシナリオ: ソリューション2のテストでは、フロントエンドと通貨マイクロサービスをサンノゼのADNにデプロイします。その他のマイクロサービスとデータベースは、引き続きパリのデータセンターで稼働します。このシナリオを図10に示します。

フロントエンドと通貨のマイクロサービスのみを移行するのは、ユーザーが通常のブラウジングを行う際に関与するのが、これらのマイクロサービスだけだからです。Webアプリのパフォーマンスは2秒に向上し、ソリューション1の結果と比べて31%改善します。
ソリューション3のテストシナリオ: ソリューション3のテストでは、フロントエンドと通貨マイクロサービスを、実店舗のエッジに設置した汎用Intel NUC(4仮想コア)にデプロイしました。

フロントエンドと通貨マイクロサービスのみを移行するのは、実店舗のエッジでユーザーが気軽に閲覧する際に関与するのが、これらのマイクロサービスだけだからです。Webアプリの応答時間は0.8秒に短縮され、ソリューション2の結果と比べて60%改善します。
結果の概要と経済的価値
テスト結果と、それによって得られる経済的価値の概要を図12に示します。経済的価値は、改善された秒数に、1秒の改善が組織にもたらす価値を掛けることで算出できます。たとえば、Amazonでは1秒の改善による経済的価値を16億ドルと評価しているため、ソリューション3はベースラインと比較して43億ドルの経済的価値をもたらします。

これらの結果からわかるように、DevOpsチームは、このブログで提案した3つの選択肢を利用することで、アプリケーションに対するセキュリティ保護のレベルを維持しながら、アプリケーションを書き換えることなく、パフォーマンスを大幅に向上させることができます。分散クラウドプラットフォームで解決できる実際のお客さまのユースケースについて詳しく知りたい方や、実際のお客さまのユースケースを共有したい方は、LinkedInまたはTwitterからお気軽にご連絡ください。
著者について

関連するブログ記事

F5 Application Study Tool:OpenTelemetryによるF5 BIG-IP環境の監視
F5の新しいオープンソースツールは、BIG-IP環境を詳細に可視化し、データを追跡するとともに、強力でカスタマイズ可能なインサイトを得るための基盤を提供します。
F5 BIG-IPでAI防御を実現
F5 BIG-IP Advanced WAF、BIG-IP APM、BIG-IP SSL Orchestratorが、生成AIアプリ向けに包括的なセキュリティソリューションを提供する仕組みをご覧ください。
F5 Advanced WAFによるGraphQL APIの保護
ここ数年、多くの組織がデジタルトランスフォーメーションを進めており、COVID-19のパンデミックによってその動きは加速しています。
アプリケーションサービスの現状 通信業界版:リーダーとしての台頭
通信ネットワークが進化し、さまざまな業界の幅広いユースケースに対応するなか、通信業界の回答者がテクノロジーリーダーとしての存在感を高めていることがわかります。
デジタルトランスフォーメーションは、単なるペーパーレス化ではない
デジタルトランスフォーメーションは、単なるペーパーレス化ではありません。真のモダナイゼーションにアプリケーションアーキテクチャとセキュリティの再構築が必要な理由を、F5ブログでご覧ください。
やめましょう。もう本当にやめましょう。HTTPSはHTTPより高速ではありません。
もうやめましょう。HTTPSはHTTPより高速ではありません。プロトコルのパフォーマンスに関する微妙な違いと、暗号化トラフィックを適切に最適化する方法については、F5ブログをご覧ください。