SlideShare a Scribd company logo
1 of 24
Download to read offline
Con$nuous	
  Delivery(CD)	
  
継続的デリバリー	
  
@bae_j	
  
継続的デリバリーとは	
  
Con$nuous	
  Deliveryとはリリースのスケジュールを
IT部門が握るのではなく、ビジネス部門が握るとい
うことだ。	
Con$nuous	
  Deliveryを実装するということは、全体
のライフサイクルを通じて常にソフトウェアが本番
環境にリリース可能であるということを意味する。
すなわちどのビルドもボタン一発で、完全に自動化
されたリリースプロセスを通じて、秒とか分の時間
で利用者にリリース可能である、ということだ。	
  
Jez	
  Humble	
  
h=p://www.ryuzee.com/contents/blog/4241	
  
What	
  Is	
  Con$nuous	
  Delivery?	
  
Crea$ng	
  a	
  $ght	
  feedback	
  loop	
  between	
  your	
  users	
  and	
  the	
  project	
  team—
including	
  the	
  customer	
  or	
  product	
  owner—relies	
  in	
  turn	
  on	
  being	
  able	
  to	
  
con$nuously	
  deliver	
  new	
  versions	
  of	
  your	
  soOware	
  to	
  test	
  changes	
  and	
  new	
  
ideas,	
  and	
  being	
  able	
  to	
  measure	
  the	
  effect	
  of	
  these	
  changes	
  on	
  your	
  
revenue.	
  
	
  
For	
  many	
  companies	
  that	
  are	
  used	
  to	
  releasing	
  new	
  versions	
  of	
  soOware	
  at	
  
most	
  every	
  few	
  months,	
  the	
  idea	
  of	
  releasing	
  changes	
  several	
  $mes	
  a	
  day	
  
seems	
  impossible.	
  However,	
  at	
  ThoughtWorks,	
  we	
  have	
  used	
  the	
  principles	
  
and	
  prac$ces	
  described	
  in	
  my	
  book	
  Con$nuous	
  Delivery	
  to	
  help	
  organiza$ons	
  
that	
  released	
  a	
  few	
  $mes	
  a	
  year	
  move	
  to	
  releasing	
  several	
  $mes	
  a	
  month,	
  or	
  
even	
  more	
  frequently.	
  That	
  represents	
  a	
  huge	
  compe$$ve	
  advantage,	
  and	
  it	
  
means	
  a	
  large	
  reduc$on	
  in	
  the	
  amount	
  of	
  wasted	
  $me	
  and	
  effort	
  in	
  your	
  IT	
  
organiza$on.	
  
	
  
h=p://www.informit.com/ar$cles/ar$cle.aspx?p=1641923	
  
で、何だよ?	
  
•  ユーザのフィードバックを高速に回す	
  
•  儲かります	
  
• もう一度言います!
儲かります!	
  
なぜ儲かるの?	
  
•  事業的には	
  
– 事業の評価が速いから戦略修正も早い	
  
– リスクが小さい	
  
•  IT部門には	
  
– 実際の反応が得られる	
  
– 個別リリースのリクス回避ができる	
  
まだまだのあなたのために	
  
h=p://www.ryuzee.com/contents/blog/4241	
  
まだまだのあなたのために2	
  
h=p://www.informit.com/ar$cles/ar$cle.aspx?p=1641923&seqNum=3	
  
CDはいいんだ!実践方法は?	
  
•  まずはこんなの読んでみましょう。	
  
•  8	
  Principles	
  of	
  Con$nuous	
  Delivery	
  
•  大丈夫日本語もあります。ここ	
  
8	
  PRINCIPLES	
  OF	
  CONTINUOUS	
  
DELIVERY	
  
1.	
  The	
  process	
  for	
  releasing/
deploying	
  soOware	
  MUST	
  be	
  
repeatable	
  and	
  reliable.	
  	
  
2.	
  Automate	
  everything!	
  
