SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Casual
Convergence
@azukiwasher on July 24 2013
13年7月27日土曜日
About me
•Name: Nobuhiro Uchiyama
•Ruby Programmer
•Non-DevOps
•Don’t know “Chef” very well
•Chef helps and drives us!
13年7月27日土曜日
Topic for Today
•Convergence for everyone
13年7月27日土曜日
Convergence
•The process of actions
configures a specific part of the
system.
•Provide this process to end-
users settings (email, www,
etc.) ...?
13年7月27日土曜日
Interface for DevOps
•chef-solo
•knife
•knife-solo, etc.
13年7月27日土曜日
Interface for End-users
•Web app
•Server (AgileSolo)
13年7月27日土曜日
Interface for End-users
End-user
User’s item
Web app AgileSolo
13年7月27日土曜日
AgileSolo
•Ruby gem
•Wraps Chef::Application::Solo
•Provides HTTP endpoint (puma)
•Overrides “run_application” in
Solo
13年7月27日土曜日
Flow (1)
#	
  Request	
  Data:	
  @data.json
{
	
  	
  "solo":{
	
  	
  	
  	
  "run_list":"recipe[sample::default]",
	
  	
  	
  	
  "name":"sample",
	
  	
  	
  	
  "items":{
	
  	
  	
  	
  	
  	
  "id":"items",
	
  	
  	
  	
  	
  	
  "data":{
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "lines":["foo",	
  "hoge"]
	
  	
  	
  	
  	
  	
  }
	
  	
  	
  	
  }
	
  	
  }
}
13年7月27日土曜日
Flow (2)
#	
  HTTP	
  Request
$	
  curl	
  -­‐-­‐request	
  PUT	
  
-­‐-­‐header	
  "Content-­‐Type:	
  application/json"	
  
-­‐-­‐data	
  @data.json	
  
'http:/localhost:9292/solo'
13年7月27日土曜日
Flow (3)
#{chef_repo}/data_bags/sample/items.json
{
	
  	
  "id":"items",
	
  	
  "data":{
	
  	
  	
  	
  "lines":["foo","bar"]
	
  	
  }
}
13年7月27日土曜日
Flow (4)
#{chef_repo}/site-­‐cookbooks/sample/recipes/default.rb
items	
  =	
  data_bag('sample')
items.map	
  do	
  |item|
	
  	
  file	
  ::File.join('..',	
  '/tmp/',	
  "#{item}.json")	
  do
	
  	
  	
  	
  content	
  JSON.pretty_generate(data_bag_item('sample',item))
	
  	
  end
end
13年7月27日土曜日
Implementation (1)
#	
  lib/agile_solo/consumer.rb
module	
  AgileSolo
	
  	
  class	
  Consumer	
  <	
  Command
	
  	
  	
  	
  attr_reader	
  :name,	
  :run_list,	
  :data,	
  :chef_repo
	
  	
  	
  	
  def	
  initialize(payload)
	
  	
  	
  	
  	
  	
  @name	
  =	
  payload['name']
	
  	
  	
  	
  	
  	
  @run_list	
  =	
  payload['run_list']
	
  	
  	
  	
  	
  	
  @data	
  =	
  MultiJson.dump(payload['items'])
	
  	
  	
  	
  	
  	
  @chef_repo	
  =	
  AgileSolo::Config.chef_repo
	
  	
  	
  	
  	
  	
  Chef::Config[:data_bag_path]	
  =	
  File.join(@chef_repo,	
  'data_bags')
	
  	
  	
  	
  	
  	
  chef_solo.config[:config_file]	
  =	
  File.join(@chef_repo,	
  'solo.rb')
	
  	
  	
  	
  	
  	
  chef_solo.config[:override_runlist]	
  =	
  [@run_list]
	
  	
  	
  	
  end
	
  	
  	
  	
  def	
  chef_solo
	
  	
  	
  	
  	
  	
  @chef_solo	
  ||=	
  AgileSolo::Application::Solo.new
	
  	
  	
  	
  end
	
  	
  
	
  ..	
  snip	
  ..
13年7月27日土曜日
Implementation (2)
#	
  lib/agile_solo/consumer.rb
