目次


IBM Bluemix のサービスを利用して Java EE アプリケーションに新たな命を吹き込む

Comments

IBM Bluemix は IBM Open Cloud Architecture の実装であり、Cloud Foundry を利用することによって開発者がクラウド・アプリケーションを迅速に構築、デプロイ、管理できるようにする一方、利用可能なサービスとランタイム・フレームワークで構成される、成長しつつあるエコシステムを活用しています。

このチュートリアルでは、IBM DevOps Services のコードを Eclipse ワークスペースに取り込む方法、アプリケーションをビルドして Bluemix にデプロイする方法、そしてクラウド内でデータベース・サービスなどのサービスを利用する方法を説明します。このプロセスを説明するために、ここでは CloudTrader というサンプル・アプリケーションを取り上げます。

既存のアプリケーションを Bluemix にマイグレーションし、Bluemix のサービスを利用してそれらのアプリケーションに新たな命を吹き込む方法を示すために、10 年前のデイトレード・アプリケーションに変更を加えることで CloudTrader を作成しました。

CloudTrader は、オンラインの株取引システムをシミュレートする Java EE アプリケーションです。このアプリケーションを使用することにより、ユーザーはログイン、ポートフォリオの表示、株価情報の参照、株の売買をすることができます。このアプリケーションは主に、Java サーブレット、JSP、そして JavaBeans で作成されています。既存のアプリケーションを Bluemix にマイグレーションし、Bluemix のサービスを利用してそれらのアプリケーションに新たな命を吹き込む方法を示すために、10 年前のデイトレード・アプリケーションに変更を加えることで CloudTrader を作成しました。

CloudTrader アプリケーションの「Trading & Portfolio (取引とポートフォリオ)」ウィンドウのスクリーンショット
CloudTrader アプリケーションの「Trading & Portfolio (取引とポートフォリオ)」ウィンドウのスクリーンショット

CloudTrader アプリケーションは以下の Bluemix サービスを利用することができます。

  • SQLDB (必須): CloudTrader は SQLDB を使用します。SQLDB はオンデマンドのリレーショナル・データベース・サービスであり、メインのデータベースとして DB2 が使用されています。このデータベースは瞬く間に作成され、CloudTrader で利用できるようになります。データ・ソースの接続情報は JNDI 名前空間のエントリーとして作成され、アプリケーションはそれを参照して使用を開始することができます。
  • Session Cache: このサービスを CloudTrader にバインドすると、アプリケーションの複数インスタンス全体にわたるすべてのセッションを維持することが可能になります。障害が発生した場合には、セッションはシームレスに回復されます。
  • Auto-Scaling: Auto-Scaling により、アプリケーションのコンピューティング・キャパシティーを自動的に増減することができます。アプリケーションのインスタンスの数は、皆さんが定義する Auto-Scaling ポリシーに基づいて動的に調整されます。
3 つの Bluemix サービスが実行されている Bluemix クラウドのイメージ
3 つの Bluemix サービスが実行されている Bluemix クラウドのイメージ

それでは始めましょう。手順としては、IBM DevOps Services からアプリケーションのコードをダウンロードし、少し変更を加えて Bluemix にデプロイします。また、データベース・サービスと分析サービスも作成します。

IBM DevOps Services、Eclipse、Bluemix の間の関係を示すイメージ
IBM DevOps Services、Eclipse、Bluemix の間の関係を示すイメージ

必要となるもの

ステップ 1. IBM DevOps Services からコードを入手する

  1. 上掲の「Get the code (コードを入手する)」ボタンをクリックするか、IBM DevOps Services にアクセスして「CloudTrader」を検索した後、「rvennam | CloudTrader」をクリックするか、このいずれかを実行します。
  2. CloudTraderEclipseProject.zip ファイルをダウンロードします。
  3. Eclipse を起動し、「File (ファイル)」 > 「Import (インポート)」 > 「General (一般)」 > 「Existing Projects into Workspace (既存プロジェクトをワークスペースへ)」 > 「Select archive file (アーカイブ・ファイルを選択)」 > [皆さんがダウンロードしたファイル] の順に選択します。
  4. これで、「Project Explorer (プロジェクト・エクスプローラー)」ビューに CloudTrader プロジェクト (とコード) が表示されるはずです。

ステップ 2. Bluemix サーバーを作成する

  1. Eclipse で「Servers (サーバー)」ビューを右クリックし、「New (新規)」 > 「Server (サーバー)」の順に選択します。Eclipse に「Servers (サーバー)」ビューが表示されない場合には、現在 Java EE パースペクティブにいることを確認し、一番下のセクションで「Servers (サーバー)」タブを見つけます。
  2. 「Define a New Server (新規サーバーの定義)」ウィンドウで IBM フォルダーを展開して「IBM Bluemix」を選択し、「Next (次へ)」をクリックします。
  3. 皆さんの Bluemix アカウントの資格情報を入力します。
  4. 「Validate Account (アカウントを検証)」をクリックし、「Finish (完了)」をクリックします。
  5. これで、今作成した Bluemix サーバーに CloudTrader プロジェクトをドラッグ・アンド・ドロップすることができます。
  6. ウィザードが表示されるので、ng.bluemix.net ドメインで名前の衝突が起きないように、アプリケーションの名前としてこのドメイン内で一意の名前を指定します。
  7. 次のパネルで、「URL」情報と「Memory (メモリー)」情報を選択します。デフォルトを受け入れ、「Next (次へ)」をクリックします。
  8. 「Services (サービス)」選択パネルで、このアプリケーションに必要なサービスを作成します。ここではとりあえず、データベース・サービスのみを作成します。右最上部近くにある「Add Service (サービスの追加)」 「Add Service (サービスの追加)」ウィンドウのアイコン アイコンをクリックし、「Add Service (サービスの追加)」ウィンドウを開きます。「Name (名前)」に「TradeDataSource」と入力します。これにより、この JNDI 名で CloudTrader がこのデータ・ソースを探せるように、Bluemix は必要な構成を作成するようになります。「Type (タイプ)」には「SQLDB」を選択します。
  9. 両方のウィザードで「Finish (完了)」をクリックします。しばらくすると、このアプリケーションがデプロイされているはずです!