•  手動デプロイは犯罪!とは言ってないですが犯罪だと思います。	
  
•  自動化に本気で投資しろ!	
  
3.	
  If	
  somethings	
  difficult	
  or	
  painful,	
  do	
  
it	
  more	
  oOen.	
  
•  馬鹿なこと言うな!じゃなくて辛い作業が改
善へ導く	
  
– キレたB氏の事例	
  
•  Antでビルドすると面倒いからMaven化	
  
•  ビルドがあちこちでビルドされるからJenkinsでビルド	
•  Deploy時間掛かるからFabricで時間を短くする	
  
4.	
  Keep	
  everything	
  in	
  source	
  control	
  
•  当たり前!	
  
•  本当に?	
  
– 本番のDBアクセスキーは?	
  
5.	
  Done	
  means	
  “released”.	
  
•  実装完了は完了ではない。	
  
•  リリースされてユーザが実際に問題なく使う
時点から完了って言える。	
  
•  Q.	
  うちではどうすればこれが言えるでしょう
か?	
  
6.	
  Build	
  quality	
  in!	
  
•  品質(quality	
  metrics)に投資しろ!	
  
– Unit	
  test	
  coverage	
  
– Code	
  style	
  check	
  
– Rules	
  viola$on	
  
– Complexity	
  measurement	
  
•  Sonar使いましょう	
  
7.	
  Everybody	
  has	
  responsibility	
  for	
  the	
  
release	
  process.	
  
•  ローカル環境のあなたのアプリケーションは
金にならない!	
  
•  リリースされてから価値は生まれる	
  
•  その価値を生むためにPDM,	
  QA,	
  開発者の力
が必要且つ責任です。	
  
8.	
  Improve	
  con$nuously.	
  
•  引かない!	
  
•  システムがメンテー不能になるまで待たな
い!	
  
•  継続的改善でシステムをモダーンにする	
  
4	
  PRACTICES	
  OF	
  CONTINUOUS	
  
DELIVERY	
  
1.	
  Build	
  binaries	
  only	
  once.	
  	
  
•  各バージョンは一度だけビルドする。	
  
– Maven	
  release	
  pluginが担保	
  
– 各環境用の設定ファイルはどうする?	
  
– wsdlは? 	
  
2.	
  Use	
  precisely	
  the	
  same	
  mechanism	
  
to	
  deploy	
  to	
  every	
  environment.	
  	
  
•  当然の話ですが、STGと本番は同じ手順でデ
プロイする!	
  
3.	
  Smoke	
  test	
  your	
  deployment.	
  	
  
•  B氏の事例	
  
– Chefでmiddlewareをupdate	
  
– 正常終了したのでアプリケーション再起動	
  
– 45台のサーバの中1/3の確率でエラーを返す	
  
– 1/3のサーバでmiddlewareはupdateされてない	
  
– middlewareのpidチェックまたは機能確認手順が
cookbookにあればよかった	
  
4.	
  If	
  anything	
  fails,	
  stop	
  the	
  line!	
  
•  途中で失敗したら全部止める	
  
•  一旦ロールバック	
  
•  最初から問題を解決してまたデプロイする	
  
B氏のCDは?	
  
•  面倒いから手で図書きます。	
  
Reference	
  
•  Con$nuous	
  delivery	
  
– h=p://books.rakuten.co.jp/rb/11603145/	
  
•  h=p://www.informit.com/ar$cles/
ar$cle.aspx?p=1641923	
  
•  h=p://www.informit.com/authors/bio/
e0306367-­‐da75-­‐4f0f-­‐86a0-­‐14327a2ae568	
  
•  h=p://devlove-­‐kansai.doorkeeper.jp/events/
10612	
  
•  h=p://www.ryuzee.com/contents/blog/	
  

More Related Content

Similar to [LT] Continuous Delivery

企業組織論としてのオープンイノベーション
企業組織論としてのオープンイノベーション企業組織論としてのオープンイノベーション
企業組織論としてのオープンイノベーションOsaka University
 