module	
  AgileSolo
	
  	
  class	
  Consumer	
  <	
  Command
	
  	
  	
  	
  attr_reader	
  :name,	
  :run_list,	
  :data,	
  :chef_repo
	
  	
  
	
  ..	
  snip	
  ..
	
  	
  	
  	
  def	
  execute
	
  	
  	
  	
  	
  	
  begin
	
  	
  	
  	
  	
  	
  	
  	
  update_data_bag
	
  	
  	
  	
  	
  	
  	
  	
  chef_solo.run
	
  	
  	
  	
  	
  	
  rescue	
  =>	
  e
	
  	
  	
  	
  	
  	
  	
  	
  puts	
  e.backtrace.join("n")
	
  	
  	
  	
  	
  	
  end
	
  	
  	
  	
  end
	
  	
  	
  	
  def	
  update_data_bag
	
  	
  	
  	
  	
  	
  File.open(file_path,	
  'w')	
  {	
  |f|	
  f.write(data)	
  }
	
  	
  	
  	
  end
	
  ..	
  snip	
  ..
end
13年7月27日土曜日
Implementation (3)
#	
  lib/agile_solo/application/solo.rb
require	
  'chef/application/solo'
module	
  AgileSolo
	
  	
  module	
  Application
	
  	
  	
  	
  class	
  Solo	
  <	
  Chef::Application::Solo
	
  	
  	
  	
  	
  	
  attr_reader	
  :chef_solo_json
	
  	
  	
  	
  	
  	
  def	
  run_application
	
  	
  	
  	
  	
  	
  	
  	
  begin
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  run_chef_client
	
  	
  	
  	
  	
  	
  	
  	
  rescue	
  SystemExit	
  =>	
  e
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  raise
	
  	
  	
  	
  	
  	
  	
  	
  rescue	
  Exception	
  =>	
  e
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Chef::Application.fatal!("#{e.class}:	
  #{e.message}",	
  1)
	
  	
  	
  	
  	
  	
  	
  	
  end
	
  	
  	
  	
  	
  	
  end
	
  	
  	
  	
  end
	
  	
  end
end
13年7月27日土曜日
Wrap up
•Convergence for everyone
•Interface for End-users
•HTTP PUT Request (Sync)
•Kicks chef-solo (run_list,
data_bags)
13年7月27日土曜日
More efficient ...
•AMQP instead of HTTP
•Parallel convergence
•Async
•Agility
•Scalability
13年7月27日土曜日
Resources
AgileSolo
https://github.com/azukiwasher/agile_solo
13年7月27日土曜日

Más contenido relacionado

Destacado

Destacado (10)

Commis chef cover letter
Commis chef cover letterCommis chef cover letter
Commis chef cover letter
 
Pankaj Kumar -CV
Pankaj Kumar -CVPankaj Kumar -CV
Pankaj Kumar -CV
 
Kamlesh Cv
Kamlesh CvKamlesh Cv
Kamlesh Cv
 
Cv leonardo concezzi 2012
Cv leonardo concezzi 2012Cv leonardo concezzi 2012
Cv leonardo concezzi 2012
 
9 h s steels experience certificate
9 h s steels experience certificate9 h s steels experience certificate
9 h s steels experience certificate
 
Text sample application letter
Text sample application letterText sample application letter
Text sample application letter
 
Radisson Blu Hotel Delhi By 2020
Radisson Blu Hotel Delhi By 2020Radisson Blu Hotel Delhi By 2020
Radisson Blu Hotel Delhi By 2020
 
Experience Letter
Experience LetterExperience Letter
Experience Letter
 
experience certificates.PDF
experience  certificates.PDFexperience  certificates.PDF
experience certificates.PDF
 
Experience Letter
Experience LetterExperience Letter
Experience Letter
 

Similar a Casual convergence

Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkToshiaki Maki
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミングAtsuhiro Kubo
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)hiboma
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalkBIGLOBE Tech Talk
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4bitter_fox
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
The master plan of scaling a web application
The master plan ofscaling a web applicationThe master plan ofscaling a web application
The master plan of scaling a web applicationYusuke Wada
 
Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法Nagao Hiroaki
 
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly SwarmYoshimasa Tanabe
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellIntroduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellbitter_fox
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memoKiyotaka Oku
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 

Similar a Casual convergence (20)

Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミング
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
Ext.direct
Ext.directExt.direct
Ext.direct
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
Rx java x retrofit
Rx java x retrofitRx java x retrofit
Rx java x retrofit
 
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
aws_opsworks
aws_opsworksaws_opsworks
aws_opsworks
 