ステップ 3. さらにサービスを追加する

  1. https://ace.ng.bluemix.net から Bluemix ACE UI にアクセスして、ログインします。前のステップで作成したアプリケーションをクリックし、このアプリケーション・サーバー・ランタイムに関する詳細情報、そしてこのランタイム用に作成したデータベース・サービスに関する詳細情報が表示されているはずです。 CloudTraderDemo の「OVERVIEW (概要)」画面のスクリーンショット
    CloudTraderDemo の「OVERVIEW (概要)」画面のスクリーンショット
  2. インスタンスのサイズや数をスケールアップまたはスケールダウンするために、「Runtime (ランタイム)」ボックスをクリックします。
  3. 「Overview (概要)」タブに切り替えて、アプリケーション名の隣にあるリンクをクリックすることで、アプリケーションにアクセスします。
  4. 「Configuration (構成)」タブで「(Re)-populate Database (データベースに (再度) 追加)」をクリックし、初期ユーザーと株式を DB2 データベースに入力します。 「Configuration (構成)」タブ画面のスクリーンショット
    「Configuration (構成)」タブ画面のスクリーンショット
  5. 「Trading & Portfolio (取引とポートフォリオ)」タブをクリックしてログインします。おめでとうございます。アプリケーションが起動されて正常に実行されています。
  6. 次に、Session Cache サービスを追加しましょう。Bluemix Ace UI に戻り、アプリケーションをクリックし、下にスクロールして「Add New Service (新規サービスの追加)」ボタンを見つけます。
  7. 「Session Cache」「Add to Application (アプリケーションに追加)」、そして「Create (作成)」の順にクリックします。
  8. ここで、この新しいサービスを自動構成するために、アプリケーションを再度ステージする必要があります。Eclipse に戻り、「Servers (サーバー)」ビューで自分のアプリケーションを見つけます。そのアプリケーションを右クリックし、「Update and Restart (更新して再起動)」を選択します。
  9. これで終わりです。セッションを維持する上でしなければならないことは、他にはありません。Liberty ビルド・パックは Session Cache サービスがバインドされたことを検出し、必要な server.xml エントリーを作成します。Session Cache サービスがセッションをリモートの場所に移してくれるため、サーバー・インスタンスが異常終了したり、スケールダウンによって削除されたりした場合にも、セッションが失われることはありません。再起動されたサーバーか、別のサーバーのインスタンスが、そのセッションを継続します。
  10. これでセッションが維持されたので、重要なセッション・データを失うことなくインスタンスのスケールアップやスケールダウンを行うことができます。
  11. 次に、ステップ 6 からステップ 8 を繰り返し実行し、Auto-Scaling サービスと Monitoring and Analytics サービスを追加します。 「Auto-Scaling」サービスのウィンドウのスクリーンショット
    「Auto-Scaling」サービスのウィンドウのスクリーンショット
  12. Auto-Scaling サービスを利用すると、ポリシーを作成することによってアプリケーションのインスタンスを自動的に増減することができます。例えば、メモリー不足によるアプリケーションの障害を防ぐには、メモリーまたはJVM ヒープの使用量が全体の 80% に達した時点でスケールアップするルールを作成します。
  13. ドキュメントを注意深く読んで、アプリケーションのニーズにマッチする適切なポリシーを設定することをお勧めします。Monitoring and Analytics サービスを利用すると、アプリケーションのパフォーマンスについてより深く洞察することができます。これらはどれも強力なツールであり、アプリケーションを最大限のパフォーマンスで実行させるのに役立ちます。 Auto-Scaling でポリシーを構成する画面のスクリーンショット
    Auto-Scaling でポリシーを構成する画面のスクリーンショット

まとめ

このチュートリアルでは、IBM Bluemix のサービスを追加することによって、既存のアプリケーションに新たな命を吹き込むことがいかに容易であるかを説明しました。ここで取り上げたサンプル・アプリケーションは 10 年前のデイトレード・アプリケーションをベースにした CloudTrader です。ここで概要を示したステップに従うことで、既存の任意のアプリケーションに新たな命を吹き込むことができます。ぜひ楽しんでみてください。


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


コメント

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing
ArticleID=992527
ArticleTitle=IBM Bluemix のサービスを利用して Java EE アプリケーションに新たな命を吹き込む
publish-date=12112014