継続的にデリバリーって何?
継続的にデリバリーって何?継続的にデリバリーって何?
継続的にデリバリーって何?ke-m kamekoopa
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情Toshiyuki Hirata
 
DebugHeadを使ったiOSアプリ開発手法 #denatechcon
DebugHeadを使ったiOSアプリ開発手法 #denatechconDebugHeadを使ったiOSアプリ開発手法 #denatechcon
DebugHeadを使ったiOSアプリ開発手法 #denatechconDeNA
 
反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所Yoshifumi Tsuda
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CDYuta Matsumura
 
for Enterprise:ULIZA Flex ver1.00
for Enterprise:ULIZA Flex ver1.00for Enterprise:ULIZA Flex ver1.00
for Enterprise:ULIZA Flex ver1.00Yasunori Kawata
 
アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】
アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】
アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】schoowebcampus
 
CI to CD、ソフトウェアの継続的アプローチ
CI to CD、ソフトウェアの継続的アプローチCI to CD、ソフトウェアの継続的アプローチ
CI to CD、ソフトウェアの継続的アプローチYou&I
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよYohei Oda
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Kohsuke Kawaguchi
 
CI(継続的インテグレーション)
CI(継続的インテグレーション)CI(継続的インテグレーション)
CI(継続的インテグレーション)HIRA
 
継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1Yusuke HIDESHIMA
 
Xcode 7で始めるCI
Xcode 7で始めるCIXcode 7で始めるCI
Xcode 7で始めるCIyuki0211s
 
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!Masaya Fujita
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたOda Shinsuke
 
SIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライド
SIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライドSIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライド
SIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライドIGDA JAPAN
 

Similar to [LT] Continuous Delivery (20)

企業組織論としてのオープンイノベーション
企業組織論としてのオープンイノベーション企業組織論としてのオープンイノベーション
企業組織論としてのオープンイノベーション
 
継続的にデリバリーって何?
継続的にデリバリーって何?継続的にデリバリーって何?
継続的にデリバリーって何?
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
 
DebugHeadを使ったiOSアプリ開発手法 #denatechcon
DebugHeadを使ったiOSアプリ開発手法 #denatechconDebugHeadを使ったiOSアプリ開発手法 #denatechcon
DebugHeadを使ったiOSアプリ開発手法 #denatechcon
 
反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
for Enterprise:ULIZA Flex ver1.00
for Enterprise:ULIZA Flex ver1.00for Enterprise:ULIZA Flex ver1.00
for Enterprise:ULIZA Flex ver1.00
 
アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】
アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】
アプリ開発したい人必見!Swiftを使ってiPhoneアプリに広告実装!【appC cloud school】
 
CI to CD、ソフトウェアの継続的アプローチ
CI to CD、ソフトウェアの継続的アプローチCI to CD、ソフトウェアの継続的アプローチ
CI to CD、ソフトウェアの継続的アプローチ
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよ
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)
 
CI(継続的インテグレーション)
CI(継続的インテグレーション)CI(継続的インテグレーション)
CI(継続的インテグレーション)
 
継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1
 
Xcode 7で始めるCI
Xcode 7で始めるCIXcode 7で始めるCI
Xcode 7で始めるCI
 
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
【Twilio勉強会 with Bluemix in 福岡】 電話のボタン応答無しで!?音声認識による自動回答サービスを作ろう!
 
Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
 
SIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライド
SIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライドSIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライド
SIG-Glocalization #13「アプリの海外展開、どうしていますか?」講演スライド
 

More from Joongjin Bae

The secret to building good development teams
The secret to building good development teamsThe secret to building good development teams
The secret to building good development teamsJoongjin Bae
 
Reactive summit 2018
Reactive summit 2018Reactive summit 2018
Reactive summit 2018Joongjin Bae
 
SEDA – Staged Event-Driven Architecture
SEDA – Staged Event-Driven ArchitectureSEDA – Staged Event-Driven Architecture
SEDA – Staged Event-Driven ArchitectureJoongjin Bae
 
