ウェザー・リポート: 再構築可能なアプリケーション・ショーケースを作成する

パターンを使用することで再利用可能にする素晴らしい WebSphere CloudBurst アプライアンス・プロジェクト

IBM WebSphere の新興技術エバンジェリストである Dustin Amrhein が、ショーケースとしてのエンタープライズ・アプリケーション環境を WebSphere CloudBurst アプライアンスを使用して構築するに至るまでの作業について紹介します。この環境は、さまざまなクライアント・セッションをホストすることや、オンデマンドで再構成することができるため、それらのクライアント・セッションの多種多様なインスタンスをサポートすることができます。

Dustin Amrhein, Technical Evangelist, IBM

Author photoDustin Amrhein は、WebSphere Application Server 開発チームのメンバーとして IBM に入社しました。この開発チームに在籍している間は、主に Web サービス・インフラストラクチャーと Web サービス・プログラミング・モデルに取り組んでいました。また、Java ランタイム用の RESTful なサービスのフレームワーク開発も行いました。現在の役割は、WebSphere Client Technical Professional です。



2012年 4月 26日

私の仲間である技術者達は、この感覚をよく理解できると思います。この感覚というのは、e-メール、ミーティング、電話会議など、企業の世界を構成するあらゆるものによって、疲れ切ってしまったときに受ける感覚です。そうした感覚を皆さんが頻繁に経験することがないことを祈りますが、皆さんが私と同じような人間であるなら、その感覚から皆さんを救済する方法は 1 つしかありません。

背景

Dustin が全身全霊を傾けている彼のブログを My developerWorks でご覧ください (My developerWorks に公開されている Dustin の My developerWorks プロフィールからも何かを学べるかもしれません)。

それは、技術者としての皆さんの能力を発揮することです!

まさにそのとおりです。今こそ極端な偏見を持って、電話を切り、Web ミーティングのブラウザーを閉じ、e-メールの受信箱で削除ボタンを使用する時です。そして、コーディング、スクリプト作成、構成、統合を行う時です。言い換えるならば、手袋を外し、手を汚すべき時なのです。

解決すべき問題

このトピックに関するスキルを磨いてください

このコンテンツは、皆さんのスキルを漸進的に磨いていくための Knowledge Path の一部です。次のリンクをご参照ください。 クラウド・コンピューティング: Software as a Service の紹介

少し前、私は日常の作業から離れて上記のような作業を必要としていました。幸いなことに私は、WebSphere CloudBurst アプライアンスを使用した素晴らしいプロジェクトに関わることができました。

さまざまな顧客との間で今後行われる予定の協力作業をサポートするために、ある IBM 内のグループが私達のチームに支援を求めてきました。彼らは、さまざまなクライアント・セッションをホストするために使用できる、ショーケースとしてのエンタープライズ・アプリケーション環境の構築に関して支援を必要としていたのです。最初にそうした環境を構築することに加え、彼らはその環境をオンデマンドで再構築し、そうしたクライアント・セッションの多種多様なインスタンスをサポートする必要もありました。

私達のチームはぜひとも支援したいと思い、即座に当然の質問をしました。つまり、そのエンタープライズ・アプリケーション環境で何を必要としているのかを尋ねたのです。当然ながら、彼らの最初の答えは「アプリケーション」であり、具体的には「Java Web サービス・アプリケーション」でした。

どのような種類のアプリケーションが必要か、またどのようなユーザー・エクスペリエンスを提供したいのかを彼らが説明する中で、以下のようにさまざまな要求が明らかになりました。

  • そのアプリケーションはバックエンドのデータベースとの間でデータを読み書きできる必要があります。
  • そのアプリケーションは HTTP セッションを多用します。そのため、HTTP セッションの高可用性を保証する必要があります。
  • そのアプリケーションのインターフェースとして SOAP と JSON の両方を公開する必要があります。
  • そのアプリケーションに対する需要は一定せず、需要が集中する場合もあれば、ほとんど需要がない場合もあります。

インフラストラクチャーを定義する

そこで私達のチームは 2 つのことをしました。私達はまずアプリケーションの開発に取り掛かった後、そのアプリケーションのサポートに必要なインフラストラクチャーを決定することにしました。アプリケーション自体の開発は面白く、JPA、JSON、jQuery、そしてもちろん Web サービスなどのトピックを扱いますが、私はそうせずに、アプリケーションのインフラストラクチャーのサポートに集中したかったのです。

