Upload
cactusman
View
2.625
Download
9
Embed Size (px)
Citation preview
Jenkins について何か
cactusman
自己紹介• HN : cactusman (さぼてん) • 年齢: 0x1d • 出身:関西 • 所属: java-ja,Wicket-ja • 肩書き: Jenkins コミッタ
注意• O 社とのごたごたは聞かないでください– gihyo.jp にわかりやすい記事があります
• Buildbot については聞かないでください– エキスパート Python の作者に聞いてください
• 名人については聞かないでください– もう Jenkins です
• Python の話は?– 聞かないでください
Jenkins のクラスタリングのすすめ
cactusman
アジェンダ• CI とは?• Jenkins について軽く• スローテスト問題• Jenkins のクラスタリングについて• まとめ
CI とは• 継続的インテグレーション( Continuous
Integration )の略• XP のベストプラクティスのひとつ• システムのインテグレーション作業 を開
発の初期段階から頻繁に行う
具体的には
コンパイル
UnitTest
パッケージ
結合テスト
デプロイ
システムテスト
チェックアウト
インスペクション
概要図
CI を行うメリット
• 成果物の品質の保証–ビルドやテストが通らない、といった
開発時の不具合が先送りしにくくなり、早期発見しやすくなる–デグレートが起きにくくなる
• 手戻りコストの削減
個人的に考える CI のメリット• 関心ごとの分離– 一度に複数のことを対処するのはよくない– 全てを予測するのは現実的ではない– 人間が行わなければいけない仕事に注力できる
• テスト資産– テストを書くようになる– テスト戦略について考えるようになる
• リソースの有効活用• 複数の環境
とはいうものの• 何から始めていいかわからない• 労力(コスト)の割には得られるメリッ
トがすくないんじゃないの?
そこで Jenkins です!
Jenkins とは• OSS の CI ツール– メインの開発者は川口耕介さん
• 簡単、手軽、親切– JavaWebStart で起動– 「 java -jar jenkins.war 」起動– 好きなサーブレットコンテナにデプロイ可能– 設定は Web の画面– DB が不要
• プラグインで機能拡張
デモ
割と簡単なため導入ができたとします。
(できないことも多いですが・・・)
よくある話• みんなテストをがしがし書いていきます。
よくある話• みんなテストをがしがし書いていきます。• ローカルでの実行でも時間がかかるよう
になります。
よくある話• みんなテストをがしがし書いていきます。• ローカルでの実行でも時間がかかるよう
になります。• 気が付いたら、全テスト通すのに日単位
になってることがあります。
よくある話• みんなテストをがしがし書いていきます。• ローカルでの実行でも時間がかかるよう
になります。• 気が付いたら、全テスト通すのに日単位
になってることがあります。→ スローテスト問題
スローテスト問題• テスト実行に時間がかかりすぎる– テスト実行数の増加によるところ– 非効率なテスト– 依存関係• 依存している全モジュールをテスト
– システムテスト的なもの• Selenium とか
• みんないきつくところ• ビルド自体も同様
解消方法• テスト自体のパフォーマンスチューニング– TDD 的なテストは捨てる– DB などはモック化
• Job のスケジューリング– 早く終わるもの、価値の高いものを優先
• Job を細分化– 並列性を上げる
• スケールアップ• スケールアウト(クラスタリング)
やっとクラスタリングに到達
Jenkins のクラスタリングについて• マスタ / スレーブ方式– マスタは命令を出す– スレーブを命令どおりに仕事する– マスタはスレーブの結果を集める
• スレーブの設定は ssh がおすすめ– スレーブ側の ssh の設定ができていればスレーブ
エージェントを自動で送り込める• スレーブにラベルを付けれる– Windos のみや Linux のみ、実行環境のバージョン
や DB ごとなどをグループ化
デモ• Windows• JNLP経由でのスレーブ起動
クラスタリング構成の有用性• マシンは人間に比べて安い– こき使いましょう–使いこなすのもスキル
• Job 単位で並列で実行可能– Job の作り方次第
• できる幅が広がる– あるスレーブでは性能テストのみなど
まとめ• Jenkins は導入が簡単• Jenkins のクラスタリングは簡単• スローテストには是非クラスタリング構
成を
情報• 公式Wiki に日本語情報があります–今回のクラスタリングについても情報が豊富です
• Twitter でつぶやく– 意外とコミッターときゃっきゃうふふできます– togetter にまとめがいくつかあります
• ブログに読む / 書く– エラーなどはじゃんじゃん書いてください– もれなくコミッターから突っ込みが入ります