Your SlideShare is downloading. ×
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

38,371

Published on

2011/12/22に行なった楽天さん向けJenkins実践入門勉強会のプレゼン資料です。 …

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

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

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

No Downloads
Views
Total Views
38,371
On Slideshare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
284
Comments
0
Likes
80
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×