Jenkins

2,840 views
2,788 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,840
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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 />

×