目次


IBM PureApplication System における WebSphere eXtreme Scale ベースのキャッシュ・サービスを探る

クラウド関連のパフォーマンスとスケーラビリティーの問題は、キャッシュ・サービスによって対処できます

Comments

エンタープライズ・アプリケーション向けクラウド・アプリケーション・プラットフォームである IBM PureApplication System 上で実行されるアプリケーションをはじめ、クラウド・エンタープライズ・アプリケーションのパフォーマンスとスケーラビリティーの問題に対処するソリューションとしては、キャッシュ・サービスがよく使われます。PureApplication System には、クラウド内の複数の仮想デプロイメントが情報をキャッシュに保管し、キャッシュされた情報をコンポーネント間で共有してアクセスできるように、組み込み共有キャッシュ・サービスが用意されています。このキャッシュ・サービスは、WebSphere eXtreme Scale (十分に弾力的なメモリー・ベースのストレージ・グリッド) のコードをベースとしており、WebSphere DataPower XC10 アプライアンスと同じような機能を提供します。WebSphere DataPower XC10 アプライアンスは、既存のアプリケーションに対する変更をほとんど、あるいはまったく伴わないデータ指向の分散キャッシング・シナリオをサポートするキャッシング・プラットフォームです。このアプライアンスが追加する弾力的なキャッシング機能により、アプリケーションをコスト効果の高い方法でスケーリングすることができます。

一方、WebSphere eXtreme Scale テクノロジーをフルに活用するために、以下のように eXtreme Scale をベースとした独自のキャッシュ・サービスを作成することもできます。

  • eXtreme Scale アプリケーションを WebSphere クラスターにデプロイして、eXtreme Scale キャッシュ・サービスにする
  • eXtreme Scale をインストールした一群の仮想マシンと併せて、キャッシング・サーバーを構成するいくつかのスクリプトを使用して (この組み合わせは、WebSphere eXtreme Scale 仮想システム・パターン (VSP) としても知られています)、eXtreme Scale キャッシュ・サービスを作成する

この記事では、PureApplication System で使用できるキャッシュ・サービスの選択肢として以下の方法について説明します。

  • 組み込み共有キャッシュ・サービスを使用する方法
  • WebSphere クラスター VSP を用いた eXtreme Scale キャッシュ・サービスを使用する方法
  • コア OS イメージをベースに用いた eXtreme Scale VSP を使用する方法

組み込み共有キャッシュ・サービスを使用する方法

PureApplication System の組み込み共有キャッシュ・サービスは、PureApplication System クラウド・グループの複数の仮想デプロイメントが情報をキャッシュに保管し、キャッシュされた情報をコンポーネント間で共有してアクセスするための共有サービスです。クラウド・グループごとに、そのグループに固有のキャッシュ・サービスが必要になります。

組み込み共有キャッシュ・サービスは、ポリシーに基づいて自動的にスケーリングします。ポリシーには、ユーザーが多少の調整を加えることも可能です。インスタンスの最大数は構成可能なので、キャッシュ・サービスの容量には上限を設定することができます。

組み込み共有キャッシュ・サービスは、WebSphere DataPower XC10 アプライアンスと同様のキャッシング機能を提供します。サポートされているデータ・グリッドには、以下の 3 つのタイプがあります。

  • 用途を選ばない単純なデータ・グリッド
  • WebSphere Application Server の動的キャッシュ・レプリケーション・グリッド。このグリッドでは、サーブレット、JSP、Web サービス、WebSphere Application Server コマンドの出力を、コンテナー単位でメモリーにキャッシングすることができます。
  • WebSphere Application Server の HTTP セッション・レプリケーション・グリッド。このグリッドは、ユーザーがアプリケーションと対話している間、ユーザー情報とユーザー・セッションの状態を維持するために使用します。

HTTP セッションを管理するためにキャッシュ・サービスを使用するには、通常は以下の手順に従うことになります。

  1. キャッシュ・サービスをターゲットのクラウド・グループにデプロイします。
  2. WAS (WebSphere Application Server) クラスター・パターンの「Deployment Manager (デプロイメント・マネージャー)」パートで、「XC10」フィーチャーを選択します。
  3. XC10 (キャッシュ・サービス) のキャッシング機能を利用してセッションを管理できるように、WAS サーバーまたはアプリケーションを構成します。

次は、WebSphere クラスター VSP を用いた eXtreme Scale キャッシュ・サービスを使用する場合を見ていきます。