しかし間もなく、クライアントによって言及されたアプリケーションに対する要求をサポートするためには、いくつかの異なるアプリケーション・インフラストラクチャー・コンポーネントが必要であるということがわかりました。数回の徹底的な打ち合わせの後、私達はこのアプリケーションをサポートするために以下のようなインフラストラクチャーを使用することに決定しました。

  • WebSphere Application Server: WebSphere Application Server は、JEE Web サービスや関連する他のアプリケーション・コンポーネント (HTML ファイルなど) をホストするためのランタイム・コンテナーを提供します。
  • DB2 Enterprise Server Edition: この Web サービス・アプリケーションのバックエンド・データ・ストアとして DB2 を使用しました。
  • WebSphere Virtual Enterprise: WebSphere Virtual Enterprise には、ユーザーが利用できる非常に多種多様なフィーチャーがありますが、私達は動的クラスター機能とアプリケーション・サービス・レベル・ポリシー機能を利用しました。この Web サービス・アプリケーションを動的クラスターにデプロイし、サービス・レベル・ポリシーと組み合わせることで、アプリケーションのワークロードの変化に対応することができました。
  • WebSphere DataPower XC10: HTTP セッション用ストアとして WebSphere DataPower XC10 アプライアンスを使用しました。こうしたアプライアンスをまとめて活用することで、HTTP セッションの可用性を保証することができました。また HTTP セッションを WebSphere DataPower XC10 アプライアンスに格納したため、このアプリケーションの JVM 内で HTTP セッションが占有するはずであったメモリーを解放することができました。
  • WebSphere DataPower XI50: ここで挙げた他のすべてのコンポーネントと同様、WebSphere DataPower XI50 アプライアンスにも大量の機能があります。私達はこのアプライアンスの Web サービス・プロキシー機能と変換機能を利用して Web サービス・アプリケーションの JSON インターフェースを有効にしました。

エンタープライズ・ミドルウェア環境についてよく知っている人であれば、単純にこれらの各コンポーネントをデプロイするだけでも単純な作業ではないことを理解できると思います。しかし私達は、インフラストラクチャーの各部分を単純にインストールするだけではなく、それらの各部分を統合し、先ほど概説したアプリケーションの目標を実現する必要がありました。しかも、私達が作成した成果を他の人達が活用できるような手段を確立する必要もありました。そうした手段を確立することで、他の人達はいつでもタイムリーに環境をプロビジョニングすることができ、その環境は正確に構成されているという高い確信を持つことができます。


ツールと手法を選択する

上記のすべてを考慮した上で、私達はすべての要求を満たすソリューションである WebSphere CloudBurst にたどり着きました。

さらに詳しく言えば、対象のアプリケーション環境をユーザーがプライベート・クラウドにデプロイできるように、WebSphere CloudBurst のパターンを作成することにしました。

具体的には、先ほど概説したアプリケーションとアプリケーションのインフラストラクチャーの両方の構成をカプセル化したパターンを作成しました。このアプリケーション環境をセットアップする必要のある人は誰でも、単純に WebSphere CloudBurst アプライアンスにログインしてそのパターンをデプロイすると、ほんの数分でアプリケーション環境を起動して実行状態にすることができます。

デプロイ作業者は、アプリケーションと関連インフラストラクチャーのインストール、構成、統合の方法について理解する必要はありませんでした。それらの作業はパターンの中にカプセル化されているからです。また、パターンを使用することにより、いつユーザーがその環境をデプロイしても、その環境は必ず適切に構成されていることになります。


パターンを作成した結果

では、このパターンとはどのようなものなのでしょう?図 1 に示すように、このパターンは WebSphere Application Server、WebSphere Virtual Enterprise、DB2 Enterprise Server Edition のパーツで構成されています。

図 1. WebSphere CloudBurst のパターン
WebSphere CloudBurst のパターン

パターンを構成するコンポーネント

各コンポーネントは以下の機能を提供しています。

  • WebSphere Application Server: このパターンには 1 つのデプロイメント・マネージャーと 2 つのカスタム・ノードが含まれています。カスタム・ノードは WebSphere Application Server インスタンスをホストし、デプロイメントの際、WebSphere CloudBurst はそれらのインスタンスをデプロイメント・マネージャー・ノードが管理するセルに自動的にフェデレートします。
  • WebSphere Virtual Enterprise: このパターンには ODR (On-Demand Router: オンデマンド・ルーター) インスタンスが含まれています。ODR により、優先度に応じてワークフローを管理し、さまざまなアプリケーションにサービス・レベル・ポリシーを施行することができます。
  • DB2 Enterprise Server Edition: このパターンには、データベース・サーバーのインスタンスを表す 1 つの DB2 Enterprise Server Edition のパーツが含まれています。

重要な注意点として、私達は WebSphere CloudBurst の「拡張して取り込む」メカニズムを使用してカスタム・イメージを作成しました。このカスタム・イメージには WebSphere Application Server Hypervisor Edition に同梱されているすべてのものが (Intelligent Management Pack オプションによって) 含まれ、WebSphere CloudBurst アプライアンスに搭載されました。さらに私達は、WebSphere eXtreme Scale (WXS) クライアントのバイナリーをインストールしました。デプロイされた環境を構成する際に、これらのバイナリーを使用します。

スクリプト

