谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

クラウド上で、ビルドとテストをどうするか?

[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 : 60%以上
  • Ant : 10%未満
  • TestNG : 10%未満
  • Selenium : 10%以上
  • Continuum : 5%未満

なんでこんなに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をキックして、MavenAmazon EC2プラグインがSlaveを起動。
5. 各Slaveが、MasterのSeleniumHubに起動したことを通知する。
6. MasterのSeleniumHubが、Slaveに試験ジョブを投げる。この時、実機のMacにもジョブが来る。
7. 各Slaveは、Seleniumを動かして、MasterのJettyにアクセスする。


、、、というような流れ。確かにできそう。
実際はAPサーバを複数台にしたり、DBサーバを用意したり、ということも必要だろうけど
その辺りは別途用意すれば良いだけだから、さして問題ではない。


これも、クラウドの具体的な利用の仕方について、よく学べるセッションだった。
ただ、このセッションの内容は、実際の現場ではほとんど役に立たないと思う。
SeleniumはJavaOneに来る人でも10%ぐらいしか利用していないのに、
SeleniumGridにして、クラウド化したいなんていう要望は、ほぼゼロだろう。


そういう意味では、「クラウドでContinuumとSeleniumGridを使うべし」ではなくて、
もう少しメタ的に、ビルドやテストのような、「パラレルに時間の掛かる処理」と
クラウドの相性は良いんだな、って捉えておいた方が良いと思う。