eXtreme Scale キャッシュ・サービスと WebSphere クラスター VSP を使用する方法

WebSphere eXtreme Scale では、eXtreme Scale サーバー・コンポーネントが WAS-ND (WebSphere Application Server Network Deployment) 環境にデプロイされていて、eXtreme Scale を使用して WebSphere プロファイルが拡張されていれば、WAS-ND環境で、カタログ・サーバーとコンテナー・サーバーの両方を実行することができます (カタログ・サーバーは、グリッド・サーバーとコンテナーの正常な動作を維持するカタログ・サービスからなる JVM です。コンテナー・サーバーは、シャードを保持するグリッド・コンテナーをホストします。これらのシャードが、グリッド全体に含まれるデータを構成します)。eXtreme Scale サーバー・コンポーネントは、PureApplication System の WAS-ND 仮想イメージには含まれていません。

eXtreme Scale サーバーを PureApplication System の WAS-ND 環境でサポートするには、eXtreme Scale サーバー・コンポーネントを WAS クラスターのパートにインストールする必要があります。それには、WAS クラスター・パターンのデプロイ時に実行される、eXtreme Scale サーバー・コンポーネントをインストールするためのスクリプト・パッケージを使用します。

eXtreme Scale サーバー・コンポーネントを WAS-ND 内で使用できるようになったら、WebSphere クラスター上に eXtreme Scale キャッシュ・サービスを作成することができます。

eXtreme Scale キャッシュ・サービスを構成するパートは、カタログ・サーバーとコンテナー・サーバーの 2 つであり、eXtreme Scale カタログ・サーバー全体に対して 1 つ、eXtreme Scale コンテナー・サーバー全体に対して 1 つ、専用の WAS クラスターを割り当てます。カタログ・クラスターについては、各クラスター・メンバーを専用の仮想マシン (VM) 上で実行する必要があります。コンテナー・クラスターについては、クラスター・メンバーを同じ VM 上に配置することができます。ただし、最適なロード・バランシングを実現するには、それぞれの VM がまったく同じコンピューティング・リソースを持ち、同じ数のクラスター・メンバーをホストしていなければなりません。

カタログ・サーバー・クラスター

eXtreme Scale カタログ・サーバー専用のクラスターにインストールしなければならないものは何もありません。ただし、WebSphere Integrated Solutions Console を使用してデプロイした後に、スクリプト・パッケージを使用するか手作業で、eXtreme Scale カタログ・サービス・ドメインを作成し、そのカタログ・サービス・ドメインに、カタログ・サーバー・クラスターのすべてのクラスター・メンバーを追加する必要があります。

コンテナー・サーバー・クラスター

コンテナー・サーバー専用のクラスターには、eXtreme Scale アプリケーションをインストールする必要があります。eXtreme Scale アプリケーションは、1 つの JEE (Java Platform, Enterprise Edition) モジュールのみで構成された JEE アプリケーションです。eXtreme Scale アプリケーションは、JEE モジュールの META-INF フォルダーに、objectGrid.xml と objectGridDeployment.xml という専用の eXtreme Scale 構成 XML ファイルを 2 つ格納しています。

eXtreme Scale アプリケーションをコンテナー・サーバー・クラスターにインストールして起動した後、クラスター・メンバーは、このアプリケーションの中に含まれる eXtreme Scale 構成 XML ファイルに記述されている定義に従って、eXtreme Scale コンテナー・サーバーをホストします。

WAS クラスター・パターンで eXtreme Scale キャッシュ・サービスを有効にする

WAS クラスター・パターンには、「Deployment Manager (デプロイメント・マネージャー)」パートと「Custom Node (カスタム・ノード)」パートの両方が含まれています。パートとは、仮想マシン上で構成されるコンポーネントのことです。

  • デプロイメント・マネージャーの構成プロファイルは、複数の VM で構成される環境の基礎となります。デプロイメント・マネージャーを構成する場合、データベースのパートは必要になりません。
  • カスタム・ノードは、基本機能制御ノード、全機能制御ノード、またはデプロイメント・マネージャーで使用する、未構成ノードを提供します。「Custom Node (カスタム・ノード)」パートを構成するには、デプロイメント・マネージャー・パートが別の VM にデプロイ済みになっていなければなりません。