構成に関して言えば、デプロイ時に必要な構成アクションのすべてをスクリプト・パッケージとしてパターンに含めました。図 1 を見るとわかるように、このパターンには以下のように多様なスクリプト・パッケージが含まれています。

  • IBM HTTP Server ノードを追加する: このスクリプト・パッケージはデプロイメント・マネージャー・ノードと同じ仮想マシン内で実行される IBM HTTP Server のインスタンスを作成します。WebSphere CloudBurst はこのスクリプト・パッケージを提供してくれます。
  • WXS のプロファイルを増強する: このスクリプト・パッケージは、(カスタム・イメージによる) WebSphere Application Server 仮想マシン上にある WebSphere eXtreme Scale のバイナリーを使用することで、WebSphere eXtreme Scale のプロファイルとするべきプロファイルを増強します。HTTP セッション・ストアとして WebSphere DataPower XC10 を使用するようにアプリケーションを構成するためには、このプロファイルを WebSphere eXtreme Scale のプロファイルにしなければなりません。
  • DB2 データ・ソースを作成する: このスクリプト・パッケージは WebSphere Application Server のデータ・ソースを構成します。この Web サービス・アプリケーションは、このデータ・ソースを使用して DB2 データベース・サーバー・インスタンスに対してデータの読み書きを行います。
  • プロキシーを作成する: このスクリプト・パッケージは IBM HTTP Server インスタンスから WebSphere DataPower XI50 アプライアンスへのリバース HTTP プロキシーを作成します。こうすることで、クロスドメイン・スクリプトの制約を克服することができ、WebSphere Application Server ドメイン内で実行されるアプリケーションから別のドメインの WebSphere DataPower XI50 アプライアンスに Ajax リクエストを送信することができます。
  • DataPower のリライト・ポリシーを構成する: このスクリプト・パッケージは WebSphere DataPower XI50 で定義された Web サービス・プロキシーを更新し、新たにデプロイされた Web サービス・アプリケーションの場所を指すようにします。
  • DB2 クライアントの JAR をインストールする: このスクリプト・パッケージは必要な WebSphere Application Server ノードに DB2 クライアントの JAR をインストールします。
  • 動的にクラスターを構成する: このスクリプト・パッケージはデプロイメントの際に WebSphere Virtual Enterprise の動的クラスターを作成します。このパターンの「Advanced options (高度なオプション)」で「Define dynamic clusters (動的クラスターの定義)」オプションを選択すると、WebSphere CloudBurst がこのスクリプト・パッケージを提供します。
  • XC10 を構成する: このスクリプト・パッケージは WebSphere DataPower XC10 を HTTP セッション・ストアとして使用できるように、この Web サービス・アプリケーションを構成します。
  • アプリケーションをインストールする: このスクリプト・パッケージは、この Web サービス・アプリケーションを WebSphere Virtual Enterprise の動的クラスターにインストールします。
  • DB2 データベースを作成する: このスクリプト・パッケージは、このアプリケーションに必要なデータベースとテーブルを DB2 データベース・サーバー・インスタンスに作成します。

全体として捉えると、これらのスクリプト・パッケージとパーツとを組み合わせることで、(いったんデプロイされると) 必要なものをすべて提供するパターンを定義しています。このパターンを複数の異なるユーザーに公開すると、ユーザーは必要なときにこのパターンをデプロイすることができます。そしてデプロイされた結果としての仮想システムは、彼らのために構成、カスタマイズされたアプリケーション環境を含み、オンプレミスのクラウドで実行されます。図 2 は、図 1 のパターンをデプロイすることで作成される仮想システムと、その統合ポイントを示しています。

図 2. デプロイされた仮想システム
デプロイされた仮想システム

パターンによる成果

簡単に言えば、このパターンにより、私達のチームは私達の目標のすべて、そして私達が一緒に作業しているユーザーの目標のすべてを達成することができました。私達は、直接デプロイ可能なユニット (パターン) を提供することができ、その結果、それぞれミドルウェアのスキル・レベルが異なる多様なユーザーが、実際に動作する実用的なアプリケーション環境をプロビジョニングできるようになりました。

また、顧客は必要な時にいつでも、この環境をごく短時間で (平均で 60 分を少し下回る程度で) プロビジョニングすることができ、しかも忠実に環境を再現できるようになりました。彼らがこの環境をクラウド内で実行していたという事実は単なる「おまけ」にすぎません。

次のステップ

WebSphere CloudBurst の使い方を学ぶためには以下のような方法があります。

今回の試みで、私は以下の 2 つの重要な点を実証することができました。

  • 第 1 に、パターンをベースに、アプリケーションとアプリケーションのインフラストラクチャーを構成し、クラウドにデプロイする手法は、そうした環境の管理者とユーザーの両方にとって大きな価値があり、また非常に有望です。
  • 第 2 に、これは特に WebSphere CloudBurst に関する点ですが、このアプライアンスを使用することにより、非常に単純な環境から複雑な環境に至るまで、必要とされるクラウド・ベースの任意の環境を構築できることが、この手法によって明確に実証されました。

もし皆さんが、日常的にミドルウェア・アプリケーション環境を作成し、デプロイしているのであれば、そうした環境への WebSphere CloudBurst の導入と、WebSphere CloudBurst のパターン・ベースの手法を適用した場合に皆さんと皆さんの組織にもたらされる価値について、真剣に検討することを期待しています。

参考文献

学ぶために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, WebSphere, Information Management, Java technology
ArticleID=810983
ArticleTitle=ウェザー・リポート: 再構築可能なアプリケーション・ショーケースを作成する
publish-date=04262012