Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jenkins

3,015 views

Published on

Published in: Technology
  • Be the first to comment

Jenkins

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

×