以下の構成タスクをカプセル化する一連のスクリプト・パッケージを実行することで、eXtreme Scale キャッシュ・サービスを有効にすることができます。

  • eXtreme Scale サーバー・コンポーネントのインストール
  • eXtreme Scale を使用したプロファイルの拡張
  • eXtreme Scale カタログ・サーバー・クラスターの作成
  • eXtreme Scale コンテナー・サーバー・クラスターの作成
  • eXtreme Scale カタログ・サービス・ドメインの作成と、そのドメインへの全カタログ・サーバー・クラスター・メンバーの追加
  • eXtreme Scale コンテナー・サーバー・クラスターへの eXtreme Scale アプリケーションのインストール
  • eXtreme Scale カタログ・サーバー・クラスターの起動
  • eXtreme Scale コンテナー・サーバー・クラスターの起動

最初の 2 つのタスク (インストールとプロファイルの拡張) は、「Deployment Manager (デプロイメント・マネージャー)」パートと「Custom Node (カスタム・ノード)」パートの両方で実行する必要があります。残りのタスクは、「Deployment Manager (デプロイメント・マネージャー)」パート上でのみ実行します。

パターン・デプロイメントの作成時に、これらの構成タスクを抽出します。WAS クラスター・パターンのデプロイメントが完了すると、eXtreme Scale キャッシュ・サービスが有効な状態になります。プロビジョニングされた eXtreme Scale キャッシュ・サービスは、WAS 内では「eXtreme Scale システム」と呼ばれます。

コア OS イメージをベースに用いた eXtreme Scale VSP を使用する方法

WebSphere eXtreme Scale に WebSphere Application Server は必要ありません。WebSphere eXtreme Scale は、Java Standard Edition JVM からインストールして実行することができます。

eXtreme Scale VSP は、コア OS イメージを出発点として作成することができます。デプロイ後の WebSphere eXtreme Scale VSP は、通常の WebSphere eXtreme Scale システムのように、PureApplication System 内の弾力的なキャッシュ・サービスとして使用することができます。

WebSphere eXtreme Scale VSP は、eXtreme Scale ソフトウェアのインストールと eXtreme Scale システム構成のセットアップを行うためのスクリプト・パッケージを使用して、コア OS イメージをベースに作成することができます (eXtreme Scale VSP には eXtreme Scale システムのライフサイクルを制御するためのスクリプトが含まれています)。

コア OS イメージを使用して eXtreme Scale キャッシュ・サービスを構築するための主要な構成タスクは、以下のとおりです。

  • eXtreme Scale ソフトウェアをインストールします (あるいは、拡張して取り込むという手法を使用して、eXtreme Scale がインストールされたカスタム OS イメージを作成することもできます。仮想イメージを拡張するプロセスでは、まず、仮想イメージをコピーして、そこに変更を加えます。変更後のイメージを新規仮想イメージとしてカタログに保管して、そのイメージを取り込みます)。
  • eXtreme Scale サーバー構成をセットアップします。コンテナー・サーバーを起動するには、2 つの eXtreme Scale 構成 XML ファイル (objectGrid.xml および objectGridDeployment.xml) が必要です。
  • カタログ・サーバーを起動します。
  • コンテナー・サーバーを起動します。

上記の構成タスクは、パターン・デプロイメントの作成時に実行します。WebSphere eXtreme Scale VSP のデプロイメントが完了すると、eXtreme Scale キャッシュ・サービスが有効な状態になります。プロビジョニングされた eXtreme Scale キャッシュ・サービスは、「スタンドアロン eXtreme Scale システム」と呼ばれます。

組み込みキャッシュ・サービスとカスタム eXtreme Scale キャッシュ・サービスの比較

組み込みキャッシュ・サービスとカスタム・キャッシュ・サービスが提供するランタイム・システムの品質は同じですが、アプリケーションの観点から見ると、サポートしている機能という点で、この 2 つには違いがあります。

  • カスタム eXtreme Scale キャッシュ・サービスには、すべての eXtreme Scale 機能が揃っています。
  • 組み込みキャッシュ・サービスがサポートしているのは、eXtreme Scale 機能のサブセットのみです。

したがって、カスタム eXtreme Scale キャッシュ・サービスでは、組み込みキャッシュ・サービスでサポートできるすべてのシナリオをサポートすることができます。組み込みキャッシュ・サービスでサポートする機能が制限されている理由は、ユーザーが構成や Java クラス・パスを変更することができないためです。

