目次


Bluemix を利用したハイブリッド・クラウドに Java アプリケーションをマイグレーションする、パート 2

Ecipse を使用して Java アプリケーションを Bluemix にマイグレーションする

Comments

このシリーズのパート 1 では、コマンド・ライン・ツールを使用して Tomcat 上で実行されるアプリケーション (以降、「Tomcat アプリケーション」とします) とその SQL データベースをクラウドにマイグレーションする方法を説明しました。今回のパート 2 でも同じアプリケーションをマイグレーションしますが、すべての作業を Eclipse の中で行います。より詳細なマイグレーション分析 (Tomcat アプリケーションのマイグレーションに固有の分析を含む) をソース・コードに対して実行できるように Eclipse をセットアップした後、アプリケーションを Bluemix にデプロイしてテストします。この作業もすべて、Eclipse から行います。このプロセスのメイン・フローは、Tomcat アプリケーションを Bluemix 上の Liberty for Java にマイグレーションすることです。ただし、アプリケーションがすでに Eclipse 内の Liberty Profile 上で実行されているとすれば、Eclipse から Bluemix にマイグレーションする手順は基本的にすべて同じなので、この手順に従うのは簡単です。

メインの Java アプリケーションをマイグレーションする方法については、シリーズのパート 3 で説明します。以降のチュートリアルでは、データベースをそのままオンプレミスに残すシナリオを取り上げ、クラウドへ移行した場合に、アプリケーションに必要となるかもしれない変更 (クラスター内でのセッション・パーシスタンスなど) についても見ていきます。

アプリケーションを作成するために必要となるもの

このチュートリアル・シリーズのパート 2 では、Eclipse を使用して Tomcat アプリケーションを IBM Bluemix にマイグレーションする方法を説明します。

ステップ 1. Eclipse にローカル Tomcat サーバーをインストールする

注: アプリケーションがすでに Eclipse の WebSphere Application Server Liberty Profile 上で実行されている場合は、ステップ 1 とステップ 2 をスキップして、ステップ 3 から始めて構いません。

まずは、サンプル・アプリケーションをローカルの Eclipse 内で実行中の状態にするところから始めます。厳密に言うと、アプリケーションを Eclipse から Bluemix にデプロイするのに、このステップは必要ではありませんが、段階的なアプローチをとれば、問題を徐々に取り除くことができるため、最終的にはより容易な手段となることがよくあります。

  1. Apache Tomcat Web サイトから Apache Tomcat をダウンロードします。Eclipse ドキュメントの「Creating a Tomcat server (Tomcat サーバーを作成する)」の「Prerequisites (前提条件)」に記載されている説明に従って、Apache Tomcat をダウンロードして解凍します。
  2. Eclipse 内で Apache Tomcat Server をセットアップします。Eclipse ドキュメントの「Adding the Apache Tomcat runtimes (Apache Tomcat ランタイムを追加する)」に記載されている説明に従ってください。
  3. 「Creating a Tomcat server (Tomcat サーバーを作成する)」ページに戻って、「To create an Apache Tomcat server (Apache Tomcat サーバーを作成するには)」の下に記載されている説明に従います。

上記のステップが完了すると、アプリケーションを実行するためのローカル Apache Tomcat サーバーが用意できます。次のセクションでは、サンプル・アプリケーションをインポートします。

ステップ 2. アプリケーションを Eclipse にインポートして実行する