理想の開発論-LT用
理想の開発論-LT用理想の開発論-LT用
理想の開発論-LT用Joongjin Bae
 
Aerospike紹介-LT用
Aerospike紹介-LT用Aerospike紹介-LT用
Aerospike紹介-LT用Joongjin Bae
 
Chapter 8 : Evaluation in Information Retrieval
Chapter 8 : Evaluation in Information RetrievalChapter 8 : Evaluation in Information Retrieval
Chapter 8 : Evaluation in Information RetrievalJoongjin Bae
 
voldemortの技術 - Dynamoとの比較
voldemortの技術 - Dynamoとの比較voldemortの技術 - Dynamoとの比較
voldemortの技術 - Dynamoとの比較Joongjin Bae
 
Cpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのかCpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのかJoongjin Bae
 

More from Joongjin Bae (9)

The secret to building good development teams
The secret to building good development teamsThe secret to building good development teams
The secret to building good development teams
 
Reactive summit 2018
Reactive summit 2018Reactive summit 2018
Reactive summit 2018
 
SEDA – Staged Event-Driven Architecture
SEDA – Staged Event-Driven ArchitectureSEDA – Staged Event-Driven Architecture
SEDA – Staged Event-Driven Architecture
 
理想の開発論-LT用
理想の開発論-LT用理想の開発論-LT用
理想の開発論-LT用
 
Aerospike紹介-LT用
Aerospike紹介-LT用Aerospike紹介-LT用
Aerospike紹介-LT用
 
Chapter 8 : Evaluation in Information Retrieval
Chapter 8 : Evaluation in Information RetrievalChapter 8 : Evaluation in Information Retrieval
Chapter 8 : Evaluation in Information Retrieval
 
voldemortの技術 - Dynamoとの比較
voldemortの技術 - Dynamoとの比較voldemortの技術 - Dynamoとの比較
voldemortの技術 - Dynamoとの比較
 
Cpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのかCpuの速度向上はいかに実現されたのか
Cpuの速度向上はいかに実現されたのか
 
MapReduce基礎
MapReduce基礎MapReduce基礎
MapReduce基礎
 

Recently uploaded

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (12)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