eXtreme Scale キャッシュ・サービスではサポートしていて、組み込みキャッシュ・サービスではサポートしていない主要な機能には、何があるのでしょう?

  • インライン・キャッシュ・トポロジー: eXtreme Scale アプリケーションの設計フェーズで行う重要な決定事項の 1 つは、インライン・キャッシュ・トポロジーとサイド・キャッシュ・トポロジーのどちらを選択するかです。インライン・キャッシュ・トポロジーを選択する場合、アプリケーションで eXtreme Scale Loader プラグインを使用してバックエンドのデータ・ストアを統合した上で、eXtreme Scale を主要なデータ操作手段として使用する必要があります。
  • DataGrid API: DataGrid API は、データが置かれている場所に対してのみならず、データ・グリッドのすべて、またはサブセットに対して、ビジネス・ロジックを実行するための、単純なプログラミング・インターフェースを提供します。この API では、並列 map と並列 reduce という、グリッド・プログラミングの一般的な 2 つのパターンがサポートされます。
  • Query API: eXtreme Scale Query API は、eXtreme Scale 問い合わせ言語を使用して、エンティティーまたはオブジェクトをベースとしたスキーマに対して SELECT タイプのクエリーを実行できる、強力なメカニズムです。複数の基準でデータを検索するアプリケーションには、この重要な機能が必要になります。
  • EntityManager API: EntityManager API は、関連したオブジェクトからなる複雑なグラフを宣言したり、そのようなグラフを操作したりするための簡単な方法を提供することによって、データ・グリッドの操作を単純化します。eXtreme Scale EntityManager API は JPA EntityManager API と似ていますが、この 2 つの間にはいくつかの違いがあります。
  • JPA ローダー: eXtreme Scale には、ユーザーが選択するローダーでサポートされているあらゆるデータベースを操作できるように、JPA (Java Persistence API) ローダー・プラグイン実装が組み込まれています。組み込み JPA ローダーを使用すると、システムがインライン・キャッシュ・トポロジーになります。
  • JPA L2 キャッシュ: eXtreme Scale に組み込まれている OpenJPA および Hibernate L2 キャッシュ実装を使用すると、OpenJPA アプリケーションや Hibernate アプリケーションのパフォーマンスを向上させることができます。OpenJPA および Hibernate の eXtreme Scale L2 キャッシュ実装を使用する場合、アプリケーション・コードを変更する必要はありません。したがって、パフォーマンスを向上させるのに最も簡単な手法となります。
  • データ・グリッドのカスタマイズ: eXtreme Scale では、定義されたプラグインをアプリケーションで使用することで、データ・グリッドをカスタマイズすることができます。プラグインとは、プラガバブル・コンポーネントに機能を提供するコンポーネントのことです。eXtreme Scale システムのプラグインには、ObjectGrid や BackingMap などがあります。アプリケーションでプラグインを使用することで、パフォーマンスを最大限発揮できるようにすることや、ランタイム動作を変更すること、必要な機能を追加することなどが可能になります。
  • 複数のデータ・センター・トポロジー: eXtreme Scale では、マルチマスター非同期レプリケーション・メカニズムを使用して、複数のデータ・センター・トポロジーを構築することができます。マルチマスター非同期レプリケーション・メカニズムを使用すると、2 つ以上のグリッドがまったく同一のコピーになります。各データ・グリッドは独立したカタログ・サービス・ドメインの中でホストされ、固有のカタログ・サービス、コンテナー・サーバー、そして一意の名前を持ちます。

アプリケーションの使用ケースに上記の機能が 1 つでも必要な場合は、カスタム・キャッシュ・サービスを採用してください。

まとめ

クラウド環境でのアプリケーションのパフォーマンスとスケーラビリティーを強化するには、キャッシュ・サービスをツールとしてセットアップするという方法を検討してください。キャッシュ・サービスを利用すると、システム上の最も頻繁に要求されるデータ・リソースにアクセスするための帯域幅において、需要のオーバーヘッドの大部分を削減することができます。

この記事では、エンタープライズ・クラウド・システム (PureApplication System) が組み込みツールによってキャッシュの管理をサポートする仕組みを詳しく説明しました。また、WebSphere eXtreme Scale のキャッシング機能を利用するカスタム・システムを構築して、さらに強力なキャッシュ管理を作成して統合する方法についても説明しました。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, WebSphere, Information Management, ビジネス・アナリティクス, Java technology
ArticleID=984070
ArticleTitle=IBM PureApplication System における WebSphere eXtreme Scale ベースのキャッシュ・サービスを探る
publish-date=10022014