パート 2 でも、 パート 1 と同じサンプル Tomcat アプリケーション RedbookLibrary を使用します。ツールを苦労せずに使うために、このアプリケーションを使用することをお勧めします。そうすれば、お手元のアプリケーションでも、ここに記載されているのと同じステップに従うことができます。

  1. サンプル Tomcat アプリケーションのコード (RedbookLibrary) は、GitHub リポジトリーとして入手することができます。
  2. Eclipse を開き、プロジェクトを Git から Eclipse にインポートするために、「File (ファイル)」 > 「Import (インポート)」 > 「Git」 > 「Projects from Git (Git からプロジェクト)」の順に選択して、「Next (次へ)」をクリックします。
  3. 「Clone URI (URI の複製)」を選択してから、「Next (次へ)」をクリックします。URI として https://github.com/kgb1001001/RedbookLibrary を指定して、「Next (次へ)」をクリックします。
  4. 「master」ブランチが選択された状態で「Next (次へ)」をクリックし、ローカルの保管場所を確認して「Next (次へ)」をクリックし、「Import existing projects (既存プロジェクトのインポート)」を選択して「Next (次へ)」をクリックし、「Finish (完了)」をクリックします。これで、アプリケーションがプロジェクト・エクスプローラーに追加されます。
  5. 数多くの Java エラーがリストアップされていることにお気付きのことと思います。これらのエラーは、Tomcat 上でアプリケーションを実行する場合には該当しないエラーです。エラーを取り除くには、「RedbookLibrary」プロジェクトを右クリックして「Properties (プロパティー)」 > 「Targeted runtimes (ターゲット・ランタイム)」の順に選択します。「Apache Tomcat v7.0」を選択してから、「Apply (適用)」「OK」の順にクリックします。これで、これらの Java エラーがリストアップされなくなるはずです。
  6. これでアプリケーションを Eclipse 内で実行する準備ができました。「RedbookLibrary」アプリケーションを右クリックし、「Run As (実行)」 > 「Run on Server (サーバーで実行)」 > 「Tomcat v7.0 Server at localhost (ローカル・ホストの Tomcat v7.0 サーバー)」の順に選択します。
  7. これによって、Eclipse コンソールに、http://localhost:8080/RedbookLibrary で実行中のアプリケーションが表示されます。ウェルカム画面のスクリーンショット
    ウェルカム画面のスクリーンショット
  8. お望みであれば、パート 1 のステップ 7 の説明に従って、アプリケーションがローカルで正常に動作しているのを確認することができます。このステップに従わなくてもアプリケーションを Bluemix にデプロイすることはできますが、アプリケーションが正常に動作しているのを見るのは楽しいものです。

ステップ 3. クラウド・マイグレーション分析ツールをインストールして実行する

次は、アプリケーションを Bluemix に移植する際の難易度を判断するために利用できる、マイグレーション分析ツールをインストールして実行しましょう。このマイグレーション・ツールを Eclipse にインストールした後、Bluemix の Liberty for Java ランタイムでサポートされている機能に対して、アプリケーションの分析を実行します。ここでは、外部依存関係の情報に関する分析結果と、クラウド・アーキテクチャーの考慮事項に関する分析結果も見ていきます。

  1. Eclipse で「Help (ヘルプ)」 > 「Eclipse Marketplace (Eclipse マーケットプレース)」の順に選択し、「IBM WebSphere Application Server Migration Toolkit - Competitive Tools 8.5.5」を検索して見つかったら、「Install (インストール)」をクリックします。「Apache Tomcat to Liberty Profile Configuration Migration Tool」を選択して、「Confirm (確認)」をクリックします。「Accept License (使用条件の条項に同意します)」を選択し、「Finish (完了)」をクリックします。Eclipse を再起動します。
  2. Bluemix に用意されている Liberty for Java ランタイムに対してアプリケーションの分析を開始します。「RedbookLibrary」プロジェクトを右クリックして「Software Analyzer (ソフトウェア・アナライザー)」 > 「Software Analyzer Configurations (ソフトウェア・アナライザー構成)」の順に選択します。
  3. 「Software Analyzer (ソフトウェア・アナライザー)」をクリックします。左上隅にある「New Configuration (新規構成)」アイコンをクリックし、新規に作成する構成に名前を付けます。
  4. 「Scope (スコープ)」として「Analyze (分析)」を選択し、「RedbookLibrary」プロジェクトを選択してから「Apply (適用)」をクリックします。
  5. 「Rules (ルール)」をクリックします。「Rule Sets (ルール・セット)」で「Apache Tomcat Application Migration (Apache Tomcat アプリケーションのマイグレーション)」を選択します。
  6. 「Set (設定)」をクリックし、「Target application server (ターゲット・アプリケーション・サーバー)」として「Liberty for Java on IBM Bluemix (IBM Bluemix 上の Liberty for Java)」を選択して、「OK」をクリックします。「Analyze (分析)」をクリックします。 Eclipse での「Rule set configuration (ルール・セットの構成)」画面のスクリーンショット
    Eclipse での「Rule set configuration (ルール・セットの構成)」画面のスクリーンショット

ステップ 4. デプロイメント・トポロジーを選択するために結果を分析する

