[TS-4230]Enterprise Build and Test in the Cloud
http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-4230&yr=2009
クラウド上で、ビルドとテストをどうやるか。
Hudsonではなく、Continuum、というかSelenium Gridの話が中心だった。
まずは、参加者に利用しているツールをアンケート。
なんでこんなにMavenが流行っているのか、それが僕には不思議だ。
クラウドについての具体的なやり方。やっぱり対象はAmazon EC2。
1. Master用のAMI(Amazon Media Image)を用意する。
Masterには、Continuum、Maven、SeleniumHub、Subversion、APサーバを入れておく。
2. Slave用のAMIを、試験対象のOS分だけ用意する。MacはAMIがないので実機で我慢。
3. Masterを起動する。
4. ContinuumがMavenをキックして、MavenのAmazon EC2プラグインがSlaveを起動。
5. 各Slaveが、MasterのSeleniumHubに起動したことを通知する。
6. MasterのSeleniumHubが、Slaveに試験ジョブを投げる。この時、実機のMacにもジョブが来る。
7. 各Slaveは、Seleniumを動かして、MasterのJettyにアクセスする。
、、、というような流れ。確かにできそう。
実際はAPサーバを複数台にしたり、DBサーバを用意したり、ということも必要だろうけど
その辺りは別途用意すれば良いだけだから、さして問題ではない。
これも、クラウドの具体的な利用の仕方について、よく学べるセッションだった。
ただ、このセッションの内容は、実際の現場ではほとんど役に立たないと思う。
SeleniumはJavaOneに来る人でも10%ぐらいしか利用していないのに、
SeleniumGridにして、クラウド化したいなんていう要望は、ほぼゼロだろう。
そういう意味では、「クラウドでContinuumとSeleniumGridを使うべし」ではなくて、
もう少しメタ的に、ビルドやテストのような、「パラレルに時間の掛かる処理」と
クラウドの相性は良いんだな、って捉えておいた方が良いと思う。