[LT] Continuous Delivery

  • 2. 継続的デリバリーとは   Con$nuous  Deliveryとはリリースのスケジュールを IT部門が握るのではなく、ビジネス部門が握るとい うことだ。 Con$nuous  Deliveryを実装するということは、全体 のライフサイクルを通じて常にソフトウェアが本番 環境にリリース可能であるということを意味する。 すなわちどのビルドもボタン一発で、完全に自動化 されたリリースプロセスを通じて、秒とか分の時間 で利用者にリリース可能である、ということだ。   Jez  Humble   h=p://www.ryuzee.com/contents/blog/4241  
  • 3. What  Is  Con$nuous  Delivery?   Crea$ng  a  $ght  feedback  loop  between  your  users  and  the  project  team— including  the  customer  or  product  owner—relies  in  turn  on  being  able  to   con$nuously  deliver  new  versions  of  your  soOware  to  test  changes  and  new   ideas,  and  being  able  to  measure  the  effect  of  these  changes  on  your   revenue.     For  many  companies  that  are  used  to  releasing  new  versions  of  soOware  at   most  every  few  months,  the  idea  of  releasing  changes  several  $mes  a  day   seems  impossible.  However,  at  ThoughtWorks,  we  have  used  the  principles   and  prac$ces  described  in  my  book  Con$nuous  Delivery  to  help  organiza$ons   that  released  a  few  $mes  a  year  move  to  releasing  several  $mes  a  month,  or   even  more  frequently.  That  represents  a  huge  compe$$ve  advantage,  and  it   means  a  large  reduc$on  in  the  amount  of  wasted  $me  and  effort  in  your  IT   organiza$on.     h=p://www.informit.com/ar$cles/ar$cle.aspx?p=1641923  
  • 4. で、何だよ?   •  ユーザのフィードバックを高速に回す   •  儲かります   • もう一度言います! 儲かります!  
  • 5. なぜ儲かるの?   •  事業的には   – 事業の評価が速いから戦略修正も早い   – リスクが小さい   •  IT部門には   – 実際の反応が得られる   – 個別リリースのリクス回避ができる  
  • 8. CDはいいんだ!実践方法は?   •  まずはこんなの読んでみましょう。   •  8  Principles  of  Con$nuous  Delivery   •  大丈夫日本語もあります。ここ  
  • 9. 8  PRINCIPLES  OF  CONTINUOUS   DELIVERY  
  • 10. 1.  The  process  for  releasing/ deploying  soOware  MUST  be   repeatable  and  reliable.    
  • 11. 2.  Automate  everything!   •  手動デプロイは犯罪!とは言ってないですが犯罪だと思います。   •  自動化に本気で投資しろ!  
  • 12. 3.  If  somethings  difficult  or  painful,  do   it  more  oOen.   •  馬鹿なこと言うな!じゃなくて辛い作業が改 善へ導く   – キレたB氏の事例   •  Antでビルドすると面倒いからMaven化   •  ビルドがあちこちでビルドされるからJenkinsでビルド •  Deploy時間掛かるからFabricで時間を短くする  
  • 13. 4.  Keep  everything  in  source  control   •  当たり前!   •  本当に?   – 本番のDBアクセスキーは?  
  • 14. 5.  Done  means  “released”.   •  実装完了は完了ではない。   •  リリースされてユーザが実際に問題なく使う 時点から完了って言える。   •  Q.  うちではどうすればこれが言えるでしょう か?  
  • 15. 6.  Build  quality  in!   •  品質(quality  metrics)に投資しろ!   – Unit  test  coverage   – Code  style  check   – Rules  viola$on   – Complexity  measurement   •  Sonar使いましょう  
  • 16. 7.  Everybody  has  responsibility  for  the   release  process.   •  ローカル環境のあなたのアプリケーションは 金にならない!   •  リリースされてから価値は生まれる   •  その価値を生むためにPDM,  QA,  開発者の力 が必要且つ責任です。  
  • 17. 8.  Improve  con$nuously.   •  引かない!   •  システムがメンテー不能になるまで待たな い!   •  継続的改善でシステムをモダーンにする  
  • 18. 4  PRACTICES  OF  CONTINUOUS   DELIVERY  
  • 19. 1.  Build  binaries  only  once.     •  各バージョンは一度だけビルドする。   – Maven  release  pluginが担保   – 各環境用の設定ファイルはどうする?   – wsdlは?  
  • 20. 2.  Use  precisely  the  same  mechanism   to  deploy  to  every  environment.     •  当然の話ですが、STGと本番は同じ手順でデ プロイする!  
  • 21. 3.  Smoke  test  your  deployment.     •  B氏の事例   – Chefでmiddlewareをupdate   – 正常終了したのでアプリケーション再起動   – 45台のサーバの中1/3の確率でエラーを返す   – 1/3のサーバでmiddlewareはupdateされてない   – middlewareのpidチェックまたは機能確認手順が cookbookにあればよかった  
  • 22. 4.  If  anything  fails,  stop  the  line!   •  途中で失敗したら全部止める   •  一旦ロールバック   •  最初から問題を解決してまたデプロイする  
  • 24. Reference   •  Con$nuous  delivery   – h=p://books.rakuten.co.jp/rb/11603145/   •  h=p://www.informit.com/ar$cles/ ar$cle.aspx?p=1641923   •  h=p://www.informit.com/authors/bio/ e0306367-­‐da75-­‐4f0f-­‐86a0-­‐14327a2ae568   •  h=p://devlove-­‐kansai.doorkeeper.jp/events/ 10612   •  h=p://www.ryuzee.com/contents/blog/