Project Caroline
Sunのクラウド系プロジェクト,Project Carolineについてちょっと調べてみた.
クラウド系プロジェクトは(私の脳内分類では)次の4つに分けられる.
- リソースのみ提供型 - Amazon EC2など
- 基本サービス提供型 - Amazon S3, SQS, SimpleDBなど
- アプリケーションフレームワーク提供型- Google App Engineなど
- アプリケーション提供型 - いわゆるSaaS.Sale Forceなど
Project Carolineはこの分類ではアプリケーションフレームワーク提供型になる.
技術的には,Solarisコンテナという仮想OS機構を用いる.これは,計算機を仮想化する,いわゆる仮想計算機ではなく,OS内部の資源を分割し,それぞれ違った仮想環境を見せるだけの機構で,仮想計算機よりもはるかに軽量である.Linuxでいえばvirtuzzo に相当する機構である.
使い方
基本的には,サーブレットコンテナが提供されていて,そこで動くプログラムをアップロードする.PythonやRubyも動くということだが,ネイティブで動くということなのか,Jython,JRubyを動かしているだけなのか判然としない.公開されているサンプルを見る限り,ごく普通のServletのプログラムのように見える.
リソース定義用のAPIが定義されており,Javaのオブジェクトとしてリソースのコンフィギュレーションをくみ上げ,それをサブミットしてリソースを取得するようだ.本来静的なコンフィギュレーションを記述するのに,オブジェクトツリーを構成させるというのは,ちょっとセンスを疑うが...
antのbuildファイルが提供されており,ちゃんと設定ができていれば,ant deploy でサーバ側に転送してコンテナの起動までやってくれる.
現在の状況
Project Carolineは一部のユーザに対してオープンになっていて,試してみようと思えば,試すことができる.ただし,リソースは結構限られているようで,Google App Engineのように,だれでもwelcome!というような状態にはない.申請をWeb上で行うと,(英語の)メイルが来て目的等を聞かれ,さらに審査にパスすると,なんと(もちろん英語で)電話(!)が掛かってきてパスワードを教えてくれるんだそうだ.なんとまあ,敷居のたかいことよ.
所感
機能は,Google App Engine と似ているように見えるが,実はかなり違う.まず,Google App Engineは背後のDBアクセスがスケールアウトを意識したものになっている.これに対してCarolineはただのPostgreSQLだ(なぜMySQLでないのかというと,歴史的な経緯らしい).さらに,Google App Engine の場合は,アクセスが集中した場合,オートマチックにスケールアウトするようになっている,もしくはそれを前提とした設計になっているのに対して,Carolineはそのような構造にはなっていない.
現時点ではGoogle App EngineはPythonのみでJavaはサポートしていないが,どうせそのうちサポートするだろう.そうなったときに,Carolineのアドバンテージがなにかあるか?と考えると,何も無いような気がする.