Spring Roo 入門: 第 4 回 Spring Roo と Cloud Foundry による、クラウドでの迅速なアプリケーション開発

今回は、Roo での迅速な開発をさらに一歩進めて、クラウド内で実行されるアプリケーションを作成します。そのために使用するのは、VMWare によって作成された初のオープンソースの PaaS (Platform as a Service) プロジェクトである Cloud Foundry です。この環境の詳細を説明した後、Roo シェルを使ってアプリケーションを Cloud Foundry にデプロイします。

Shekhar Gulati, Senior Consultant, Xebia

Photo of Shekar GulatiShekhar Gulati は、Xebia India の Java コンサルタントです。これまで 6 年以上、Enterprise Java の経験があり、Spring、Spring-WS、Spring Roo など、一連の Spring プロジェクトに関する幅広い経験を持っています。彼が関心を持っている分野には、Spring、NoSQL データベース、Hadoop、Spring Roo のような RAD フレームワーク、クラウド・コンピューティング (主に Google App Engine、CloudFoundry、OpenShift などの PaaS サービス) などがあります。彼は執筆活動も活発に行っていて、JavaLobby、Developer.com、IBM developerWorks、そして彼自身のブログ (http://whyjava.wordpress.com) などに寄稿しています。Twitter で彼をフォローするには、http://twitter.com/#!/shekhargulati にアクセスしてください。



2012年 1月 06日

Spring Roo を話題にしたこの連載では、第 1 回第 2 回にわたり、Spring Roo を使って本格的なエンタープライズ・アプリケーションを構築しました。その当時、私は Spring Roo と PaaS (Platform as a Service) としての Google App Engine との統合について記事を書こうと考えていました。しかし Spring Roo では Google App Engine にデプロイ可能な Web アプリケーションの構築をサポートしているものの、記事で作成したアプリケーションをデプロイするにはいくつかの問題と制約があり、簡単には行きませんでした。そのため、Spring Roo と Google App Engine との統合のサポートが改善されるまで、この統合に関する記事の作成を見送ることにしました。今回の記事では、オープンソースの PaaS である Cloud Foundry を紹介し、この Cloud Foundry を使用してサンプル・アプリケーションをデプロイする方法を説明します。Cloud Foundry の話題に入る前に、まずは PaaS について簡単に説明しておきます。

PaaS とは何か

PaaS (Platform as a Service) は、クラウド・コンピューティングを構成する層の 1 つです。他の層には、SaaS (Software as a Service) と IaaS (Infrastructure as a Service) があります。PaaS は SaaS と IaaS の中間に位置し、インフラストラクチャーを抽象化して、コンピューティング・プラットフォームとソリューション・スタックを提供します。

図 1. PaaS: クラウド・コンピューティング・アーキテクチャーの戦略的中心
システム・インフラストラクチャー (IaaS) とアプリケーション (SaaS) の中間に位置するアプリケーション・インフラストラクチャー (PaaS) を示す図

PaaS は、ビジネスの構築に携わる人とプロの開発者の両方が使用することができます。ビジネスの構築に携わる人は、普段はコードを作成することはありませんが、WaveMaker のようなプラットフォームを使用することで、コンポーネントのドラッグ・アンド・ドロップ操作によって、アプリケーションを開発することができます。一方、プロの開発者は Google App Engine のようなプラットフォームを使用して、Web アプリケーションを構築およびデプロイすることができます。PaaS には、Web アプリケーションやサービスの構築から配布に至るまでのライフサイクル全体をサポートする機能が揃っています。主な PaaS プロバイダーとしては、Java および Python 対応の Google App Engine、.Net および Java 対応の Microsoft Azure、そして Force.com などが挙げられます。

2010年までは、SaaS や IaaS に比べると PaaS の成長は滞っていました。その理由はおそらく、これまでの PaaS ソリューションには特定の制約があったためです。次のセクションでは、既存の PaaS に伴う問題に目を向けます。Cloud Foundry などの次世代の PaaS プラットフォームが、これらの問題を解決することになるはずです。

既存の PaaS ソリューションの問題

  • ベンダー・ロックイン (クラウド間での移植性の欠如): 開発者や組織には、あるクラウドから別のクラウドに移行するという選択肢はありませんでした。例えば、開発者がいったん Google App Engine を選んだら、Google App Engine を使用し続けるしかありません。新しいクラウド・プロバイダーに移る唯一の手段は、Google App Engine コンソールを使ってアプリケーションを削除し、既存のアプリケーションを新しいクラウド・プロバイダーに応じて変更することだけです。そしてそのように変更したアプリケーションは、今度はその特定のクラウドにデプロイしなければならなくなります。
  • パブリック・クラウドのみに限定されたデプロイメント: パブリック・クラウドへと移行する意思のない企業は非常に数多くありますが、既存の PaaS ソリューションのほとんどがターゲットとしているのはパブリック・クラウドのみであるため、多くの企業が PaaS へ移行するという選択をしません。これらの PaaS ソリューションは、インフラストラクチャーにプライベート・クラウドをセットアップする選択肢も、プライベート・クラウドとパブリック・クラウドを組み合わせて使用する選択肢も与えていませんでした。
  • なかなか変えにくい考え方: 開発者がパブリック・クラウドで実行されるアプリケーションを構築するには、考え方の切り替えが必要です。以前は、Google App Engine にリレーショナル・データベースという選択肢はなかったため、アプリケーションは BigTable を対象にコーディングしなければなりませんでした。そのためには、アプリケーションの構築を始める前に考え方を変える必要がありますが、その考え方に馴染むまでには時間がかかります。開発者がそうした考え方に基づいて構築したアプリケーションは、WAR ファイルに変更を加えることなく、そのままクラウドにデプロイすることができます。
  • フレームワークに対する不十分なサポート: 現在、Java プログラマーはフレームワークを使用していますが、フレームワークのサポートが完全ではないことが、アプリケーションを作成する際に困難をもたらします。Google App Engine で Spring や Struts などの一般的なフレームワークを使用して単純なアプリケーションを構築するのでも、フレームワークを使用するにはあらかじめ多少の変更が必要でした。
  • 特定の環境への束縛: 既存の PaaS ソリューションは特定の環境に縛られており、Google App Engine の場合は BigTable をバックエンドとして使用した Java と Python を、Microsoft Azure の場合は SQL Azure データベースを使用した .Net と Java を、そして Amazon Beanstalk の場合は Java を使用しなければなりません。これらの PaaS のいずれを使用するにしても、その特定の環境のみを使用し続ける必要があります。
  • オープンソースでないこと: 既存の PaaS に、オープンソースのソリューションはありません。そのため、開発者がコードをフォークして新しい機能のサポートを追加し、コミュニティーと共有するのは困難です。オープンソースであることが魅力となっている Cloud Foundry では、Cloud Foundry を提供している組織の外部の開発者たちが、Cloud Foundry の成功に大きな役割を果たすことができます。

2011年 ― PaaS の年

ガートナーは、2011年が PaaS の年となると予測しました。その根拠は、主要なエンタープライズ・ソフトウェア・ベンダーが新しい PaaS ソリューションを次々と世に送り出そうとしていたからです。今年から提供を開始し始めた PaaS ソリューションには、VMWare の Cloud Foundry、RedHat の OpenShift、そして CloudBees、DotCloud があります (いずれのソリューションについても、詳細は「参考文献」で調べてください)。これらの新しい PaaS ソリューションは、特定の 1 つの言語やフレームワークにとらわれていません。今や PaaS は、複数の言語とフレームワークによるアプリケーションの構築をサポートするプラットフォームになりつつあります。Cloud Foundry などの PaaS ソリューションは、複数のクラウドもサポートするという形で次のレベルに進んでいます (これについては、この後説明します)。このような変化によって、既存の PaaS ソリューションもマルチフレームワークへと変わらざるを得なくなるでしょう。以降のセクションでは、PaaS ソリューションのうち、Cloud Foundry のみに焦点を当てます。他の PaaS ソリューションについては、この記事では取り上げません。


Cloud Foundry の概要

2011年 4月、VMWare は Cloud Foundry という名前のオープンソースの PaaS を発表しました。Cloud Foundry はマルチ言語、マルチフレームワーク、マルチアプリケーション・サービス、そしてマルチクラウドのオープンソース・プラットフォームであり、既存の PaaS ソリューションに関して先ほど記載した問題のすべてを解決することを目指しています。開発者や組織は、Cloud Foundry をデプロイメント先として使用することも (つまり、Cloud Foundry が提供するパブリック・クラウドにアプリケーションをデプロイすること)、任意のクラウド (パブリック・クラウドとプライベート・クラウドの両方) にアプリケーションをデプロイするための層として使用することもできます。Cloud Foundry には、以下の 3 つの重要な特徴があります。

  1. あらゆる層での選択: 一言で言えば、Cloud Foundry は PaaS を提供する選択肢の 1 つです。開発者に与えられる選択肢は、プログラミング言語だけに限らず、すべての層 (サービスおよびクラウド) に及びます。図 2 に、Cloud Foundry の仕組みをわかりやすく図示します。
    図 2. Cloud Foundry の選択肢
    アプリケーション・プラットフォーム、サービス・インターフェース、クラウド・プロバイダー・インターフェースの間の三角関係を示すスクリーン・ショット

    図 2 に示されているように、三角形の 3 つすべての辺に選択肢が示されています。1 つ目 (一番上) の辺にある選択肢は、言語/ランタイムとフレームワークです。現在、Cloud Foundry では Java、Groovy、Scala、Ruby、および Node.js 言語をサポートしています。これらの言語でサポートされるフレームワークには、Rails3、Grails、Node、Sinatra、Lift、Spring があります。アプリケーション・サービスに該当する 2 つ目 (左下) の辺では、MySQL (リレーショナル・データベース)、Redis (キー/バリュー型データストア)、MongoDB (ドキュメント・データストア) など、そのまますぐに使用できるサービスを選択することができます。RabbitMQ やその他のサービスのサポートも近日中に提供される予定です。Cloud Foundry では、開発者が SQL または NoSQL のどちらのデータベースで作業するかを選択できるため、MySQL と Java 専門の開発者が新しい知識を学ぶ必要はありません。すでに持っている知識だけを使って、アプリケーションを構築したり、既存のアプリケーションをデプロイしたりすることができます。3 つ目 (右下) の辺には、クラウドの選択肢が示されています。Cloud Foundry は、現在 cloudfoundry.com で使用できるようになっているパブリック・クラウドにデプロイできるだけでなく、Cloud Foundry を Amazon EC2 のような IaaS にデプロイするという方法でデプロイすることもできます。さらに、Cloud Foundry を組織のプライベート・クラウドにダウンロードしてデプロイすることも、開発者がラップトップに Cloud Foundry をインストールしてマイクロ・クラウド (開発者の個人向けクラウド) として使用することも可能です。

  2. オープンソース: Cloud Foundry は、Github (「参考文献」を参照) で利用できるオープンソースのプロジェクトです。開発者は Cloud Foundry プロジェクトをフォークして、新しい機能のサポートを追加したり、既存の問題を修正したりした後、そのコードをプロジェクトに貢献することができます。例えば、ActiveState という企業では、Cloud Foundry に Python および Perl 対応の独自のクラウド・プラットフォームを構築しました (「参考文献」を参照)。このような独自のクラウド・プラットフォームの構築が可能なのは、Cloud Foundry がオープンソースのプロジェクトであり、開発者がサービスまたは言語のサポートを追加できるからこそです。
  3. クラウド間での移植性: Cloud Foundry はオープンソースプロジェクトであることから、開発者や組織は Cloud Foundry を実行する場所を自由に選ぶことができます。Cloud Foundry を Amazon EC2 で実行できることは、RightScale によって証明されています (「参考文献」を参照)。デフォルトの Cloud Foundry パブリック・クラウドを使用したくない場合には、Cloud Foundry による別のクラウド・ソリューションに切り替えることもできます。

Cloud Foundry の導入

Cloud Foundry パブリック・クラウドは、http://www.cloudfoundry.com/ で無料のサービスとして提供されています。このサービスは現在ベータ版です。Cloud Foundry のクレデンシャルを持っていない場合、Cloud Foundry パブリック・クラウドを使い始める前にアカウントの登録が必要となります。Cloud Foundry のクレデンシャルを受け取るまでに、通常は 2 ~ 3 日かかります。このパブリック・クラウドは現在、VMWare vSphere クラウド・オペレーティング・システムで稼働しています。クレデンシャルを受け取る前に、個人のマシンに Cloud Foundry をダウンロードおよびインストールして、クラウドをセットアップしておいてください。

Cloud Foundry のクレデンシャルを受け取った後、Cloud Foundry とやりとりするには、以下の 3 つの方法があります。クライアントはすべて、Cloud Foundry が公開する REST API を使用してやりとりします。これらの REST Web サービスは、HTTP による単純な JSON ペイロードです。

  1. VMC コマンドライン・クライアント: VMC は、コマンドラインを介した Cloud Foundry へのアクセスを提供する Ruby gem です。どの言語が使用されているかに関わらず、作成したアプリケーションをデプロイするには VMC を使用します。VMC は http://rubygems.org/gems/vmc からダウンロードしてください。
  2. Spring Source Tool Suite (Spring Eclipse IDE または STS): Cloud Foundry に接続する 2 つ目の方法は、STS です。STS は Eclipse ベースの IDE であり、Spring の多くの魅力がバンドルされています。STS の詳細を学ぶには、DZone公開されている素晴らしい虎の巻を参照してください。Cloud Foundry にアクセスするには、プラグインのインストールが必要です。この IDE 内からはビルド、テスト、クラウドへのデプロイのすべてを行うことができるので、まさに優れものです!その詳細については、SpringSource チームによるブログを読んでください。
  3. Spring Roo Cloud Foundry アドオン: アプリケーションは、Roo シェル内から Spring Roo Cloud Foundry アドオンを使ってデプロイすることができます。Roo シェル愛好家にとって、これは Roo シェル内からビルドおよびデプロイできることを意味します。Roo シェルがもたらすもう 1 つの利点は、タブ補完機能です。コマンドにいくつかの文字を追加して Tab キーを押せば、Roo シェルがコマンドを完成させてくれます。

ここからは、Java 開発者が Spring Roo を使用して Cloud Foundry にアクセスする方法を説明するために、以前の 2 回の記事で作成したアプリケーションを Cloud Foundry にデプロイします。


Spring Roo と Cloud Foundry の統合

Spring Roo はアドオンという形で Cloud Foundry のサポートを提供します。アドオンは、Spring Roo が新しい機能をサポートするために使用するメカニズムです。

前提条件

Spring Roo を使って最初のアプリケーションを Cloud Foundry にデプロイする前に、以下のステップに従ってください。

  1. Spring Roo がマシンにインストールされていない場合は、第 1 回の記事を参照して Spring Roo をインストールします。私が使用しているのは最新バージョンの Spring Roo 1.1.5 RELEASE です。
  2. カンファレンス・アプリケーションのソース・コードをダウンロードします (「ダウンロード」を参照)。このアプリケーションは、連載の最初の 2 回の記事で開発したアプリケーションと同じものです。現在のところ、データベースには HSQLDB を使用していますが、後でこのアプリケーションを MySQL データベースに移植します。

単純な HSQLDB アプリケーションを Cloud Foundry にデプロイする

開発環境が準備できたら、カンファレンス・アプリケーションをデプロイする作業に移ります。ダウンロードしたカンファレンス・アプリケーションがそのデータベースとして使用するのは HSQLDB です。このアプリケーションを Cloud Foundry にデプロイするには、以下のステップに従います。

  1. conference.zip を適切な場所に解凍します。
  2. コマンドラインを開き、conference.zip を解凍した場所にカレント・ディレクトリーを変更します。
  3. コマンドラインに「mvn clean install」と入力してプロジェクトをビルドします。
  4. conference ディレクトリーに移動し、Roo コマンドを実行してシェルをロードします。
  5. アプリケーションを Cloud Foundry にデプロイする前に、Cloud Foundry アドオンをインストールします。このアドオンが、Cloud Foundry で操作を行うためのコマンドを提供します。Cloud Foundry アドオンをインストールするには、Roo シェルで以下のコマンドを入力します。
        roo> pgp automatic trust 
    
        roo> addon install bundle --bundleSymbolicName 
            org.springframework.roo.addon.cloud.foundry;1.1.5.RELEASE

    最初のコマンドは Spring Roo に、すべての pgp 鍵を自動的に信頼するように指示します。こうすることによって、個々の鍵ごとに信頼するという選択をしなくても、必要なすべてのアドオンがインストールされます。2 番目のコマンドは、1.1.5 RELEASEバージョンの Cloud Foundry アドオンをインストールします。このコマンドが完了するまでには数分かかるので、少しの間、辛抱してください。
  6. アドオンのインストールが完了したら、操作を実行するために Cloud Foundry にログインします。Cloud Foundryにログインするには、Roo シェルで以下のコマンドを入力します。
         roo> cloud foundry login --email shekhargulati84@gmail.com --password ******
            --cloudControllerUrl http://api.cloudfoundry.com

    cloud foundry login コマンドは、引数として email、password、cloudControllerUrl の 3 つを取ります。このうち、email と password は必須です。cloudControllerUrl の値はデフォルトで、http://api.cloudfoundry.com にある Cloud Foundry パブリック・クラウドに設定されます。マイクロ・クラウドや他の場所にあるクラウドにデプロイする場合には、該当する URL を指定してください。

  7. Cloud Foundry を操作するために使用できるすべてのコマンドを表示するには、「cloud foundry」と入力して Tab キーを押してください。
        roo> cloud foundry <Press Tab>                                                   
    
            cloud foundry bind       cloud foundry clear      cloud foundry create     
     
            cloud foundry delete     cloud foundry deploy     cloud foundry files 
    
            cloud foundry info       cloud foundry list       cloud foundry login      
    
            cloud foundry map        cloud foundry restart    cloud foundry start 
    
            cloud foundry stop       cloud foundry unbind     cloud foundry unmap      
     
            cloud foundry update     cloud foundry view
  8. 使用している Cloud Foundry インスタンスの関連情報を表示する場合には、以下に示す info コマンドを入力します。このコマンドによって、メモリー使用量、Cloud Foundry にデプロイされているアプリケーションの数、実行中のサービスの数が表示されます。さらに、インスタンスに割り当てられる最大値 (最大 2GB のメモリー) も表示されます。
        roo> cloud foundry info 
            
    	   VMware's Cloud Application Platform 
    	   For support visit support@cloudfoundry.com 
    
    	   Target:     http://api.cloudfoundry.com (0.999) 
    
    	   User:     shekhargulati84@gmail.com 
    	   Usage:     Memory (0MB of 2048MB total) 
    	   Services (0 of 16 total) 
    	   Apps (0 of 20 total)
  9. 次に、cloud foundry deploy コマンドを入力してアプリケーションをデプロイします。このコマンドには、2 つの必須属性である appName および path があります。appName 属性はアプリケーションの名前であり、path 属性は WAR ファイルのパスですが、path については自らパスを入力しなくても、path の後ろで Tab キーを押せば、Spring Roo が自動的にパスを見つけ出してくれます。必須ではない属性には、instances、memory、urls があります。デフォルトで起動されるアプリケーションのインスタンスは 1 つだけですが、instances 属性に必要なインスタンス数を指定して、アプリケーションの複数のインスタンスをデプロイすることも可能です。インスタンスにはデフォルトで、256MB のメモリーが割り当てられます。この値を変更するには、インスタンスをデプロイする時点で memory 属性を使用します。urls 属性は、アプリケーションにマッピングする URL を指定するために使用することができます。デフォルトの URL は <アプリケーション名>.cloudfoundry.com です。つまり、このサンプル・アプリケーションの場合には conference.cloudfoundry.com となります。以下のコマンドを入力して、カンファレンス・アプリケーションをデプロイしてください。
        roo> cloud foundry deploy
             --appName conference --path /target/conference-0.1.0.BUILD-SNAPSHOT.war

    プロジェクトが Maven を使用してビルドされたかどうかによって、path 属性の値が CREATE になる場合とそうでない場合があります。この例のように、プロジェクトがすでにビルドされている場合には、path 属性には WAR ファイルのパスが示されますが、そうでなければ CREATE が値として示されます。CREATE が示された場合には、まずプロジェクトがビルドされ、それからアプリケーションがデプロイされることになります。

  10. デプロイされたアプリケーションは、まだ起動されていません。アプリケーションを起動するには、以下のように start コマンドを使用します。
    	cloud foundry start app --appName conference
  11. 実行中のアプリケーションは、http://conference.cloudfoundry.com/ で確認することができます。

本番環境への切り替え: HSQLDB に代わって MySQL データベースを使用する

ローカル環境向けの HSQLDB を本番環境の MySQL データベースに切り替えるのは簡単です。その手順は、まず Roo シェルを使用して永続ストアを HSQLDB から MySQL に変更し、次に Cloud Foundry アドオンを使用して MySQL サービスを作成し、そのサービスをアプリケーションにバインドするという流れになります。コードを変更する必要はありません。唯一発生する変更は、構成に自動的に取り込まれます。さらに、テストはクラウド内で直接行われるため、マシンに MySQL データベースをインストールする必要すらありません。Cloud Foundry での開発は、開発者のローカル・マシンで開発を行っているような軽い感覚です。

  1. Roo シェルを開き、シェルで以下のコマンドを入力して、永続ストアを HSQDB から MySQL に変更します。
        persistence setup --database MYSQL --provider HIBERNATE

    このコマンドによって、pom.xml、database.properties、persistence.xml が MySQL 関連の構成を指すように変更されます。

  2. 別のコマンドラインを開いて、ルート・フォルダーで mvn clean install -Dmaven.test.skip=true を実行します。このカンファレンス・アプリケーション用の MySQL データベースはないため、ここではテストを省略していることに注意してください。
  3. ビルドが正常に完了すると、アプリケーションはすぐにデプロイできる状態になっています。ただし、このアプリケーションはデプロイせずに削除してください。これは、サンプル・アプリケーション用の MySQL サーバーを作成して、新しいアプリケーションを再度デプロイできるようにするためです。デプロイメントを更新するには update コマンドも使えるため、変更を加えるたびにアプリケーションを削除する必要はありません。
        cloud foundry delete app --appName conference
  4. ここで、新しく作成した WAR ファイルをデプロイします。このファイルには、MySQL 固有の構成が含まれます。
    	cloud foundry deploy --appName conference --path 
            /target/conference-0.1.0.BUILD-	SNAPSHOT.war --memory 512MB
  5. 上記のコマンドによってアプリケーションはデプロイされましたが、アプリケーション・インスタンスはまだ起動されていません。アプリケーションを起動する前に、MySQL サービスを作成して、そのサービスをサンプル・アプリケーションのサービスにバインドする必要があります。Cloud Foundry の create service コマンドを使用して新しいサービスを作成し、このサービスに serviceName と serviceType を指定します。serviceType には MySQL、MongoDB、または Redis を指定することができます。
    	cloud foundry create service --serviceName conference-db --serviceType mysql

    サービスを作成した後は、bind service コマンドを使ってサービスをバインドすることができます。bind service コマンドは、MySQL データ・ソース依存関係がクラウド内で確実に満たされるようにします。これは、クラウド内での依存性注入とも呼ばれます。

    	cloud foundry bind service --appName conference --serviceName conference-db

    bind service コマンドの代わりの方法として、create service コマンドの appName 属性を指定することもできます。
    	cloud foundry create service --serviceName conference-db --serviceType mysql
         	--appName conference
  6. これで、start コマンドを使ってカンファレンス・アプリケーションを起動することができます。URL として http://conference.cloudfoundry.com/ を指定すれば、アプリケーションを利用することができるはずです。
    	cloud foundry start app --appName conference
  7. 最後に、以下に示す Cloud Foundry の list apps コマンドと list services コマンドを実行して、アプリケーションおよびサービスの一覧を表示してください。
    roo> cloud foundry list apps                     
    
    ================================= Applications ================================= 
    
    Name        Status    Instances   Services        URLs 
    ----        ------    ---------   --------        ---- 
    conference  STARTED   1           conference-db   conference.cloudfoundry.com 
    
    
    roo> cloud foundry list services 
    
    ================== System Services =================== 
    
    Service     Version     Description 
    -------     -------     ----------- 
    mongodb     1.8         MongoDB NoSQL store 
    redis       2.2         Redis key-value store service 
    mysql       5.1         MySQL database service 
    
    
    
    = Provisioned Services = 
    
    Name              Service 
    ----              ------- 
    conference-db     mysql

まとめ

今回の記事では、Cloud Foundry について、その特徴を明らかにし、Cloud Foundry と他の PaaS ソリューションとがどのように異なるのかを説明しました。Cloud Foundry と Spring Roo の統合によってもたらされる迅速なアプリケーション開発環境では、開発者が Roo シェルから Spring アプリケーションをビルドし、デプロイすることができます。この記事では例として、MySQL サービスを作成してアプリケーションにバインドする方法を紹介しました。

今後の記事では、Cloud Foundry が提供する Redis および MongoDB などの他のサービスについて取り上げます。


ダウンロード

内容ファイル名サイズ
conference.zip---

参考文献

学ぶために

製品や技術を入手するために

  • Cloud Foundry は、Github から入手できます。
  • 試用版ダウンロードからクラウドでホストされた製品まで揃った、IBM ソフトウェア製品の評価版を試してみてください。特に開発者を対象としたソフトウェアを使って、次のオープンソース開発プロジェクトを革新できます。

議論するために

コメント

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=Open source, Java technology
ArticleID=782568
ArticleTitle=Spring Roo 入門: 第 4 回 Spring Roo と Cloud Foundry による、クラウドでの迅速なアプリケーション開発
publish-date=01062012