Jenkinsではじめる継続的インテグレーション

44,298 views
43,975 views

Published on

2011/12/22に行なった楽天さん向けJenkins実践入門勉強会のプレゼン資料です。
2013/06/18に石川県で行った内容をアップデートしています。

これからJenkinsでCIを始める人にぴったりの資料だと思います。

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

No Downloads
Views
Total views
44,298
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
333
Comments
0
Likes
105
Embeds 0
No embeds

No notes for slide

Jenkinsではじめる継続的インテグレーション

  1. 1. Jenkinsではじめる 継続的インテグレーション そして継続的デリバリーへ 佐藤 聖規(Masanori Satoh) @lino_s 2013/06/18
  2. 2. 自己紹介
  3. 3. 佐藤 聖規(Masanori Satoh / @lino_s) NTTデータ 技術開発本部 ALMソリューションセンタ 日本Jenkinsユーザ会の中の人 Linoブログ http://d.hatena.ne.jp/lino/ 開発/ALMツールやクラウドの開発普及を推進中
  4. 4. 第一部 継続的インテグレーション
  5. 5. 皆さん、 こんなことありませんか?
  6. 6. 手作業でミスが多発 別の環境だとビルドできない インテグレーションテストで修正地獄に リリース直前なのに動作しない
  7. 7. Jenkinsで 継続的インテグレーションを やれば
  8. 8. 自動化でストレスはゼロに 品質は最高に
  9. 9. ところで 継続的インテグレーション って何?
  10. 10. 1日に何度もビルドを実行し、ソフトウェアを インテグレーションした時に発生する様々な問題を 早期に検出し、フィードバックサイクルを短くして、 ソフトウェア開発の品質と生産性を向上させる仕組み コンパイル インスペクション テスト デプロイ
  11. 11. CIの歴史
  12. 12. http://martinfowler.com/articles/continuousIntegration.html 2000年ごろXPのプラクティスの1つとして 体系化・確立された
  13. 13. CIはプラクティス ツールではありません
  14. 14. CIやると何がうれしい?
  15. 15. 1. 手戻りの削減 品質の維持に つながる
  16. 16. 通常の開発 コミット コミット … コミット コミット テスト 大量のバグ 絡み合って 解析不能
  17. 17. CI開発 コミット テスト バグ発見 すぐ解析 すぐ修正 コミット テスト バグ発見 すぐ解析 すぐ修正 問題の早期発見・早期治療が命 CIはフィードバックサイクル命
  18. 18. 2. いつでも、誰でも、 実行可能なソフトウェアが作成できる
  19. 19. ユーザには動くソフトウェアを提供して、信頼を 開発者は動かないかもという不安を取り除き、自信を
  20. 20. 3. 自動化で作業コストを削減して 開発者は知的な作業に専念
  21. 21. 4. 機械による 作業の正確さ 綿密さ あいまい性の排除
  22. 22. 5. 開発データを蓄積・レポートし 分析することで 継続的カイゼンができる
  23. 23. メリットばっかり言ってるけど、 CIやるのって大変なんじゃないの?
  24. 24. ビルドスクリプトの作成 ユニットテストコードの作成 インスペクションツールの設定 自動デプロイの実行 フィードバック手段の設定 ビルドマシンの購入 ビルド失敗が多発するのでは? etc ...
  25. 25. CIをやらなくてもこれらの問題は発生します。 やらない理由を考えるくらいなら さっさとやりましょう。
  26. 26. CIの悩みについては、 「Jenkins実践入門」 をご覧ください。 答えを書いています。 技術評論社より絶賛発売中 ¥2,919
  27. 27. 第二部
  28. 28. 開 発 者 ソ ー ス コ ー ド 管 理 シ ス テ ム ビ ル ド サ ー バ コ ミ ッ ト ソ ー ス コ ー ド 監 視 ビ ル ド フ ィ ー ド バ ッ ク コ ン パ イ ル テ ス ト イ ン ス ペ ク シ ョ ン ビ ル ド レ ポ ー ト
  29. 29. 1. インストールが簡単 jenkins-ci.orgにアクセス クリック
  30. 30. >java -jar jenkins.war
  31. 31. localhost:8080にアクセス
  32. 32. コマンドすら叩きたくないGUI厨は https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkinsにアクセス localhost:8080にアクセス クリック ※JREがインストールされている必要あり
  33. 33. 2. ブラウザで直感的操作 設定もブラウザだけ、困ったら をクリック
  34. 34. レポートも全部ブラウザで
  35. 35. ワークスペースまでブラウズ
  36. 36. 3. 分散ビルドで大規模対応 スモールスタート リソースが足りなくなったら スケールアウト
  37. 37. 4. プラグインで好きな機能を追加 言語や開発スタイルに合わせて Jenkinsをカスタマイズ プラグインは 400 以上! なければ作っちゃえ!
  38. 38. 5. オープンソース もちろん無償 コミュニティも活発 Jenkins勉強会定期開催中 Let's go to Jenkins Community! http://build-shokunin.org/
  39. 39. 6. いろんな言語で使える コマンドラインで実行できることは 何でもできる レポートも一工夫で対応
  40. 40. ところでなんでJenkinsって名前?
  41. 41. イギリス人の執事をイメージした名前です。 以前のHudsonも執事をイメージした名前でした。 プロジェクトに優秀な執事がいるような想いが こめられています。
  42. 42. Jenkinsの生みの親は日本人エンジニア 川口耕介さん @kohsukekawa
  43. 43. Via. 目からビーム画像ジェネレーター
  44. 44. 第三部 Jenkinsで何をすればいい?
  45. 45. ♪♪♪ Jenkinsはちゃんとお願いすれば (コマンドラインでできること)なら 何でも自動化して、レポートしてくれます。
  46. 46. 自由度が高すぎて何をお願いすれば いいかわからない!
  47. 47. そんなあなたに王道パターンを
  48. 48. コンパイル make, MS Build, Rake, setuptools,sbt Gradle, gcc, javac etc..
  49. 49. テスト JUnit, CUnit, CPPUnit, Test::Unit, RSpec, Unittest, pyUnit JSUnit ワンポイント プラグインを使うか、 JUnitのXML形式に変換
  50. 50. カバレッジ Cobertura, Emma, gcov, rcov, coverage.py, JSCoverage
  51. 51. インスペクション CheckStyle, Findbugs, PMD Coverity, PyLint, ワンポイント HTMLレポートはプラグインがないときは HTML Publisher pluginを使うと幸せになれます。
  52. 52. デプロイ SSH, SCP, Windowsファイル共有 WSHで頑張る。 Fabric, クラウドのRESTAPI,Vagrant PuppetやChefを組み合わせるとベター
  53. 53. インテグレーションテスト SelenuimやGUI自動テストツールを キック
  54. 54. Demonstration
  55. 55. 第四部 さぁ、JenkinsでLet's CI! Jenkinsをうまく使うコツ
  56. 56. すこしずづJenkinsを育てよう コンパイル インスペクション テスト デプロイ ① ② ③ ④ 画面テスト ⑤ デリバリ ⑥
  57. 57. 3回以上単純作業で繰り返すなら Jenkinsさんにお願いしよう ♪♪♪
  58. 58. Jenkinsのレポートをみて プロジェクトを継続的カイゼン
  59. 59. 警告数 ビルド回数 規約違反を全部つぶしたけど、根付いていない
  60. 60. カバレッジ テストケース数 テストの観点をカバーしていないので テストケースを増やしてもカバレッジがあがらない
  61. 61. 上司をどうやって説得すればいい?
  62. 62. 許可を求めるな謝罪せよ。 Don't ask for permission, beg for forgiveness 未来のいつか/hyoshiokの日記 より
  63. 63. エンジニアなら少なからず手を抜くために 自動化するはず。 Jenkinsはそのお手伝いをするだけだから 導入するのに上司の説得はそもそもいらないで しょう。
  64. 64. それでも抵抗する人たちには、 「Jenkins実践入門」 1章から突破口を見出してください。 技術評論社より絶賛発売中 ¥2,919
  65. 65. CIはプラクティス ツールではありません Jenkins導入して終わりではなく 毎日メインラインにコミットして 修正して、が本質です。
  66. 66. 第五部 そして継続的デリバリーへ
  67. 67. 継続的インテグレーションを 突き詰めていくと 商用環境デプロイも自動化できます いわゆる継続的デプロイ
  68. 68. 継続的デプロイ? 否、継続的デリバリーへ
  69. 69. ビジネスアイディアへの 迅速なフィードバックが不可欠 そのためのにCI/CDは欠かせない
  70. 70. 皆様の成功を お祈りしています
  71. 71. ご静聴ありがとうございました このスライドの画像はstock.xchangより

×