SlideShare a Scribd company logo
1 of 56
Download to read offline
Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA Corporation
Jenkinsで始める継続的デリバリーと
実践の道程
技術開発本部
ALMソリューションセンタ
佐藤聖規
米沢弘樹
© Kevin Gill 2012, Earth - Global Elevation Model with Satellite Imagery,
http://www.flickr.com/photos/kevinmgill/73A04043550,
http://creativecommons.org/licenses/by-sa/2.0/deed.en
佐藤 聖規
Masanori Satoh
@lino_s
Copyright © 2013 NTT DATA CORPORATION
Copyright © 2013 NTT DATA CORPORATION
Delivery
ユーザに価値を
© Judson Dunn 2007, Present from Evan!,
http://www.flickr.com/photos/35237094180@N01/811370168/,
http://creativecommons.org/licenses/by-sa/2.0/deed.en
Copyright © 2013 NTT DATA CORPORATION
Copyright © 2013 NTT DATA CORPORATION
価値
時間
1回だけのデリバリー
リリース
Copyright © 2013 NTT DATA CORPORATION
継続的デリバリー≠継続的デプロイ
価値
時間リリース リリース リリース
Copyright © 2013 NTT DATA CORPORATION
Feedback
© Nguyen Hung Vu 2010, Project Management: Protect Scope at any cost,
http://www.flickr.com/photos/vuhung/7243283454/,
http://creativecommons.org/licenses/by/2.0/deed.en
Copyright © 2013 NTT DATA CORPORATION
早期にリリースして
ユーザからフィードバックを
頻繁にリリースして
デリバリープロセスにフィードバックを
あらゆる変更はフィードバックをもたらす
Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA CORPORATION
© Kazue Asano 2008, factory at night,
http://www.flickr.com/photos/crystallineradical/3070909504/,
http://creativecommons.org/licenses/by/2.0/deed.en
自動化
Copyright © 2013 NTT DATA CORPORATION
Copyright © 2013 NTT DATA CORPORATION
デリバリーに関する全てを自動化
• ビルド
• デプロイ
• テスト
• リリース
Copyright © 2013 NTT DATA CORPORATION
インフラの構築も自動化
コードの中のインフラ
Infrastructure as Programming
Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA CORPORATION
© Ramon Llorensi 2007, Sagrada familia,
http://www.flickr.com/photos/slapbcn/1517583049/,
http://creativecommons.org/licenses/by/2.0/deed.en
アーキテクチャ
Copyright © 2013 NTT DATA CORPORATION
Copyright © 2013 NTT DATA CORPORATION
継続的デリバリーを実践するには
アーキテクチャも重要となる
• デリバリーロールバック
• ゼロダウンタイムリリース
• アプリケーション
• データベースマイグレーション
• カナリアリリース
• プロビジョニング・クラウド
• モニタリング
• アプリケーション
• ユーザ行動
Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA CORPORATION
Jenkins
Copyright © 2013 NTT DATA CORPORATION
Copyright © 2013 NTT DATA CORPORATION
出典:http://www.slideshare.net/kohsuke/jenkins-user-conference
Copyright © 2013 NTT DATA CORPORATION
About Jenkins
 Javaで実装されたCIサーバ
 OSSでコミュニティも活発
 インストール簡単、設定もGUIで簡単
 プラグインアーキテクチャ:OSSで771+公開
 Java以外の言語でも利用可能