The master plan of scaling a web application
The master plan ofscaling a web applicationThe master plan ofscaling a web application
The master plan of scaling a web application
 
Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
Openstack chef-repo
Openstack chef-repoOpenstack chef-repo
Openstack chef-repo
 
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly Swarm
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellIntroduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memo
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 

Último

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Último (10)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Casual convergence

  • 1. Casual Convergence @azukiwasher on July 24 2013 13年7月27日土曜日
  • 2. About me •Name: Nobuhiro Uchiyama •Ruby Programmer •Non-DevOps •Don’t know “Chef” very well •Chef helps and drives us! 13年7月27日土曜日
  • 3. Topic for Today •Convergence for everyone 13年7月27日土曜日
  • 4. Convergence •The process of actions configures a specific part of the system. •Provide this process to end- users settings (email, www, etc.) ...? 13年7月27日土曜日
  • 6. Interface for End-users •Web app •Server (AgileSolo) 13年7月27日土曜日
  • 7. Interface for End-users End-user User’s item Web app AgileSolo 13年7月27日土曜日
  • 8. AgileSolo •Ruby gem •Wraps Chef::Application::Solo •Provides HTTP endpoint (puma) •Overrides “run_application” in Solo 13年7月27日土曜日
  • 9. Flow (1) #  Request  Data:  @data.json {    "solo":{        "run_list":"recipe[sample::default]",        "name":"sample",        "items":{            "id":"items",            "data":{                    "lines":["foo",  "hoge"]            }        }    } } 13年7月27日土曜日
  • 10. Flow (2) #  HTTP  Request $  curl  -­‐-­‐request  PUT   -­‐-­‐header  "Content-­‐Type:  application/json"   -­‐-­‐data  @data.json   'http:/localhost:9292/solo' 13年7月27日土曜日
  • 11. Flow (3) #{chef_repo}/data_bags/sample/items.json {    "id":"items",    "data":{        "lines":["foo","bar"]    } } 13年7月27日土曜日
  • 12. Flow (4) #{chef_repo}/site-­‐cookbooks/sample/recipes/default.rb items  =  data_bag('sample') items.map  do  |item|    file  ::File.join('..',  '/tmp/',  "#{item}.json")  do        content  JSON.pretty_generate(data_bag_item('sample',item))    end end 13年7月27日土曜日
  • 13. Implementation (1) #  lib/agile_solo/consumer.rb module  AgileSolo    class  Consumer  <  Command        attr_reader  :name,  :run_list,  :data,  :chef_repo        def  initialize(payload)            @name  =  payload['name']            @run_list  =  payload['run_list']            @data  =  MultiJson.dump(payload['items'])            @chef_repo  =  AgileSolo::Config.chef_repo            Chef::Config[:data_bag_path]  =  File.join(@chef_repo,  'data_bags')            chef_solo.config[:config_file]  =  File.join(@chef_repo,  'solo.rb')            chef_solo.config[:override_runlist]  =  [@run_list]        end        def  chef_solo            @chef_solo  ||=  AgileSolo::Application::Solo.new        end      ..  snip  .. 13年7月27日土曜日
  • 14. Implementation (2) #  lib/agile_solo/consumer.rb module  AgileSolo    class  Consumer  <  Command        attr_reader  :name,  :run_list,  :data,  :chef_repo      ..  snip  ..        def  execute            begin                update_data_bag                chef_solo.run            rescue  =>  e                puts  e.backtrace.join("n")            end        end        def  update_data_bag            File.open(file_path,  'w')  {  |f|  f.write(data)  }        end  ..  snip  .. end 13年7月27日土曜日
  • 15. Implementation (3) #  lib/agile_solo/application/solo.rb require  'chef/application/solo' module  AgileSolo    module  Application        class  Solo  <  Chef::Application::Solo            attr_reader  :chef_solo_json            def  run_application                begin                    run_chef_client                rescue  SystemExit  =>  e                    raise                rescue  Exception  =>  e                    Chef::Application.fatal!("#{e.class}:  #{e.message}",  1)                end            end        end    end end 13年7月27日土曜日
  • 16. Wrap up •Convergence for everyone •Interface for End-users •HTTP PUT Request (Sync) •Kicks chef-solo (run_list, data_bags) 13年7月27日土曜日
  • 17. More efficient ... •AMQP instead of HTTP •Parallel convergence •Async •Agility •Scalability 13年7月27日土曜日