分析結果は複数のタブに表示されます。このサンプル・アプリケーションに関する興味深い結果は、「XML File Review (XML ファイル・レビュー)」タブと「Java Code Review (Java コード・レビュー)」タブに表示されます。

  1. 「XML File Review (XML ファイル・レビュー)」をクリックします。context.xml に関する項目が 2 つ表示されます。これらの項目は、Liberty Profile による構成の処理方法を Tomcat と比べた場合の違いに関係するものです。manifest.yml ファイル、(Derby ではなく) SQL Database、そして Bluemix Liberty Profile の自動構成機能 (詳細についてはパート 1 を参照) を使用することから、これらの項目を変更する必要はありません。ただし、「Use Java EE deployment descriptors (Java EE デプロイメント記述子の使用)」には自動クイック・フィックスを表す電球が示されています。そこで、2 番目の項目を右クリックして「Quick Fix (クイック・フィックス)」を選択します。このクイック・フィックスによって、Tomcat の context.xml ファイルから WebSphere Liberty の ibm-web-bnd-ext.xml ファイルにリソース・バインディング定義が取り込まれます。最初のコンテキスト値のコンポーネント・メッセージにはクイック・フィックスが示されていません。ソースを開くと、これは Derby に関連していることがわかります。Bluemix へのデプロイメントでは Derby を使用しないため、この項目は無視することができます。「XML File Review (XML ファイル・レビュー)」タブのスクリーンショット
    「XML File Review (XML ファイル・レビュー)」タブのスクリーンショット
  2. 「Java Code Review (Java コード・レビュー)」をクリックしてタブを開きます。「Cloud migration (クラウドのマイグレーション)」の下には、次の 3 つの項目がリストアップされているはずです (これらの項目は、パート 1 で取り上げたのと同じ 3 つの項目です)。
    • Capture log information (ログ情報のキャプチャー)
    • HTTP session persistence (HTTP セッション・パーシスタンス)
    • Use SQL Database service (SQL Database サービスの利用)
    これらの項目は、アプリケーションをクラウドへ移行することに関連するチェックなので、このセクションには特に注意を払う必要があります。パート 1 でもそうしたように、アドバイスに従って、Bluemix 上の Liberty for Java で SQL Database サービスを利用します。「Capture log information (ログ情報のキャプチャー)」という警告は、この例の実装では問題になりません (パート 1 で説明しています)。「HTTP session persistence (HTTP セッション・パーシスタンス)」という警告については、このシリーズの以降のパートでクラスタリングを追加するときまで、対処する必要はありません。 「Java code review (Java コード・レビュー)」タブのスクリーンショット
    「Java code review (Java コード・レビュー)」タブのスクリーンショット
  3. この RedbookLibrary アプリケーションを Tomcat から Liberty プロファイルへマイグレーションするのは、かなり簡潔な作業になります。アプリケーションで多数のルールがリストアップされたとしたら、Eclipse 内にローカル Liberty サーバーをセットアップして、2 段階でマイグレーションを行うとよいかもしれません。つまり、最初の段階で Eclipse 内の Tomcat から Eclipse 内の Liberty にマイグレーションします。次の段階で Eclipse 内の Liberty から Bluemix 内の Liberty for Java にマイグレーションすれば、クラウドに必要な変更を加えるだけで済みます。さまざまなアプリケーション・サーバーから Liberty Profile にマイグレーションする方法については、『WebSphere Application Server v8.5 Migration Guide』に詳しい説明が記載されています。

ステップ 5. Bluemix 内で SQL Database サービスを作成する

サンプル・アプリケーションのデータ用に、IBM Bluemix の SQL Database サービスを利用します。アプリケーションのデプロイ時にこのサービスをバインドできるよう、アプリケーションをデプロイする前に Bluemix 内に SQL Database サービスを作成しておく必要があります。パート 1 で説明したように、Bluemix Liberty for Java ランタイムの自動構成機能を利用します。SQL Database サービスを作成するには、パート 1 の説明に従ってコマンド・ラインを使用することも、あるいは以下に示すように Bluemix ユーザー・インターフェースを使用することもできます。

  1. Bluemix にログインします。
  2. 「Catalog (カタログ)」を選択します。
  3. 「Data and Analytics (データおよび分析)」セクションで「SQL Database」を選択します。
  4. 「Service Name (サービス名)」として「library_db」と入力します。
  5. 他のフィールドはデフォルト値のままにします。「CREATE (作成)」をクリックします。

ステップ 6. クラウドにアプリケーションをデプロイする

