Hudsonで並列分散処理
Hudsonが並列分散処理の基盤を持つ可能性があると示唆した記事をメモ。
【元ネタ1】
川口耕介さんを囲む会でHadoopプラグインについて質問してきました - n-3104の日記
(前略)
Hudsonが並列分散処理基盤として可能性を秘めていることを知れて興奮しました。
(中略)
* 並列して負荷テストとかするというのは便利そうだと思いました。
* Androidの実機を複数台まとめてテストできるというのもすごいと思いました!
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には大きな可能性が秘められていると思う。
| 固定リンク
「ソフトウェア」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- 実践した後に勉強するのがエンジニアの本来の道(2022.01.09)
「ソフトウェア工学」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- プロジェクト管理やソフトウェアアーキテクチャの問題の背後にはトレードオフが隠れているのではないか(2023.02.18)
- デブサミ2023の感想(2023.02.11)
- ChatGPTにEclipseでEclEmmaとJaCoCoからカバレッジを出力する方法を聞いた(2023.02.01)
- DDPは品質管理に役立つのか(2022.12.13)
「Agile」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- DDPは品質管理に役立つのか(2022.12.13)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
コメント