2011年2月10日木曜日

アジャイル開発クラウドのCloudBees  
             -HaaS(Hudson as a Service)-

CloudBeesInfraDNAが参加したのは昨年11月のことだ。
元Sunのエンジニアだった川口耕介氏が買収したOracleを辞め、2010年4月に興した会社がInfraDNAだ。
氏は2001年に渡米し、2003年からSunに勤務、主にJavaで書かれたJavaEEのオープンソース版GlassFishの開発に係わりながら、2004年から余暇を見て、Javaのアジャイル開発Hudsonプロジェクトを開始、2008年からは社内でも徐々に認知されてほぼ専業となった。

◆ CI Serverとは何か
アジャイル開発の要は“継続的インテグレーション(Continuous Integration-以下CI)”である。CIはエクストリーム・プログラミング-XP(Extreme Programming)などの技法を採用し、早い段階からバラバラに開発した部品を持ち寄って検証(ビルド→テスト→フィードバック)を行い、結果を修正(エディット→コミット)、この全体サイクルを何度も 繰り返し、これによって開発期間を大幅に短縮させるのが狙いだ。これら一連の作業を する製品がHudsonプロジェクトのCI(Continuous Integration) Serverである。
このサーバーはJava.net上でオープンソースとして公開されており、1人で始めたプロジェクトは、現在、330人強のCommitterと310以上のPlug-inを持つ大型プロジェクトに成長した。その普及は、Eclipseコミュニティーの調査によると、2009年が9.1%、2010年は21.8%と急上昇、適用も .NET、C++、Python、Ruby、PHPなど多岐に わたっている。

◆ CloudBeesアーキテクチャー
InfraDNAに続き、昨年12月にはCloudBeesがJavaベースのPaaSプロバイダーStax Networksを買収、こうして現在のサービス体系が姿を現した。下図上段左側が開発エンジンとなるInfraDNAのCI ServerでDEV@cloudと呼ばれる。右側が実行環境を提供するStax Networks製品のRUN@cloudだ。この2つを連携させて、CloudBeesは開発から実行までを一環して提供するクラウド環境を整えた。


CloudBessは実際のところ、Amazon EC2上で稼働する。
つまり、CloudBees自身はデータセンターを持たず、アジャイル開発(DEV@cloud)と実行プラットフォーム(RUN@cloud)をAWS上で提供し、現在、2つは共にβ版としてリリースされている。
DEV@cloudのオリジナルはオンプレミスで動くHudsonだが、その後、HudsonはOracleとの商標問題からJenkinsと改名されている。DEV@cloudはそのクラウド版だ。CloudBeesからはさらにNectar 1.0も発表された。
このベースとなっているのはInfraDNAが開発したICHCI(InfraDNA's Certified Hudson for Continuous Integration) だ。ICHCIはオリジナルのHudson CI Serverに、セキュリティー機能としてLDAP、さらにコード分析ツールやソースコード
管理、プロジェクト管理などをインテグレーションしたエンタープライズ向けの商用版で、Nectarはそのリパッケージ版だ。
もうひとつのRUN@cloudは、基本的にWebアプリケーションやJava EE、さらにSpringのアプリケーションを実行させるのに最適化されたプラットフォームだ。つまり、Java用のアプリケーションサーバーのクラウド版である。そして、Javaと親和性の良いJRubyScalaCFML(ColdFusion)なども実行可能だ。

---------------------
Hudson、改めJenkinsは順調に伸び始めている。
現在、30,000近くのインストレーションベースを持ち、想定ユーザー数は50万人を超える。しかし、これまでの道のりは容易ではなかった。2004年に1人で始めたHudsonは、2006年7月にやっと2人目のCommitterが現われ、それからやっと成長曲線に乗り、2008年にはメーリングリストが1,000、プラグインも100を超えた。そして2010年4月のOracleによるSun買収、この流れを踏み台に氏は退社して起業、さらにCloudBeesと統合、こうしてクラウド化が実現した。一方、オープンソースプロジェクトJeskinsも順調だ。CI Serverのリリースは毎週金曜日、もちろん、Jeskinsを使った作業である。リリース番号は390から400に近づき、今年はクラウド上で力強く、羽ばたくことになるだろう。