継続的デリバリー
シナジーマーケティングの場合
DevLOVE 関西 2014-05-21 継続的デリバリー (Continuous Delivery) のお話を聞いてみよう
Photo by Kay Kim (CC by 2.0)
シナジーマーケティングの人々
鈴木圭
( @suzuki6b6569 )
Yuki Teraoka
( @yuki_teraoka )
Mitoma, Ryo
( github.com/mitoma )
Kitora, Naoki
( @kit...
● だれやねん。
● そもそもどうして継続的デリバリー?
● 社内勉強会をやってみた
● ディスカッションで課題を聞いてみた
● ディスカッションで見えてきたこと
● Jenkinsによるワンクリックデプロイ
コンテンツ
Photo by Ma...
そもそもどうして
継続的デリバリー?
Photo by Stefan Baudy (CC by 2.0)
Photo by Kevin Dooley (CC by 2.0)
なんか良さそう!
初めてCIを知ったときの期待感に似てるかなー
Photo by Kevin Dooley (CC by 2.0)
もっと上手くやれるはず!
なんやかんや課題意識や向上心ってありますよね
Photo by Kevin Dooley (CC by 2.0)
なんか良さそう!
×
もっと上手くやりたい!
継続的デリバリー社内勉強会レポート TECHSCORE BLOG
継続的デリバリー社内勉強会 Vol.2 レポート TECHSCORE BLOG
社内勉強会をやってみた
継続的デリバリー社内勉強会レポート TECHSCORE BLOG
継続的デリバリー社内勉強会 Vol.2 レポート TECHSCORE BLOG
継続的デリバリな
課題ってありますか?
ディスカッションで課題を聞いてみた
リリース手順書が長いです!
340行あるので時間かかるし、
作業ミスのリスクもありますよね…
自動化できそうですか?
「手作業で○○を編集して・・・」
のような作業があるので難しいかも
自動化可能な手順に
変えていく必要がありますね。
Photo by Ari Helminen (CC by 2.0)
DBのスキーマ変更がある場合は?
うまく自動化できるかな?
Photo by Tim Morgan (CC by 2.0)
マイグレーションの仕組みがあると
便利ですよね。
Photo by Tim Morgan (CC by 2.0)
実装上の配慮も必要ですね。
新旧どちらのスキーマでも動くとか。
Photo by Tim Morgan (CC by 2.0)
他にも悩み中の課題もあります。
ミドルウェアのバージョンアップをしたい場合や、
特定のイベント(長時間実行するプロセスの終了)を待ちたい場合など。
Photo by Ari Helminen (CC by 2.0)
ところでデプロイ職人
みたいな人っていますよね?
Photo by Szapucki (CC by 2.0)
デプロイ職人
デプロイ手順の作成/メンテナンスする人。
他の人からすると手順の中身はブラックボックス。
デプロイ中に何かあってもその人しか対処できない。
Photo by Szapucki (CC by 2.0)
Photo by Szapucki (CC by 2.0)
リリース手順書が
ブラックボックスなんですけど。
Photo by Szapucki (CC by 2.0)
Jenkinsなどを活用して、
ワンクリックデプロイを実現できれば
・・・
Photo by Szapucki (CC by 2.0)
Jenkinsとかを使いこなして
継続的デリバリを実現するとして・・
Jenkinsの設定は
きっと複雑になるのではないかと。
この人しかJenkinsの設定が
分からないという人が出...
Photo by Szapucki (CC by 2.0)
それってデプロイ職人が
CI 職人に変わるだけじゃないの?
Photo by Szapucki (CC by 2.0)
使う人が安心できないような
ブラックボックスにしないことが大切
ディスカッションで
見えてきたこと
Photo by Pink Sherbet Photography (CC by 2.0)
一つずつ継続的デリバリに
必要な前提をクリアしよう
自動化可能なリリース手順の作成。
DBのスキーマ変更を考慮した実装。
無停止リリース可能な仕組みの構築。
etc..
Photo by Tim Green (CC by 2.0)
Photo by Tim Green (CC by 2.0)
使う人が不安にならない
ブラックボックスを作ろう
安定していて信頼できるツールを使おう。
Jenkins, Capistrano, etc..
photo by Kamyar Adl (CC by 2.0)
Jenkins による
ワンクリックデプロイ
photo by Kamyar Adl (CC by 2.0)
継続的デリバリに至る道
photo by Kamyar Adl (CC by 2.0)
「面倒臭い」を集めて
解決すること
Q
photo by Colin Kinner (CC by 2.0)
リリース作業でコマンド打
つの面倒なのですが、
何とかなりませんか?
photo by Colin Kinner (CC by 2.0)
A
photo by Tim Green (CC by 2.0)
  
自動化してしまえ!
photo by Tim Green (CC by 2.0)
  
今回の前提
photo by Tim Green (CC by 2.0)
  
photo by Tim Green (CC by 2.0)
CI : Jenkins
App: Ruby on Rails
Deploy: Capistrano
利用ツール    
  
photo by Tim Green (CC by 2.0)
・開発環境
CIでテストが通るたびにデプロイ
・ステージング環境
本番前の受け入れテスト
・プロダクション環境
以下の環境にデプロイする
 数クリックでリリースできる
photo by Tim Green (CC by 2.0)
  
Jenkinsプラグイン
photo by Aidan (CC by 2.0)
  
Build Pipeline Plugin
photo by Brian Cantoni (CC by 2.0)
依存関係のあるジョブを
パイプライン形式で表示
Build Pipeline Plugin    
photo by Brian Cantoni (CC by 2.0)
 
photo by Brian Cantoni (CC by 2.0)
Build Pipeline Plugin    
パイプラインのジョブを
手動トリガに出来るのが素敵
photo by Brian Cantoni (CC by 2.0)
Build Pipeline Plugin    
  
Parameterized Trigger
Plugin
photo by Moto "Club4AG" Miwa (CC by 2.0)
Parameterized Trigger Plugin  
各ビルドにパラメータをつけるこ
とが可能
photo by Moto "Club4AG" Miwa (CC by 2.0)
依存ビルドのパラメータを引き
継ぐ機能が便利すぎる
photo by Moto "Club4AG" Miwa (CC by 2.0)
Parameterized Trigger Plugin  
 
デモ
photo by Bart (CC by 2.0)
Q
photo by Tsahi Levent-Levi (CC by 2.0)
 
Jenkinsでジョブを何個も
作成するの面倒なので
すが何とかなりません
か?
photo by Tsahi Levent-Levi (CC by 2.0)
A
photo by Tsahi Levent-Levi (CC by 2.0)
  
自動(ry
photo by Tsahi Levent-Levi (CC by 2.0)
 
デモ2
photo by Bart (CC by 2.0)
 
工夫しているところ
photo by Bart (CC by 2.0)
 
開発環境をJenkinsノードにする
○ 小規模プロジェクトごとにJenkinsマスタは不要
○ マスタに負荷をかけたくない
○ マスタの環境を汚したくない
○ コスト削減
photo by Bart (CC by 2.0)
 
環境を構築は出来るだけ楽に
ツールやスクリプトで標準的な構成を自動生成
● ローカル環境 Chef + Vagrant
● Railsアプリ ApplicationTemplate
● CD Jenkins Capistrano
photo...
Q&A
Photo by Raymond Bryson (CC by 2.0)
Upcoming SlideShare
Loading in …5
×

継続的デリバリー ~シナジーマーケティングの場合~

1,599 views

Published on

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,599
On SlideShare
0
From Embeds
0
Number of Embeds
105
Actions
Shares
0
Downloads
10
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

継続的デリバリー ~シナジーマーケティングの場合~

  1. 1. 継続的デリバリー シナジーマーケティングの場合 DevLOVE 関西 2014-05-21 継続的デリバリー (Continuous Delivery) のお話を聞いてみよう Photo by Kay Kim (CC by 2.0)
  2. 2. シナジーマーケティングの人々 鈴木圭 ( @suzuki6b6569 ) Yuki Teraoka ( @yuki_teraoka ) Mitoma, Ryo ( github.com/mitoma ) Kitora, Naoki ( @kitora_naoki ) だれやねん。
  3. 3. ● だれやねん。 ● そもそもどうして継続的デリバリー? ● 社内勉強会をやってみた ● ディスカッションで課題を聞いてみた ● ディスカッションで見えてきたこと ● Jenkinsによるワンクリックデプロイ コンテンツ Photo by Masahiro Ihara (CC by 2.0)
  4. 4. そもそもどうして 継続的デリバリー? Photo by Stefan Baudy (CC by 2.0)
  5. 5. Photo by Kevin Dooley (CC by 2.0) なんか良さそう! 初めてCIを知ったときの期待感に似てるかなー
  6. 6. Photo by Kevin Dooley (CC by 2.0) もっと上手くやれるはず! なんやかんや課題意識や向上心ってありますよね
  7. 7. Photo by Kevin Dooley (CC by 2.0) なんか良さそう! × もっと上手くやりたい!
  8. 8. 継続的デリバリー社内勉強会レポート TECHSCORE BLOG 継続的デリバリー社内勉強会 Vol.2 レポート TECHSCORE BLOG 社内勉強会をやってみた
  9. 9. 継続的デリバリー社内勉強会レポート TECHSCORE BLOG 継続的デリバリー社内勉強会 Vol.2 レポート TECHSCORE BLOG 継続的デリバリな 課題ってありますか? ディスカッションで課題を聞いてみた
  10. 10. リリース手順書が長いです!
  11. 11. 340行あるので時間かかるし、 作業ミスのリスクもありますよね…
  12. 12. 自動化できそうですか?
  13. 13. 「手作業で○○を編集して・・・」 のような作業があるので難しいかも
  14. 14. 自動化可能な手順に 変えていく必要がありますね。
  15. 15. Photo by Ari Helminen (CC by 2.0)
  16. 16. DBのスキーマ変更がある場合は? うまく自動化できるかな? Photo by Tim Morgan (CC by 2.0)
  17. 17. マイグレーションの仕組みがあると 便利ですよね。 Photo by Tim Morgan (CC by 2.0)
  18. 18. 実装上の配慮も必要ですね。 新旧どちらのスキーマでも動くとか。 Photo by Tim Morgan (CC by 2.0)
  19. 19. 他にも悩み中の課題もあります。 ミドルウェアのバージョンアップをしたい場合や、 特定のイベント(長時間実行するプロセスの終了)を待ちたい場合など。
  20. 20. Photo by Ari Helminen (CC by 2.0)
  21. 21. ところでデプロイ職人 みたいな人っていますよね? Photo by Szapucki (CC by 2.0)
  22. 22. デプロイ職人 デプロイ手順の作成/メンテナンスする人。 他の人からすると手順の中身はブラックボックス。 デプロイ中に何かあってもその人しか対処できない。 Photo by Szapucki (CC by 2.0)
  23. 23. Photo by Szapucki (CC by 2.0) リリース手順書が ブラックボックスなんですけど。
  24. 24. Photo by Szapucki (CC by 2.0) Jenkinsなどを活用して、 ワンクリックデプロイを実現できれば ・・・
  25. 25. Photo by Szapucki (CC by 2.0) Jenkinsとかを使いこなして 継続的デリバリを実現するとして・・ Jenkinsの設定は きっと複雑になるのではないかと。 この人しかJenkinsの設定が 分からないという人が出てくる?
  26. 26. Photo by Szapucki (CC by 2.0) それってデプロイ職人が CI 職人に変わるだけじゃないの?
  27. 27. Photo by Szapucki (CC by 2.0) 使う人が安心できないような ブラックボックスにしないことが大切
  28. 28. ディスカッションで 見えてきたこと Photo by Pink Sherbet Photography (CC by 2.0)
  29. 29. 一つずつ継続的デリバリに 必要な前提をクリアしよう 自動化可能なリリース手順の作成。 DBのスキーマ変更を考慮した実装。 無停止リリース可能な仕組みの構築。 etc.. Photo by Tim Green (CC by 2.0)
  30. 30. Photo by Tim Green (CC by 2.0) 使う人が不安にならない ブラックボックスを作ろう 安定していて信頼できるツールを使おう。 Jenkins, Capistrano, etc..
  31. 31. photo by Kamyar Adl (CC by 2.0) Jenkins による ワンクリックデプロイ
  32. 32. photo by Kamyar Adl (CC by 2.0) 継続的デリバリに至る道
  33. 33. photo by Kamyar Adl (CC by 2.0) 「面倒臭い」を集めて 解決すること
  34. 34. Q photo by Colin Kinner (CC by 2.0)
  35. 35. リリース作業でコマンド打 つの面倒なのですが、 何とかなりませんか? photo by Colin Kinner (CC by 2.0)
  36. 36. A photo by Tim Green (CC by 2.0)
  37. 37.    自動化してしまえ! photo by Tim Green (CC by 2.0)
  38. 38.    今回の前提 photo by Tim Green (CC by 2.0)
  39. 39.    photo by Tim Green (CC by 2.0) CI : Jenkins App: Ruby on Rails Deploy: Capistrano 利用ツール    
  40. 40.    photo by Tim Green (CC by 2.0) ・開発環境 CIでテストが通るたびにデプロイ ・ステージング環境 本番前の受け入れテスト ・プロダクション環境 以下の環境にデプロイする
  41. 41.  数クリックでリリースできる photo by Tim Green (CC by 2.0)
  42. 42.    Jenkinsプラグイン photo by Aidan (CC by 2.0)
  43. 43.    Build Pipeline Plugin photo by Brian Cantoni (CC by 2.0)
  44. 44. 依存関係のあるジョブを パイプライン形式で表示 Build Pipeline Plugin     photo by Brian Cantoni (CC by 2.0)
  45. 45.   photo by Brian Cantoni (CC by 2.0) Build Pipeline Plugin    
  46. 46. パイプラインのジョブを 手動トリガに出来るのが素敵 photo by Brian Cantoni (CC by 2.0) Build Pipeline Plugin    
  47. 47.    Parameterized Trigger Plugin photo by Moto "Club4AG" Miwa (CC by 2.0)
  48. 48. Parameterized Trigger Plugin   各ビルドにパラメータをつけるこ とが可能 photo by Moto "Club4AG" Miwa (CC by 2.0)
  49. 49. 依存ビルドのパラメータを引き 継ぐ機能が便利すぎる photo by Moto "Club4AG" Miwa (CC by 2.0) Parameterized Trigger Plugin  
  50. 50.   デモ photo by Bart (CC by 2.0)
  51. 51. Q photo by Tsahi Levent-Levi (CC by 2.0)
  52. 52.   Jenkinsでジョブを何個も 作成するの面倒なので すが何とかなりません か? photo by Tsahi Levent-Levi (CC by 2.0)
  53. 53. A photo by Tsahi Levent-Levi (CC by 2.0)
  54. 54.    自動(ry photo by Tsahi Levent-Levi (CC by 2.0)
  55. 55.   デモ2 photo by Bart (CC by 2.0)
  56. 56.   工夫しているところ photo by Bart (CC by 2.0)
  57. 57.   開発環境をJenkinsノードにする ○ 小規模プロジェクトごとにJenkinsマスタは不要 ○ マスタに負荷をかけたくない ○ マスタの環境を汚したくない ○ コスト削減 photo by Bart (CC by 2.0)
  58. 58.   環境を構築は出来るだけ楽に ツールやスクリプトで標準的な構成を自動生成 ● ローカル環境 Chef + Vagrant ● Railsアプリ ApplicationTemplate ● CD Jenkins Capistrano photo by Bart (CC by 2.0)
  59. 59. Q&A Photo by Raymond Bryson (CC by 2.0)

×