SpringSourceはCloud Foundry Integration for Eclipseのバージョン1.0をリリースした。これにより開発者はIDEにいたままCloud Foundryアプリケーションを管理できるようになる。Cloud FoundryはVMware/SpringSourceによって開発されたオープンソースのPaaSソリューションであり(現在ベータ)、複数のプログラミング言語をサポートしている(JavaとScalaを含む)。
アプリケーションのCloud Foundryインスタンスへのデプロイには4つの方法がある。
- VMCツールによるコマンドラインから
- Cloud Foundry MavenプラグインによるMavenビルドの一部として
- アプリケーションがSpring Rooを使っているならSpring Roo Interfaceから
- Cloud Foundry Eclipseプラグインにより直接Eclipse IDEから
Eclipseを使っているJava/Scalaプログラマが一番興味があるのは最後の方法だろう。Cloud Foundryアプリケーションの開発と管理/デプロイメントの両方でIDEが使える統合ソリューションを提供してくれるためだ。このソリューションはEclipse Marketplace経由で、STS(EclipseをベースとするSpringSourceのIDE)もしくはEclipse IndigoにインストールするEclipseプラグインという形で提供される。Cloud Foundryプラグインは自己完結しており、素のEclipseインストールにもインストールできるが、Spring-IDEプラグインを含んでいないことに注意しよう。
インストールすると、Cloud FoundryプラグインはEclipseのWTPインフラを利用する。Cloud Foundryインスタンスは「サーバ」として定義され、アプリケーションは通常のJavaEEアプリケーションサーバに対するときと同じようにデプロイされる。もしVMwareがホストしているCloud Foundryを使いたければ、まずアカウントを取得するために登録しなくてはならない。
Cloud Foundryアプリケーションはサポートされる多数のサービス(たとえば、MySQL、PostgreSQL、MongoDB)のひとつを使うことができる。デプロイするアプリケーションにサービスを初期化しバインディングするには、アプリケーションサーバに設定するときとよく似た設定画面を使うことができる。また管理されるCloud Foundryインスタンスにあるリモートファイル(たとえばログ)を閲覧することもできる。ローカルにホストしたCloud FoundryやMicroインスタンスで動くアプリケーションをデバッグすることもできる。
Cloud Foundryのツールが拡張し続けるのはすごいことだが、このバージョンにはまだ、いくつかの点で改善の余地があると感じる。一例をあげると、Cloud Foundryインスタンスを設定する最初の画面にはマイナーなユーザビリティ問題がある。あなたは常に「サーバ」をlocalhostとして定義しなくてはならない。2番目の画面では確実にVMwareからホストされたバージョンになるよう実際にインスタンスを定義する(前のステップの設定とは矛盾する)。これは多少混乱するだろう。
だが、もっと深刻な問題は、このプラグインからCloud FoundryインスタンスにデプロイできるEclipseプロジェクトの種類だ。ドキュメントによると、次のプロジェクトがサポートされている。
- Java Web
- Spring
- Grails
- Lift
しかし、「Java Web」ファセットで新しく作成されるEclipseプロジェクトはデフォルトでServlet Spec 3.0に基づいており、執筆時点において、これはCloud Foundryプラグインでサポートされていない。サポートされているのはServlet Spec 2.5だけだ。このオプションはプロジェクト生成後に変更できない。したがって、Eclipse固有のプロジェクト設定をアプリケーションからすべて削除し、想定通り動作するバージョン2.5を使って再生成しなければならない。
商用版のCloud Foundryの価格とベータの終了は今年(2012年)中にアナウンスされるだろう。