最適化は長年にわたって研究と議論が行われてきた分野です。ADC としてのNetScalerは、様々なアプリケーション、プロトコル、ユースケース向けのトラフィック最適化において卓越した能力を提供します。過去10年間で「最適化」という言葉は、常にアプリケーションとサーバーの性能と効率性を最適化する方法を指すものとして使われてきました。しかし、現在では、モビリティの登場により状況が大きく変化しています。多くの企業がBYODというコンセプトを受け入れているため、モビリティへの戦略的な移行がさらに加速化しています。また、今やあらゆるデータおよびアプリケーションがモバイルデバイスへとストリーミングされているため、モバイルストリーミングの最適化に関するニーズが高まっています。モバイルを通じたビジネスにおいて、モバイルデバイスを使用した場合の生産性は、企業にとって重大な関心事となっています。NetScaler MobileStreamの最適化テクノロジーは、このような新しい課題に正面から取り組んでおり、このテクノロジーを使用すると、モバイルデバイス上でのデータやアプリケーションの配信を以前の5倍に高速化できます。

ここでちょっと過去を振り返って、モビリティにより何が変わったか、そしてモビリティはエンドユーザーエクスペリエンスにどのような影響を与えたかを考えてみましょう。注目すべき変化としては次のことが挙げられます。

  • 多種多様なデバイスが出現した
  • 様々なファームウエアでの実行が可能となった
  • 様々な画面サイズと解像度がサポートされるようになった
  • ユニークなブラウザ特性がサポートされるようになった
  • 2G、3G、LTE/4G、Wifiなどの接続メディアがサポートされるようになった
  • 同時に複数の接続回線を利用できるようになった
  • アクセスポイントのロケーションとタイプが増加した
  • 負荷の変動に応じて異なるネットワーク速度を提供することが可能になった
  • より重い処理をクライアントへとオフローディングすることが可能になった

このように、モビリティによって多くの変化がもたらされた結果、単一のソリューションでこれらの変化に対応するために必要となるすべての機能をカバーすることは事実上不可能となっています。このため、モバイルストリーム最適化ソリューションには、ネットワークや接続からアプリケーションレイヤに至るまでの最適化を実現するような複数のテクノロジーがパッケージ化されています。パッケージ化されているテクノロジーの例としては次のものがあります。

接続性

  • マルチパスTCP
  • ドメインシャーディング(Domain Sharding)

プロトコル

  • SPDY
  • TCP輻輳制御

アプリケーションとデータ

  • イメージの最適化
  • JavaScriptの最適化
  • スタイルシートの最適化

接続性

今日のあらゆるモバイルデバイスはネットワークに接続されており、しかも多くの場合、複数のインターフェイスを通じて接続されます。これは、ユーザーが同時に複数の回線を使用できることを意味します。これは確かに良いニュースですが、我々はこのような同時接続を実際に利用することがあるでしょうか?NetScalerは、マルチパスTCPプロトコルを導入することにより、同一エンドポイントへの複数のパスを利用できるようにしています。マルチパスTCPプロトコルでは、NetScaler上の単一の論理MPTCPセッション内で複数のパスを利用することにより、1つのパスが有効である限り接続を生きている状態に保ちます。1つのパスまたは接続がダウンした場合でも、同じセッション内にある別の接続を通じてデータ転送が継続されるため、エンドユーザーはサービスの停止を体感することがなくなります。

モバイルユースケースにおいては、Webオブジェクトとの接続も大きな役割を担います。ほとんどのWebブラウザには、与えられた1つのドメインでオープン可能な同時接続数に関して内部的な制限があります。多くのオブジェクトを含んでいるWebページでは、すべての埋め込みオブジェクトをページに表示する場合に、このような制限がメインのボトルネックとなります。ドメインシャーディング機能を使うと、実行時にサブドメインを作成し、これらのサブドメインを通じてブラウザに同時接続をオープンさせることができます。この機能は、1つのドメインにつき8~10の同時接続しかオープンできないという制限があるブラウザの場合に有効です。

プロトコル

プロトコルレイヤの最適化は、データ転送が最も適した方式で実施されることを保証する方法の1つです。我々は、長年にわたってTCPやHTTPの最適化されたバージョンを実行してきました。モバイルに注力するようになったことで、我々は、TCP Westwood+のようなTCPの輻輳制御アルゴリズムを実行するための機能を追加しました。このアルゴリズムは、接続が保証されずパケットロスが頻繁に発生するような接続環境におけるモバイルユースケース向けに設計されたものです。そのようなネットワーク環境やユースケースの場合、通常のアルゴリズムを使用すると、パケットロスが起こるたびにウィンドウサイズが半分に縮小されるため、大きな遅延が発生してしまいます。

