« 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart4 #tidd | トップページ | RedmineとHudsonやTestLinkを連携させるプラグイン »

2010/11/12

Hudsonで並列分散処理

Hudsonが並列分散処理の基盤を持つ可能性があると示唆した記事をメモ。

【元ネタ1】
川口耕介さんを囲む会でHadoopプラグインについて質問してきました - n-3104の日記

(前略)
Hudsonが並列分散処理基盤として可能性を秘めていることを知れて興奮しました。
(中略)
* 並列して負荷テストとかするというのは便利そうだと思いました。
* Androidの実機を複数台まとめてテストできるというのもすごいと思いました!

2009-03-15 - 川口耕介の日記

Cloud computing competition by Hapyrus

HudsonのHadoopプラグインがあるのは知っているけれど、どう使えばいいか、正直分かってない。
だが上記の記事によれば、携帯の実機を複数台まとめて並列テストとか、負荷テストを並列で実施するやり方も可能らしい。

僕がHudsonで実現したいと思う機能は、JUnitのビルドを並行実行させて、ビルド時間を短縮させることだ。
XPが提唱したテスト駆動開発のアイデアは素晴らしいけれど、システムが複雑化するほどJUnitのプログラム本数は増えて、一晩かかってもビルドできないくらいになる。

あるいは、複数のコンポーネント(jar, dll)をビルドしないとシステム(war, exe)が作れずにテストできない状況にある場合、複数のコンポーネントを直列でビルドするとビルド時間が倍以上かかってしまう時もある。
そうなると、継続的インテグレーションの利点が薄れてしまう。

だから、Hudsonでビルド作業を並列化して、ビルド時間を劇的に短縮させたい。

【元ネタ2】
仮想環境で本番環境と同等の環境を作るHudson と Vagrant - maeshimaの日記

開発環境と本番環境の環境が違って、開発環境だとうまくいくけど本番環境だとエラーみたいなことがよくある
→仮想環境 & 自動化で解決!みたいな話。
(中略)
エントリ中では、ruby で Hudson を使うための hudson.rb を使ってCLIで操作してた。
(中略)
大まかな流れ
1. VirtualBox を入れる
2. vagrant(VitrualBox用の仮想環境を作るのを自動化するツール)で仮想環境を作る
3. puppet でDBやWebサーバ等を入れる
4. Hudson で Railsアプリを作ってテスト

Hudsonで並列ビルドできたら、ビルド環境そのものも仮想化して、開発環境も本番環境も同等な環境でビルドするようにしたい。
いくら開発環境で開発がスムーズにいったとしても、本番環境が開発環境と大きく変わっていると、本番リリース作業にかなりの労力を取られてしまう。

最近はサーバーもメモリもHDDも安いし性能も良くなっているので、環境を仮想化して、いつでもどこでも同じ環境で開発できるようにした方がいい。
更にHudsonを使って、環境構築作業まで自動化してしまえばいい。

Hudsonには大きな可能性が秘められていると思う。

|

« 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart4 #tidd | トップページ | RedmineとHudsonやTestLinkを連携させるプラグイン »

ソフトウェア」カテゴリの記事

ソフトウェア工学」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: Hudsonで並列分散処理:

« 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart4 #tidd | トップページ | RedmineとHudsonやTestLinkを連携させるプラグイン »