Project Caroline

Sunのクラウド系プロジェクト,Project Carolineについてちょっと調べてみた.

クラウド系プロジェクトは(私の脳内分類では)次の4つに分けられる.

Project Carolineはこの分類ではアプリケーションフレームワーク提供型になる.

技術的には,Solarisコンテナという仮想OS機構を用いる.これは,計算機を仮想化する,いわゆる仮想計算機ではなく,OS内部の資源を分割し,それぞれ違った仮想環境を見せるだけの機構で,仮想計算機よりもはるかに軽量である.Linuxでいえばvirtuzzo に相当する機構である.

使い方

基本的には,サーブレットコンテナが提供されていて,そこで動くプログラムをアップロードする.PythonRubyも動くということだが,ネイティブで動くということなのか,JythonJRubyを動かしているだけなのか判然としない.公開されているサンプルを見る限り,ごく普通の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 EnginePythonのみでJavaはサポートしていないが,どうせそのうちサポートするだろう.そうなったときに,Carolineのアドバンテージがなにかあるか?と考えると,何も無いような気がする.