同様に、HTTPフロントの場合、SPDYプロトコルを利用できます。SPDYプロトコルは、クライアント通信を高速化するようにHTTPを改良したものです。現在、高度なブラウザのほとんどがSPDYをサポートしていますが、NetScalerはSPDY v2およびv3のゲートウェイとして動作することにより、サーバーやアプリケーションに大きな変更を加えることなく、クライアントサイドの通信がより高速に実施されることを保証します。

アプリケーションとデータ

通常のシナリオにおいて、画像はWebページの約60%を占めています。これは、画像処理の分野には最適化のチャンスが豊富にあることを意味します。単純な最適化の例としては、GIF形式の画像をPNGに変換することや、JPG画像を最適化することが挙げられます。オブジェクトのダウンロード試行を抑制するのと同じ要領で、画像のダウンロード試行を抑制できます。例えば画像のLazy Load機能を使用すると、ユーザーがWebページの特定セクションを表示している間に、Webページの長さと、関連するイメージをロードするタイミングを指定できます。様々な画面サイズに対応する必要がある場合、指定の属性に合致するまで画像サイズを縮小することによっても、効率性を改善しネットワークを行き来するデータ量を削減できます。画像に固有の最適化のほとんどは非常に安全であるため、最初に取り掛かることを推奨します。

JavaScriptはWebコンテンツ内に含まれており、多くの場合、単一のページ上に複数のJavaScriptファイルが存在します。ほとんどの場合、これらのファイルは論理的な順番に並べられておらず、これらのファイルを結合してオブジェクトの数を減らすことすら試みられません。これらのファイルの中には、その中身をHTMLコード内にインライン化することでサイズを縮小できるものがあります。また、この結果として、別のオブジェクトをダウンロードする必要もなくなります。さらに、スペースを削除しコメントを削減することにより、約30%の帯域幅量を節約できます。アクション指向のロジックのほとんどがページの末尾で必要とされることを理解している場合、JavaScript全体をページの末尾に移動することで、ローディングやレンダリングのエクスペリエンスを改善できます。

現在のほとんどのWebページには、コンテンツのレイアウトや表示属性の設定に使用されるCSSファイルやスタイルシートも含まれています。JavaScriptファイルと同様に、CSSファイルには多くの数があり、特定のニーズ向けの特殊な小さなファイルが数多く存在しますが、これらはHTMLコード内にインライン化できます。また、複数のCSSファイルを結合することで、オブジェクトの数を減らし、全体的なスループットを改善できます。ほとんどの場合、CSS処理は、ページのロード時に必要となるため、CSSファイルをまとめてページの先頭に移動することを推奨します。さらに、外部インポートをリンクに変換することや、CSS内の画像をインライン化することもできます。小さな矢印キーやボタンなどはすべてCSSファイル内に画像として含めるようにします。空白文字やコメントを削除することによってもファイルサイズを縮小できます。

単一のシステム内で数多くのテクノロジーが連係して動作することにより、データの配信を最適化し、モバイルデバイスへのアプリケーションの配信を以前の5倍に高速化することが可能となります。我々は、著名なWebサイトで複数のテストを実施した結果、NetScalerのMobileStreamテクノロジーを使用すると性能が大幅に改善されることを確認しました。我々がテストに使用したwww.ndtv.comのスナップショットと、NetScalerのMobileStreamテクノロジーを使用して得られた結果を以下に示します。

上記の図を見ると、NetScalerのMobileStreamテクノロジーを使用した場合、ページのロード時間と描画時間が大幅に改善されていることが分かります。

www.airfrance.com のダイレクトアクセスと最適化されたアクセスを比較した簡易ウォーターフォールチャートを下記に示します。

ダイレクトアクセス

 ダウンロードサイズ: 275.8 KB

ロード時間: 11.26

NetScaler MobileStreamを介したアクセス:

ダウンロードサイズ: 76.9 KB

ロード時間: 2.61

上記のチャートを見ると、同じサイトにNetScaler MobileStream経由でアクセスした場合には、ダウンロードサイズとロード時間の両方が明らかに減っていることが分かります。これらの機能を組み合わせることで、エンドユーザーエクスペリエンスを改善し、ネットワーク経由でのロード時間を短縮できます。この記事で紹介したすべてのテクノロジーが単一のNetScalerスタックに含まれていることに注意してください。NetScaler MobileStreamは、モバイルユーザーの受け入れを希望している企業にとって最適なテクノロジーです。

※この記事は以下の日本語訳になります。

/blogs/2014/05/06/netscaler-mobilestream-improves-mobile-app-performance-by-5x/