Jenkinsも継続的デリバリー
リリース520+
Copyright © 2013 NTT DATA CORPORATION
© greeblie 2009, Dictionary,
http://www.flickr.com/photos/greeblie/3338710223/,
http://creativecommons.org/licenses/by/2.0/deed.enCopyright © 2013 NTT DATA CORPORATION
CaseCase SStudytudy
Copyright © 2013 NTT DATA CORPORATION
自己紹介
名前:米沢 弘樹
Twitter ID:
@yonezawahr
Jenkins実践入門の
著者の一人です。
猫好きです。
Twitterのアイコンは、
まさかの犬です。
Copyright © 2013 NTT DATA CORPORATION
事例
プロジェクトA
18
© takako tominaga 2011, AKB48 Café & Shop,
http://www.flickr.com/photos/coldfervor/6386750563/in/photostream/,
http://creativecommons.org/licenses/by-sa/2.0/deed.en
Copyright © 2013 NTT DATA CORPORATION
どんなプロジェクト?
19
Copyright © 2013 NTT DATA CORPORATION
超大規模案件
• 期間:2年10ヶ月
• 人数:1200人(ピーク時)
• 規模:4MStep
• 開発言語:Java
• 開発プロセス:ウォーターフォール
20
Copyright © 2013 NTT DATA CORPORATION
どんな経緯?
21
Copyright © 2013 NTT DATA CORPORATION
Jenkinsは必須だった
22
バグ修正 デプロイ
テスト
ビルド
ビルド・デプロイの自動化が必須
結合テストに入り、デプロイの頻度が増大
Copyright © 2013 NTT DATA CORPORATION
スムーズに入ったの?
23
Copyright © 2013 NTT DATA CORPORATION
Jenkinsは指揮者
–Jenkinsで各モジュール用のジョブを作成
• 個々のモジュール単位でビルドスクリプトを準備
• ビルドスクリプトをJenkinsで実行可能にカスタマイズ
• Jenkinsは指揮者
– 役割(ビルド・デプロイ)毎、モジュール毎にジョブを分類
– 実行条件、スケジュールをJenkinsで制御
24
Copyright © 2013 NTT DATA CORPORATION
どんな使い方をしたの?
25
Copyright © 2013 NTT DATA CORPORATION
ファイル転送・デプロイで利用
26
SVN
Jenkins
テスト環境
・・・
VPNVPN
チェックイン、チェックイン、
チェックアウト
ビルド失敗通知
チェックアウト
デプロイコマンドデプロイコマンド
実行
ファイル転送
ファイル転送、ファイル転送、
デプロイ
コンパイル
ファイル転送
テスト
踏み台マシン
商用環境
開発者
(c) Erik (HASH) Hersman 2010, RHoK Nairobi, Kenya,
http://www.flickr.com/photos/whiteafrican/4670835071/,
http://creativecommons.org/licenses/by/2.0/deed.en
手動作業
自動作業
© Widjaya Ivan 2010, Web Hosting Servers,
http://www.flickr.com/photos/28288673@N07/4847678335/,
http://creativecommons.org/licenses/by-sa/2.0/deed.en
Copyright © 2013 NTT DATA CORPORATION
どのような運用をしたのか?
27
Copyright © 2013 NTT DATA CORPORATION
1日4回の定刻デプロイ
• 定刻でデプロイ実施
– そこまでで修正されたコードをテスト環境にデプロイ
– 間に合わなかったら次のデプロイへ
28
SVN
Jenkins
テスト環境
テスト環境はテスト環境は
10環境準備
1日4回定刻デプロイ1日4回定刻デプロイ
© Torkild Retvedt 2009. Server room,
http://www.flickr.com/photos/torkildr/3462607995/in/photostream/,
http://creativecommons.org/licenses/by-sa/2.0/deed.en
Copyright © 2013 NTT DATA CORPORATION
Jenkinsが与えたインパクト
• ビルド作業の効率化
– モジュールが多数存在
– モジュール結合、機能結合が多数必要
→Jenkinsでパイプラインを制御
• 大多数のマシンへのデプロイを制御
– 40台以上のマシンへのデプロイが発生
• 作業待ち時間が大幅に削減
– ビルド開始から1時間でデプロイ完了
29
Copyright © 2013 NTT DATA CORPORATION
リスクの限定化
• 段階的なデプロイ
試験的に1つの環境にデプロイ
30分間問題なければ、全環境へデプロイ
→デプロイしたアプリの不具合で、全開発者の作業が
止まるのを避けるため
30
ビルド開始 1つの環境にデプロイ 全環境にデプロイ
30分 30分
Copyright © 2013 NTT DATA CORPORATION
うまく利用できたポイントは?
31
Copyright © 2013 NTT DATA CORPORATION
2つのポイント
• 繰り返しデプロイ
– 1日4回の定刻実行でデプロイ頻度向上
• 段階的なデプロイ
– 1環境で試してから全環境に反映でリスクを低減
32
Copyright © 2013 NTT DATA CORPORATION
事例
プロジェクトZ
33
Copyright © 2013 NTT DATA CORPORATION
どんなプロジェクト?
34
Copyright © 2013 NTT DATA CORPORATION
小規模案件(というか、自担当)
• 期間:5年
• 人数:5名(ピーク時15名)
開発言語:Python等
• 内容:OSSを組み合わせてソリューション展開
– Trac
– Subversion
– Jenkins
35
Copyright © 2013 NTT DATA CORPORATION
• Jenkinsを利用した取り組み
– ビルド
パッケージ(インストーラ)の作成
– 単体テスト
単体テスト、静的コード解析、コードカバレッジ計測
– デプロイ
最新版の資材からテスト環境を構築
– 結合テスト
Seleniumによる回帰テスト
Jenkinsを利用した取り組み
36
【参考】 Jenkinsと一緒にTracプラグイン開発(第3回Jenkins勉強会)
http://www.slideshare.net/wadatka/trac-plugin-developement-with-jenkins-8106330
Copyright © 2013 NTT DATA CORPORATION
大事なことは…
37
Copyright © 2013 NTT DATA CORPORATION
• 「安定的な」とは
– 繰り返し実施した場合、同一の結果が期待できる
– 意図した時間内で完了できる
• 悪いケース
– 回帰テストが停止していて、テストが終わらない
– 同一対象へのテストが成功したり失敗したりする
– 回帰テストの実行に時間がかかりすぎる
安定的なデプロイ、回帰テスト
38
Copyright © 2013 NTT DATA CORPORATION
安定化に向けて
39
Copyright © 2013 NTT DATA CORPORATION
Seleniumのテスト実施が不安定
• Selenium RCの処理停止
– SeleniumのJavaScript実行に時間がかかり停止
• 初期化処理の失敗
– VBスクリプトのリモート実行のため、同期化が困難
– 初期化が完了する前にテストが開始され、失敗
• バッチファイルからテストコードを実行
– 正常に終了せず、ジョブがいつまでも完了しない
40
Copyright © 2013 NTT DATA CORPORATION
Seleniumのテストの安定化
• Selenium RCのJavaScriptの停止
– Selenium RCからWebDriverへ変更
• 初期化処理の失敗
– VBスクリプトでの初期化からWMIでの初期化へ変更
• バッチファイルからのテストコードの実行
– テストコードの実行を、バッチファイルからAntに変更
41
※ WMI:Windows Management Instrumentation
祝!祝!安定化!!安定化!!祝!祝!安定化!!安定化!!
Copyright © 2013 NTT DATA CORPORATION
42
デプロイメント
ジョブ
クライアント
初期化ジョブ テスト実行ジョブ
Copyright © 2013 NTT DATA CORPORATION
43
Copyright © 2013 NTT DATA CORPORATION
安定化の次は?
44
Copyright © 2013 NTT DATA CORPORATION
複数面でのデプロイ・回帰テスト
• 複数面といったら?!
45
マルチ構成のプロジェクトマルチ構成のプロジェクト
Copyright © 2013 NTT DATA CORPORATION
いつやるの?
46
Copyright © 2013 NTT DATA CORPORATION
いつやるの?
47
今でしょ!!今でしょ!!今でしょ!!今でしょ!!
Copyright © 2013 NTT DATA CORPORATION
やってみました
48
デプロイ環境を
複数面化
複数サーバへの
テストの実施
Copyright © 2013 NTT DATA CORPORATION
マルチ構成プロジェクトの概要
49
database=SQLite
database=MySQL
(
リポジトリ
(SVN)
・
・
・Windows Server 2008
・SQLite
・
・
・Windows Server 2003
・MySQL
・
・
・Windows 7
・Firefox
Copyright © 2013 NTT DATA CORPORATION
ジョブ設定 - ServerSetup
50
Copyright © 2013 NTT DATA CORPORATION
ジョブ設定 - ServerSetup
51
Copyright © 2013 NTT DATA CORPORATION
ジョブ設定 - SQLiteAndMySQL
52
Copyright © 2013 NTT DATA CORPORATION
ジョブ設定 - SQLiteAndMySQL
53
Copyright © 2013 NTT DATA CORPORATION
登る山は険しく
道は半ば
© palindrome6996 2007, Mt. Fuji,
http://www.flickr.com/photos/62904109@N00/540380945/,
http://creativecommons.org/licenses/by/2.0/deed.en
© Lisa Parker 2007, First taste,
http://www.flickr.com/photos/42242728@N06/4749036985,
http://creativecommons.org/licenses/by-sa/2.0/deed.en
今、ココ今、ココ
Copyright © 2013 NTT DATA CORPORATION
現状に満足することなく
日々改善しましょう
© Goran Hoglund (Kartlasarn), 2011 Tibet Mount Everest,
http://www.flickr.com/photos/kartlasarn/6477880613,
http://creativecommons.org/licenses/by/2.0/deed.en
Copyright © 2011 NTT DATA Corporation
Copyright © 2013 NTT DATA Corporation
記載されている会社名、商品名、又はサービス名は、各社の商標又は登録商標です。

More Related Content

What's hot

継続的インテグレーションとテストの話
継続的インテグレーションとテストの話継続的インテグレーションとテストの話
継続的インテグレーションとテストの話Preferred Networks
 
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーションJenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーションMasanori Satoh
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたOda Shinsuke
 
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座Hiroko Tamagawa
 
Jenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいますJenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいますMasanori Satoh
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkinsKatsuhiro Miura
 
Croozにおけるjenkins活用事例20130618
Croozにおけるjenkins活用事例20130618Croozにおけるjenkins活用事例20130618
Croozにおけるjenkins活用事例20130618Katsuya Ohnishi
 
Startup jenkins!
Startup jenkins!Startup jenkins!
Startup jenkins!Kanu orz
 
Jenkins user conference 東京
Jenkins user conference 東京Jenkins user conference 東京
Jenkins user conference 東京Kohsuke Kawaguchi
 
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdateYuki Iwanari
 
継続的デリバリーと読み解く Web 開発あるあるとその対策
継続的デリバリーと読み解く Web 開発あるあるとその対策継続的デリバリーと読み解く Web 開発あるあるとその対策
継続的デリバリーと読み解く Web 開発あるあるとその対策Tetsuo Yamabe
 
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料ikikko
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCITakafumi Ikeda
 
20160421 react勉強会
20160421 react勉強会20160421 react勉強会
20160421 react勉強会Naoki Kurosawa
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編kimulla
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Kenichi Kambara
 

What's hot (20)

継続的インテグレーションとテストの話
継続的インテグレーションとテストの話継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
 
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーションJenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
 
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
 
Jenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいますJenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいます
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkins
 
Croozにおけるjenkins活用事例20130618
Croozにおけるjenkins活用事例20130618Croozにおけるjenkins活用事例20130618
Croozにおけるjenkins活用事例20130618
 
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 
Startup jenkins!
Startup jenkins!Startup jenkins!
Startup jenkins!
 
Jenkins user conference 東京
Jenkins user conference 東京Jenkins user conference 東京
Jenkins user conference 東京
 
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
 
継続的デリバリーと読み解く Web 開発あるあるとその対策
継続的デリバリーと読み解く Web 開発あるあるとその対策継続的デリバリーと読み解く Web 開発あるあるとその対策
継続的デリバリーと読み解く Web 開発あるあるとその対策
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
 
Cibc work kokawa
Cibc work kokawaCibc work kokawa
Cibc work kokawa
 
20160421 react勉強会
20160421 react勉強会20160421 react勉強会
20160421 react勉強会
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
 

Viewers also liked

JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyKazuhito Miura
 
デブサミ関西2012 B-3
デブサミ関西2012 B-3デブサミ関西2012 B-3
デブサミ関西2012 B-3Koichi Sakata
 
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争goccy
 
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdfakiko_pusu
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略Hiroshi Maekawa
 
Jenkinsを導入する本当の理由を考えてみた
Jenkinsを導入する本当の理由を考えてみたJenkinsを導入する本当の理由を考えてみた
Jenkinsを導入する本当の理由を考えてみたkakakikikeke
 
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudyKazuhito Miura
 
サルから進化(?) Selenium WebDriverの 自動実行プログラム
サルから進化(?)Selenium WebDriverの自動実行プログラムサルから進化(?)Selenium WebDriverの自動実行プログラム
サルから進化(?) Selenium WebDriverの 自動実行プログラム 洋史 東平
 
OPNFVをインストールしてみた
OPNFVをインストールしてみたOPNFVをインストールしてみた
OPNFVをインストールしてみたMibu Ryota
 
OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月
OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月
OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
第2回 Jenkins勉強会 LT 藤川
第2回 Jenkins勉強会 LT 藤川第2回 Jenkins勉強会 LT 藤川
第2回 Jenkins勉強会 LT 藤川Koichi Fujikawa
 
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeosoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeNoriyasu Sakaue
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Kazuto Ohara
 
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!Yasuhiko Yamamoto
 
コンピュータの構成と設計 第3版 第2章 勉強会資料
コンピュータの構成と設計 第3版 第2章 勉強会資料コンピュータの構成と設計 第3版 第2章 勉強会資料
コンピュータの構成と設計 第3版 第2章 勉強会資料futada
 
Chef社内向け解説とその課題について
Chef社内向け解説とその課題についてChef社内向け解説とその課題について
Chef社内向け解説とその課題についてYu Komiya
 

Viewers also liked (20)

JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
 
デブサミ関西2012 B-3
デブサミ関西2012 B-3デブサミ関西2012 B-3
デブサミ関西2012 B-3
 
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
 
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
Jenkinsを導入する本当の理由を考えてみた
Jenkinsを導入する本当の理由を考えてみたJenkinsを導入する本当の理由を考えてみた
Jenkinsを導入する本当の理由を考えてみた
 
邪道Jenkins
邪道Jenkins邪道Jenkins
邪道Jenkins
 
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
 
サルから進化(?) Selenium WebDriverの 自動実行プログラム
サルから進化(?)Selenium WebDriverの自動実行プログラムサルから進化(?)Selenium WebDriverの自動実行プログラム
サルから進化(?) Selenium WebDriverの 自動実行プログラム
 
Hinemos勉強会
Hinemos勉強会Hinemos勉強会
Hinemos勉強会
 
OPNFVをインストールしてみた
OPNFVをインストールしてみたOPNFVをインストールしてみた
OPNFVをインストールしてみた
 
OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月
OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月
OPNFV詳細編 – OpenStack最新情報セミナー 2015年4月
 
第2回 Jenkins勉強会 LT 藤川
第2回 Jenkins勉強会 LT 藤川第2回 Jenkins勉強会 LT 藤川
第2回 Jenkins勉強会 LT 藤川
 
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeosoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門
 
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
 
なれる!IL
なれる!ILなれる!IL
なれる!IL
 
コンピュータの構成と設計 第3版 第2章 勉強会資料
コンピュータの構成と設計 第3版 第2章 勉強会資料コンピュータの構成と設計 第3版 第2章 勉強会資料
コンピュータの構成と設計 第3版 第2章 勉強会資料
 
Chef社内向け解説とその課題について
Chef社内向け解説とその課題についてChef社内向け解説とその課題について
Chef社内向け解説とその課題について
 

Similar to Jenkinsで始める継続的デリバリーと実践の道程

Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Toshiyuki Hirata
 
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Kohsuke Kawaguchi
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法Toshiyuki Hirata
 
Open STF Plugin 作ってみた
Open STF Plugin 作ってみたOpen STF Plugin 作ってみた
Open STF Plugin 作ってみたjustice_sm
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例Takeshi Kondo
 
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディングDaizen Ikehara
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Toshiyuki Hirata
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カットRakuten Group, Inc.
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)NTT DATA Technology & Innovation
 
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会shibao800
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~SEGADevTech
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うTakeshi Fukuhara
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -Toshiyuki Hirata
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCIToshiyuki Hirata
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013Takashi Someda
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao
 
レガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーションレガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーションMasanori Satoh
 

Similar to Jenkinsで始める継続的デリバリーと実践の道程 (20)

Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
 
Open STF Plugin 作ってみた
Open STF Plugin 作ってみたOpen STF Plugin 作ってみた
Open STF Plugin 作ってみた
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
13-E-7 クラウドサービスとゲーミフィケーション: 「TwilioQuest 3」を用いた開発者オンボーディング
 
TFSUG 2 technique
TFSUG 2 techniqueTFSUG 2 technique
TFSUG 2 technique
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
「ALMがもたらす新しいソフトウェア開発へのフェーズの変化とは?」TFSユーザーズ勉強会
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使う
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
 
July techfesta2014 f30
July techfesta2014 f30July techfesta2014 f30
July techfesta2014 f30
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
レガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーションレガシーコードを改善した先にあるもの、それは継続的インテグレーション
レガシーコードを改善した先にあるもの、それは継続的インテグレーション
 

Recently uploaded

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 

Recently uploaded (7)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 

Jenkinsで始める継続的デリバリーと実践の道程

  • 1. Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA Corporation Jenkinsで始める継続的デリバリーと 実践の道程 技術開発本部 ALMソリューションセンタ 佐藤聖規 米沢弘樹 © Kevin Gill 2012, Earth - Global Elevation Model with Satellite Imagery, http://www.flickr.com/photos/kevinmgill/73A04043550, http://creativecommons.org/licenses/by-sa/2.0/deed.en
  • 2. 佐藤 聖規 Masanori Satoh @lino_s Copyright © 2013 NTT DATA CORPORATION
  • 3. Copyright © 2013 NTT DATA CORPORATION Delivery ユーザに価値を © Judson Dunn 2007, Present from Evan!, http://www.flickr.com/photos/35237094180@N01/811370168/, http://creativecommons.org/licenses/by-sa/2.0/deed.en Copyright © 2013 NTT DATA CORPORATION
  • 4. Copyright © 2013 NTT DATA CORPORATION 価値 時間 1回だけのデリバリー リリース
  • 5. Copyright © 2013 NTT DATA CORPORATION 継続的デリバリー≠継続的デプロイ 価値 時間リリース リリース リリース
  • 6. Copyright © 2013 NTT DATA CORPORATION Feedback © Nguyen Hung Vu 2010, Project Management: Protect Scope at any cost, http://www.flickr.com/photos/vuhung/7243283454/, http://creativecommons.org/licenses/by/2.0/deed.en
  • 7. Copyright © 2013 NTT DATA CORPORATION 早期にリリースして ユーザからフィードバックを 頻繁にリリースして デリバリープロセスにフィードバックを あらゆる変更はフィードバックをもたらす
  • 8. Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA CORPORATION © Kazue Asano 2008, factory at night, http://www.flickr.com/photos/crystallineradical/3070909504/, http://creativecommons.org/licenses/by/2.0/deed.en 自動化 Copyright © 2013 NTT DATA CORPORATION
  • 9. Copyright © 2013 NTT DATA CORPORATION デリバリーに関する全てを自動化 • ビルド • デプロイ • テスト • リリース
  • 10. Copyright © 2013 NTT DATA CORPORATION インフラの構築も自動化 コードの中のインフラ Infrastructure as Programming
  • 11. Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA CORPORATION © Ramon Llorensi 2007, Sagrada familia, http://www.flickr.com/photos/slapbcn/1517583049/, http://creativecommons.org/licenses/by/2.0/deed.en アーキテクチャ Copyright © 2013 NTT DATA CORPORATION
  • 12. Copyright © 2013 NTT DATA CORPORATION 継続的デリバリーを実践するには アーキテクチャも重要となる • デリバリーロールバック • ゼロダウンタイムリリース • アプリケーション • データベースマイグレーション • カナリアリリース • プロビジョニング・クラウド • モニタリング • アプリケーション • ユーザ行動
  • 13. Copyright © 2013 NTT DATA CORPORATIONCopyright © 2013 NTT DATA CORPORATION Jenkins Copyright © 2013 NTT DATA CORPORATION
  • 14. Copyright © 2013 NTT DATA CORPORATION 出典:http://www.slideshare.net/kohsuke/jenkins-user-conference
  • 15. Copyright © 2013 NTT DATA CORPORATION About Jenkins  Javaで実装されたCIサーバ  OSSでコミュニティも活発  インストール簡単、設定もGUIで簡単  プラグインアーキテクチャ:OSSで771+公開  Java以外の言語でも利用可能 Jenkinsも継続的デリバリー リリース520+
  • 16. Copyright © 2013 NTT DATA CORPORATION © greeblie 2009, Dictionary, http://www.flickr.com/photos/greeblie/3338710223/, http://creativecommons.org/licenses/by/2.0/deed.enCopyright © 2013 NTT DATA CORPORATION CaseCase SStudytudy
  • 17. Copyright © 2013 NTT DATA CORPORATION 自己紹介 名前:米沢 弘樹 Twitter ID: @yonezawahr Jenkins実践入門の 著者の一人です。 猫好きです。 Twitterのアイコンは、 まさかの犬です。
  • 18. Copyright © 2013 NTT DATA CORPORATION 事例 プロジェクトA 18 © takako tominaga 2011, AKB48 Café & Shop, http://www.flickr.com/photos/coldfervor/6386750563/in/photostream/, http://creativecommons.org/licenses/by-sa/2.0/deed.en
  • 19. Copyright © 2013 NTT DATA CORPORATION どんなプロジェクト? 19
  • 20. Copyright © 2013 NTT DATA CORPORATION 超大規模案件 • 期間:2年10ヶ月 • 人数:1200人(ピーク時) • 規模:4MStep • 開発言語:Java • 開発プロセス:ウォーターフォール 20
  • 21. Copyright © 2013 NTT DATA CORPORATION どんな経緯? 21
  • 22. Copyright © 2013 NTT DATA CORPORATION Jenkinsは必須だった 22 バグ修正 デプロイ テスト ビルド ビルド・デプロイの自動化が必須 結合テストに入り、デプロイの頻度が増大
  • 23. Copyright © 2013 NTT DATA CORPORATION スムーズに入ったの? 23
  • 24. Copyright © 2013 NTT DATA CORPORATION Jenkinsは指揮者 –Jenkinsで各モジュール用のジョブを作成 • 個々のモジュール単位でビルドスクリプトを準備 • ビルドスクリプトをJenkinsで実行可能にカスタマイズ • Jenkinsは指揮者 – 役割(ビルド・デプロイ)毎、モジュール毎にジョブを分類 – 実行条件、スケジュールをJenkinsで制御 24
  • 25. Copyright © 2013 NTT DATA CORPORATION どんな使い方をしたの? 25
  • 26. Copyright © 2013 NTT DATA CORPORATION ファイル転送・デプロイで利用 26 SVN Jenkins テスト環境 ・・・ VPNVPN チェックイン、チェックイン、 チェックアウト ビルド失敗通知 チェックアウト デプロイコマンドデプロイコマンド 実行 ファイル転送 ファイル転送、ファイル転送、 デプロイ コンパイル ファイル転送 テスト 踏み台マシン 商用環境 開発者 (c) Erik (HASH) Hersman 2010, RHoK Nairobi, Kenya, http://www.flickr.com/photos/whiteafrican/4670835071/, http://creativecommons.org/licenses/by/2.0/deed.en 手動作業 自動作業 © Widjaya Ivan 2010, Web Hosting Servers, http://www.flickr.com/photos/28288673@N07/4847678335/, http://creativecommons.org/licenses/by-sa/2.0/deed.en
  • 27. Copyright © 2013 NTT DATA CORPORATION どのような運用をしたのか? 27
  • 28. Copyright © 2013 NTT DATA CORPORATION 1日4回の定刻デプロイ • 定刻でデプロイ実施 – そこまでで修正されたコードをテスト環境にデプロイ – 間に合わなかったら次のデプロイへ 28 SVN Jenkins テスト環境 テスト環境はテスト環境は 10環境準備 1日4回定刻デプロイ1日4回定刻デプロイ © Torkild Retvedt 2009. Server room, http://www.flickr.com/photos/torkildr/3462607995/in/photostream/, http://creativecommons.org/licenses/by-sa/2.0/deed.en
  • 29. Copyright © 2013 NTT DATA CORPORATION Jenkinsが与えたインパクト • ビルド作業の効率化 – モジュールが多数存在 – モジュール結合、機能結合が多数必要 →Jenkinsでパイプラインを制御 • 大多数のマシンへのデプロイを制御 – 40台以上のマシンへのデプロイが発生 • 作業待ち時間が大幅に削減 – ビルド開始から1時間でデプロイ完了 29
  • 30. Copyright © 2013 NTT DATA CORPORATION リスクの限定化 • 段階的なデプロイ 試験的に1つの環境にデプロイ 30分間問題なければ、全環境へデプロイ →デプロイしたアプリの不具合で、全開発者の作業が 止まるのを避けるため 30 ビルド開始 1つの環境にデプロイ 全環境にデプロイ 30分 30分
  • 31. Copyright © 2013 NTT DATA CORPORATION うまく利用できたポイントは? 31
  • 32. Copyright © 2013 NTT DATA CORPORATION 2つのポイント • 繰り返しデプロイ – 1日4回の定刻実行でデプロイ頻度向上 • 段階的なデプロイ – 1環境で試してから全環境に反映でリスクを低減 32
  • 33. Copyright © 2013 NTT DATA CORPORATION 事例 プロジェクトZ 33
  • 34. Copyright © 2013 NTT DATA CORPORATION どんなプロジェクト? 34
  • 35. Copyright © 2013 NTT DATA CORPORATION 小規模案件(というか、自担当) • 期間:5年 • 人数:5名(ピーク時15名) 開発言語:Python等 • 内容:OSSを組み合わせてソリューション展開 – Trac – Subversion – Jenkins 35
  • 36. Copyright © 2013 NTT DATA CORPORATION • Jenkinsを利用した取り組み – ビルド パッケージ(インストーラ)の作成 – 単体テスト 単体テスト、静的コード解析、コードカバレッジ計測 – デプロイ 最新版の資材からテスト環境を構築 – 結合テスト Seleniumによる回帰テスト Jenkinsを利用した取り組み 36 【参考】 Jenkinsと一緒にTracプラグイン開発(第3回Jenkins勉強会) http://www.slideshare.net/wadatka/trac-plugin-developement-with-jenkins-8106330
  • 37. Copyright © 2013 NTT DATA CORPORATION 大事なことは… 37
  • 38. Copyright © 2013 NTT DATA CORPORATION • 「安定的な」とは – 繰り返し実施した場合、同一の結果が期待できる – 意図した時間内で完了できる • 悪いケース – 回帰テストが停止していて、テストが終わらない – 同一対象へのテストが成功したり失敗したりする – 回帰テストの実行に時間がかかりすぎる 安定的なデプロイ、回帰テスト 38
  • 39. Copyright © 2013 NTT DATA CORPORATION 安定化に向けて 39
  • 40. Copyright © 2013 NTT DATA CORPORATION Seleniumのテスト実施が不安定 • Selenium RCの処理停止 – SeleniumのJavaScript実行に時間がかかり停止 • 初期化処理の失敗 – VBスクリプトのリモート実行のため、同期化が困難 – 初期化が完了する前にテストが開始され、失敗 • バッチファイルからテストコードを実行 – 正常に終了せず、ジョブがいつまでも完了しない 40
  • 41. Copyright © 2013 NTT DATA CORPORATION Seleniumのテストの安定化 • Selenium RCのJavaScriptの停止 – Selenium RCからWebDriverへ変更 • 初期化処理の失敗 – VBスクリプトでの初期化からWMIでの初期化へ変更 • バッチファイルからのテストコードの実行 – テストコードの実行を、バッチファイルからAntに変更 41 ※ WMI:Windows Management Instrumentation 祝!祝!安定化!!安定化!!祝!祝!安定化!!安定化!!
  • 42. Copyright © 2013 NTT DATA CORPORATION 42 デプロイメント ジョブ クライアント 初期化ジョブ テスト実行ジョブ
  • 43. Copyright © 2013 NTT DATA CORPORATION 43
  • 44. Copyright © 2013 NTT DATA CORPORATION 安定化の次は? 44
  • 45. Copyright © 2013 NTT DATA CORPORATION 複数面でのデプロイ・回帰テスト • 複数面といったら?! 45 マルチ構成のプロジェクトマルチ構成のプロジェクト
  • 46. Copyright © 2013 NTT DATA CORPORATION いつやるの? 46
  • 47. Copyright © 2013 NTT DATA CORPORATION いつやるの? 47 今でしょ!!今でしょ!!今でしょ!!今でしょ!!
  • 48. Copyright © 2013 NTT DATA CORPORATION やってみました 48 デプロイ環境を 複数面化 複数サーバへの テストの実施
  • 49. Copyright © 2013 NTT DATA CORPORATION マルチ構成プロジェクトの概要 49 database=SQLite database=MySQL ( リポジトリ (SVN) ・ ・ ・Windows Server 2008 ・SQLite ・ ・ ・Windows Server 2003 ・MySQL ・ ・ ・Windows 7 ・Firefox
  • 50. Copyright © 2013 NTT DATA CORPORATION ジョブ設定 - ServerSetup 50
  • 51. Copyright © 2013 NTT DATA CORPORATION ジョブ設定 - ServerSetup 51
  • 52. Copyright © 2013 NTT DATA CORPORATION ジョブ設定 - SQLiteAndMySQL 52
  • 53. Copyright © 2013 NTT DATA CORPORATION ジョブ設定 - SQLiteAndMySQL 53
  • 54. Copyright © 2013 NTT DATA CORPORATION 登る山は険しく 道は半ば © palindrome6996 2007, Mt. Fuji, http://www.flickr.com/photos/62904109@N00/540380945/, http://creativecommons.org/licenses/by/2.0/deed.en © Lisa Parker 2007, First taste, http://www.flickr.com/photos/42242728@N06/4749036985, http://creativecommons.org/licenses/by-sa/2.0/deed.en 今、ココ今、ココ
  • 55. Copyright © 2013 NTT DATA CORPORATION 現状に満足することなく 日々改善しましょう © Goran Hoglund (Kartlasarn), 2011 Tibet Mount Everest, http://www.flickr.com/photos/kartlasarn/6477880613, http://creativecommons.org/licenses/by/2.0/deed.en
  • 56. Copyright © 2011 NTT DATA Corporation Copyright © 2013 NTT DATA Corporation 記載されている会社名、商品名、又はサービス名は、各社の商標又は登録商標です。