Eclipse を使用してアプリケーションを Bluemix にデプロイする方法は、ローカルで Tomcat にデプロイする方法と実質的に同じです。最初に一度だけセットアップをしておけば、Bluemix アカウントでは他のあらゆるサーバーと同様にアプリケーションをデプロイして実行することができます。

  1. Eclipse マーケットプレースから、Bluemix ツールを Eclipse にインストールします。「Help (ヘルプ)」 > 「Eclipse Marketplace (Eclipse マーケットプレース)」の順に選択し、「IBM Eclipse Tools for Bluemix」を検索して見つかったら、「Install (インストール)」をクリックします。「Confirm (確認)」をクリックし、使用条件の条項に同意して「Finish (完了)」をクリックします。Eclipse を再起動します。
  2. これで Bluemix サーバーを作成することができるので、「Servers (サーバー)」タブで空白部分を右クリックし、表示されるコンテキスト・メニューを「New (新規)」 > 「Server (サーバー)」の順にクリックし、「IBM」 > 「IBM Bluemix」の順に選択して「Next (次へ)」をクリックします。
  3. アカウント情報を入力して、「Validate Account (アカウントの検証)」をクリックします。検証が済んだら、「Next (次へ)」をクリックします。
  4. 「Add and Remove (追加および削除)」ダイアログ・ボックスで、RedbookLibrary を追加し、「Finish (完了)」をクリックします。「Servers (サーバー)」タブに IBM Bluemix が表示されます。
  5. Eclipse で新規サーバーをターゲットに設定するために、RedbookLibrary に戻ります。「RedbookLibrary」プロジェクトを右クリックして、「Properties (プロパティー)」 > 「Target Runtimes (ターゲット・ランタイム)」の順にクリックし、さらに「IBM Bluemix」を選択します。
  6. 「RedbookLibrary」アプリケーションを選択して右クリックし、「Run As (実行)」 > 「Run On Server (サーバーで実行)」 の順に選択します。
  7. 「Cloud (クラウド)」の下にある「IBM Bluemix」を選択し、「Finish (完了)」をクリックします。サーバーを選択する画面のスクリーンショット
    サーバーを選択する画面のスクリーンショット
  8. 「Application Details (アプリケーションの詳細)」ウィザードが開きます。このウィザードに表示される情報は、manifest.yml ファイルから読み取られます。最初のページではデフォルト値をそのまま使用して、「Next (次へ)」をクリックします。
  9. 「Launch deployment (デプロイメントの起動)」ページで、「Subdomain (サブドメイン)」に一意の名前を入力し (この名前は Bluemix 上のアプリケーションのホスト名になります)、「Next (次へ)」をクリックします。
  10. 「Services selection (サービスの選択)」ページでは、必ず「library_db」をクリックして SQL Database サービスをバインドしてから、「Finish (完了)」をクリックします。これによって、Bluemix へのデプロイメントが開始されます。サービスを選択する画面のスクリーンショット
    サービスを選択する画面のスクリーンショット

    アプリケーションが Bluemix にデプロイされ、Eclipse でそのホーム・ページにアクセスできるようになります。 アプリケーションのウェルカム画面のスクリーンショット
    アプリケーションのウェルカム画面のスクリーンショット

ステップ 7. アプリケーションをテストする

パート 1 の「ステップ 7. アプリケーションをテストする」の説明に従います。

ステップ 8. アプリケーションをクリーンアップする

パート 1 で説明したように、Bluemix は時間単位で料金を請求することから、使い終わったアプリケーションは停止するか、削除することをお勧めします。それには、パート 1 に記載したコマンド・ラインを使用するか、Bluemix UI を使用するか、あるいは以下で説明するように、Eclipse から直接停止または削除することができます。

  1. Eclipse の「Servers (サーバー)」タブで、IBM Bluemix の下にある RedbookLibrary アプリケーションを見つけます。アプリケーションには「Deployed, Started, Synchronized (Deployed [始動済み、同期済み])」と示されているはずです。
  2. アプリケーションを停止するには、アプリケーションを右クリックして「Stop (停止)」を選択します。この操作によってアプリケーションが Bluemix から削除されることはありませんが、アプリケーションの実行は停止されるので、Java ランタイムの料金は累積されません。データベース・サービスはまだ実行されていますが、この例では SQLDB の無料プランを選んだので、料金は加算されないはずです。
  3. アプリケーションを削除するには、アプリケーションを右クリックして「Remove (削除)」を選択します。この場合、アプリケーションは Bluemix から完全に削除されます (もちろん、再び必要になったときには、いつでも Eclipse から簡単に再デプロイすることができます)。この削除プロセスでは、library_db サービスも削除することができます。

まとめ

今回は、Eclipse ツールを使用して Tomcat アプリケーションを分析し、Bluemix 内の Liberty for Java ランタイムにデプロイする方法を説明しました。次回からのチュートリアルでは、メインの Java アプリケーションをマイグレーションする方法、外部のオンプレミス・データベースに接続する方法、そしてクラスター・スケーリングとセッション・パーシスタンスに対応するように、このアプリケーションをセットアップする方法を説明します。


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


関連トピック


コメント

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Java technology
ArticleID=1024515
ArticleTitle=Bluemix を利用したハイブリッド・クラウドに Java アプリケーションをマイグレーションする、パート 2
publish-date=12242015