SlideShare a Scribd company logo
1 of 47
Download to read offline
ChefとPuppetの比較
~Puppetユーザから見たChef~(仮)
クックパッド株式会社
菅原 元気
自己紹介
菅原 元気 (@sgwr_dts / id:winebarrel)
白金台のほうから来ました
● クックパッド株式会社勤務
● インフラエンジニア
● Ruby・AWS関連ツールを公開しています
○ https://bitbucket.org/winebarrel/
○ https://github.com/winebarrel/
本日の趣旨
Chefをディスりに来ました
本日の趣旨
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
『Puppetの優れている部分を話せ(意訳)』
といわれて横浜まで来ました
本日の趣旨
吉田 真吾 14:49
... Puppetのほうがこんなに便利だ、という趣旨でお話できることなどはございま
せんでしょうか?(中略)Puppetでないとできない(より便利な)ことも多いのではな
いかと思っているのですが。
本日の趣旨
プレゼンをきいてPuppetに
乗り換える方はいないと思いますが…
● Puppetにも良い機能があるので、要望・機能拡
張でChefの改善にもつながるかな
● これからPuppet or Chefを選択する人は、選参
考になるかな
…という感じです
弊社とPuppetのおつきあい
2009年
一部サーバにPuppetを導入
大嫌いでした
● 適用時にエラーがいっぱい
● リソース競合の解消がめんどくさい
● サーバとの認証でエラーがでる
● 外部DSLがわかりにくい
etc.
弊社とPuppetのおつきあい
2010年
AWSの検証開始
とりあえずpuppetを選択
弊社とPuppetのおつきあい
2011年
AWSに移行
現在とおおむね同じPuppetの構成
● ENCは未使用(ノードの更新は手動)
● manifestの書き方がめちゃくちゃ
(スタイルガイドがなかった?)
弊社とPuppetのおつきあい
2011年
Puppetに嫌気が差していたので
Chefに移行しようとしていた
…が、諸事情により断念
弊社とPuppetのおつきあい
2012年
VPCに移行
Puppetまわりも刷新
● ENCの導入
● スタイルガイドに従ってリファクタリング
● 各種プラクティスに従って設計を変更
(継承廃止!)
現在のサーバ構成
● クライアントサーバ構成
● サーバ台数は500〜600台
● 基本的にすべてpuppetで管理
クライアント側の機能の比較
クライアント側の機能の比較
ディレクトリ構成
Puppet(クックパッドの場合)
├── lib
├── manifests
├── modules
│ ├── apache
│ │ ├── files
│ │ ├── manifests
│ │ └── templates
│ ├── nginx
│
├── roles
│ ├── app_server
│ │ ├── files
│ │ ├── manifests
│ │ └── templates
│ ├── db_server
│ │ ├── manifests
│ │ └── templates
│
└── types
Chef
├── cookbooks
│ ├── apache
│ │ ├── attributes
│ │ ├── definitions
│ │ ├── files
│ │ ├── libraries
│ │ ├── providers
│ │ ├── recipes
│ │ ├── resources
│ │ └── templates
│ └── nginx
│ ├── attributes
│ ├── definitions
│ ├── files
│ ├── libraries
│ ├── providers
│ ├── recipes
│ ├── resources
│ └── templates
├── data_bags
├── nodes
│ ├── app-001.json
│ └── db-001.json
├── roles
│ ├── app.json
│ └── db.json
├── site-cookbooks
└── solo.rb
クライアント側の機能の比較
ディレクトリ構成
● PuppetにChefのような
決められたディレクトリ構成はない
● ベストプラクティスを追求すると
似たような構成になると思います
クライアント側の機能の比較
モジュール(クックブック)とロール
Puppet
# manifest
class nginx {
package { 'nginx':
ensure => '1.2.2.1',
}
service { 'nginx':
ensure => running,
enable => true,
require => Package['nginx'],
}
file { '/etc/nginx/enginx.conf':
ensure => present,
source => template('...'),
owner => 'root,
...
notify => Service['nginx'],
}
}
# role
class app {
include nginx
file { '/etc/hosts':
...
}
}
Chef
# recipe
package 'nginx' do
action :install
version '1.2.2.1'
end
service 'nginx' do
action { :enable, :start }
end
template '/etc/nginx/nginx.conf' do
source 'nginx.conf.erb'
owner 'root'
mode 0644
notifies :reload , 'service[nginx]'
end

# role: app.json
{
"run_list": [
"role[nginx]"
]
}
クライアント側の機能の比較
モジュール(クックブック)とロール
Puppet
# カスタムタイプ
define sysctl($value) {
exec { "exec_sysctl_$name":
command => "sysctl -w $name=$value}",
unless => "sysctl -n ${name} | 
fgrep -q $value",
path => '/bin:/sbin:/usr/sbin:/usr/bin',
}
# ...
sysctl { 'kernel.domainname':
value => 'example.com',
}
Chef
# カスタムリソース
define :sysctl do
bash "exec-sysctl-#{params[:name]}" do
code <<-EOS
sysctl -w #{params[:name]=#{params[:value]}
EOS
not_if <<-EOS
sysctl -n ${params[:name]} | 
fgrep -q #{params[:value]}
EOS
end
end
# ...
sysctl 'kernel.domainname' do
value 'example.com'
end
クライアント側の機能の比較
モジュール(クックブック)とロール
● 基本的にはほとんど同じだと思います
○ 見えない人は3回瞬きしてください
● ChefのRuby DSLはうらやましいです
○ PuppetのRuby DSLはお亡くなりになります
○ 既存のDSLを拡張するようですが(何故…)
● ビルドインのリソースは
Chefのほうが充実しているかも
クライアント側の機能の比較
モジュール(クックブック)とロール
● Puppetのロールの実態はモジュールです
○ 単にモジュールをまとめるモジュールというだけ
● ロールにリソースを定義できるので、Chefよりも
やや柔軟かも
クライアント側の機能の比較
モジュール(クックブック)とロール
● ohaiの代わりにfacterというツールで
システム情報を収集します
クライアント側の機能の比較
モジュール(クックブック)とロール
● Puppetはリソース毎に依存性を定義します
○ 未定義の場合順番はランダム
○ 上から順に適用して欲しいこともあります…
● Chefは記述順に適用
○ リソース毎に依存性を定義できるのかは、
分かりませんでした(あったら教えてください)
クライアント側の機能の比較
Puppet独自の機能
Ruby DSLが使えないのは大変残念ですが
いくつかPuppet独自の機能があります
(便利かどうかはさておき)
クライアント側の機能の比較
継承
Puppet Style Guide
"Inheritance should be avoided."
class freebsd inherits unix {
File['/etc/passwd'] { group => 'wheel' }
File['/etc/shadow'] { group => 'wheel' }
}
クライアント側の機能の比較
継承
● 一言でいえば「使うな」
二言で言えば「死んでも使うな」
● 使って良いことはありません
○ リソース競合の解決が難しくなります
○ 仮想リソースという解決策もありますが…
■ http://gihyo.jp/admin/serial/01/puppet/0013
クライアント側の機能の比較
Parameterised Classes
● モジュールをテンプレートとして使えます
● Chefだとロールに属性を定義して
クックブックに渡す感じでしょうか?
# module
class apache($version) {
... class contents ...
}
# role
class webserver {
class { 'apache': version => '1.3.13' }
}
クライアント側の機能の比較
Run Stage
● 適用順を制御できます
● Chefで必要になる機能ではないですね…
stage { 'first': before => Stage['main'] }
stage { 'last': require => Stage['main']
}
class {
'apt-keys': stage => first;
'sendmail': stage => main;
'apache': stage => last;
}
クライアント側の機能の比較
Function
server-idを設定する関数
module Puppet::Parser::Functions
newfunction(:mysql_server_id, :type => :rvalue) do |args|
ip_addr = lookupvar('ipaddress')
ip_addr = IPAddr.new(ip_addr)
# IPアドレスは下位 16ビットを整数値として使う
ip_addr = (ip_addr.to_i & 0xFFFF)
server_id = '%02d%03d%05d' % [
0, # 0〜41の連番
392, # 国コード(http://ja.wikipedia.org/wiki/ISO_3166-1_numeric)
ip_addr,
]
# 先頭の0は削除
server_id.sub!(/A0+/, '')
return server_id
end
end
# my.cnf.elb
...
server-id = <%= scope.function_mysql_server_id %>
...
クライアント側の機能の比較
Function
● 共通で使う関数を定義できます
○ マニフェスト・テンプレート、どこでも使えます
● シンタックスは例に漏れずダサいです
● Chefはグローバル関数の定義場所が
よく分からなかったです…
クライアント側の機能の比較
まとめ
● Puppetは「Ruby DSLを使えないのがイけてな
い」に尽きると思います
● とはいえ似たような感じです
● Puppet独自の機能がありますが、だからといっ
てPuppetに優位性があるかは微妙です
● ある程度の機能差はそのうち埋まる気がします
クライアント側の機能の比較
たぶん両方で使えるTips
● モジュール(クックブック)は細かく分けましょう
● ミドルウェアのバージョンは極力書きましょう
● ミドルウェアのメジャーバージョンはモジュール
を分けましょう
● 設定ファイルの抽象化はロール単位でやるとよ
いです
クライアント側の機能の比較
たぶん両方で使えるTips
● まめに適用しないと腐ります
● オンラインで適用できるようにしておくと腐敗を
防げます
○ restart等を避けるなど
● Puppet configuration PatternsはChefでも参
考になると思います
● Chef/Puppetよりさらに前の処理を行うツールを
作っておくといろいろ捗ります
運用の機能の比較
運用の機能の比較
chef-solo
● puppet-applyというコマンドで同じようなことが
できます
● マニフェスト(レシピ)単位で指定するのでちょっ
と感じが違うかも
$ puppet apply -l /tmp/manifest.log manifest.pp
$ puppet apply --modulepath=/root/dev/modules -e "include ntpd::server"
$ puppet apply --catalog catalog.json
運用の機能の比較
knife
● knifeの代わりとしてcapistoranoでサーバへの
登録(というかデプロイ)を行います
● Puppetのサーバはファイル管理なので、デプロ
イの実装は簡単です
運用の機能の比較
knife-solo
● 同様の機能はPuppetにはありません…
● 手元のちょっとした修正を適用できるのが良さ
そうですね
○ knife-solo: レシピ修正→適用テスト→git push
○ puppet(C/S): レシピ修正→git push→適用テスト
運用の機能の比較
chef-server
Puppetのキラー機能 その①
puppet-master (サーバ)
● 情報をファイルで管理
● ファイルをサーバにただ置くだけ
● 変更はサーバが自動検知
● gitでそのままファイルを
管理・デプロイできる!
chef-server
gitで設定を管理すると…
● 特別なツールがいらない
● 他のツールと組み合わせやすい
● GitHubと組み合わせて
レビュー・pull reqできる!
運用の機能の比較
運用の機能の比較
chef-server
chef-server
● 情報をDBで管理
● 変更はknife経由だけ?
● バージョン管理はできるようですが…
○ diffとかとれるんでしょうか?
● gitとの組み合わせ事例も一応ありますね
運用の機能の比較
ノード管理
Puppetのキラー機能 その②
ENC(External Node Classifiers)
● ノード情報を動的に定義
● 変数(Chefの属性)も動的に定義
● EC2のAPIを使うことで
ノード管理をAWSに委譲できる!
運用の機能の比較
ノード管理
Chefの場合…
● 動的なノード定義の情報を探したのですが見つ
からず…
● EC2でサーバが増減する場合、どのように管理
しているのでしょうか?(cronで定期的に更
新?)
運用の機能の比較
chef-server+gitとENCについて
Opscodeが本気になれば、すぐに実装される気が
します。ただ、chef-serverは総合的なサーバ管理
ツールを目指しているように見受けられるので、ポ
リシー的にすぐに実装はされないかなーと
運用の機能の比較
chef-server+gitとENCについて
knife-soloで運用するのも手ですが、すべての情
報がrsyncで転送されるのが気になります…
(サーバ100台に適用、とか困りそうです)
運用の機能の比較
どなたかgitの使えるの
軽量chef-serverを
作るとよいと思います
運用の機能の比較
その他
● 「dry-runできないんだ、やーい」と思ってたら、
とっくに実装されてました…
● PuppetにもWeb UIはありますが、あんまり使っ
たことはないです
● Puppetでもそうなんですが、クライアントをデー
モン化してる方はいるんでしょうか?ものすごく
怖いのですが…
おまけ
おまけ
さくっと実装できそうだったので
chef-solo-encというのをつくりました
chef-soloでENC的な機能を実現します
おまけ
DEMO

More Related Content

What's hot

[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
Amazon Web Services Japan
 

What's hot (20)

AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine |...
 
Application Load Balancer
Application Load BalancerApplication Load Balancer
Application Load Balancer
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMailAWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
 
AWS Wavelength最新情報(2020/12)
AWS Wavelength最新情報(2020/12)AWS Wavelength最新情報(2020/12)
AWS Wavelength最新情報(2020/12)
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
Black Belt Online Seminar AWS Amazon RDS
Black Belt Online Seminar AWS Amazon RDSBlack Belt Online Seminar AWS Amazon RDS
Black Belt Online Seminar AWS Amazon RDS
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
 
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
 

Viewers also liked

Php勉強会43 発表資料
Php勉強会43 発表資料Php勉強会43 発表資料
Php勉強会43 発表資料
ichikaway
 
Python開発環境三種の神器
Python開発環境三種の神器Python開発環境三種の神器
Python開発環境三種の神器
Yukitaka Uchikoshi
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
 
Vagrant intro
Vagrant introVagrant intro
Vagrant intro
t9md
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
 

Viewers also liked (20)

ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
20100529 phpday
20100529 phpday20100529 phpday
20100529 phpday
 
Php勉強会43 発表資料
Php勉強会43 発表資料Php勉強会43 発表資料
Php勉強会43 発表資料
 
Office 365 Enterprise / Business 管理者向け利用ガイド/基本操作ガイド
Office 365 Enterprise / Business 管理者向け利用ガイド/基本操作ガイドOffice 365 Enterprise / Business 管理者向け利用ガイド/基本操作ガイド
Office 365 Enterprise / Business 管理者向け利用ガイド/基本操作ガイド
 
Mylynとおともだち
MylynとおともだちMylynとおともだち
Mylynとおともだち
 
IBM Connect Japan 2012 TC-4/OB-5 ついにその実体を現す IBM Project Vulcan! その中核となる IBM S...
IBM Connect Japan 2012 TC-4/OB-5 ついにその実体を現す IBM Project Vulcan! その中核となる IBM S...IBM Connect Japan 2012 TC-4/OB-5 ついにその実体を現す IBM Project Vulcan! その中核となる IBM S...
IBM Connect Japan 2012 TC-4/OB-5 ついにその実体を現す IBM Project Vulcan! その中核となる IBM S...
 
Python開発環境三種の神器
Python開発環境三種の神器Python開発環境三種の神器
Python開発環境三種の神器
 
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくるGitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える
 
Vagrant intro
Vagrant introVagrant intro
Vagrant intro
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
 
DevOps Practices: Configuration as Code
DevOps Practices:Configuration as CodeDevOps Practices:Configuration as Code
DevOps Practices: Configuration as Code
 
(旧版) オープンソースライセンスの基礎と実務
(旧版) オープンソースライセンスの基礎と実務(旧版) オープンソースライセンスの基礎と実務
(旧版) オープンソースライセンスの基礎と実務
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
 

Similar to ChefとPuppetの比較

Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をするChef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
Hidetoshi Ochiai
 
Power shell で DSL
Power shell で DSLPower shell で DSL
Power shell で DSL
urasandesu
 

Similar to ChefとPuppetの比較 (20)

Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
Chefのはじめの一歩
Chefのはじめの一歩Chefのはじめの一歩
Chefのはじめの一歩
 
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
 
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をするChef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
 
Power shell で DSL
Power shell で DSLPower shell で DSL
Power shell で DSL
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作った
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
OpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみたOpenAI の音声認識 AI「Whisper」をテストしてみた
OpenAI の音声認識 AI「Whisper」をテストしてみた
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話
 
Puppet×docker 夢の競演
Puppet×docker 夢の競演Puppet×docker 夢の競演
Puppet×docker 夢の競演
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
 

More from Sugawara Genki

ナウなヤングにCloud Formationが流行ってほしい
ナウなヤングにCloud Formationが流行ってほしいナウなヤングにCloud Formationが流行ってほしい
ナウなヤングにCloud Formationが流行ってほしい
Sugawara Genki
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義する
Sugawara Genki
 
クックパッドの開発について
クックパッドの開発についてクックパッドの開発について
クックパッドの開発について
Sugawara Genki
 
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
Sugawara Genki
 
EC2の天井を超える
EC2の天井を超えるEC2の天井を超える
EC2の天井を超える
Sugawara Genki
 
EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)
Sugawara Genki
 
ゴシッププロトコルによる冗長化と負荷分散の検証
ゴシッププロトコルによる冗長化と負荷分散の検証ゴシッププロトコルによる冗長化と負荷分散の検証
ゴシッププロトコルによる冗長化と負荷分散の検証
Sugawara Genki
 
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
20111012 jaws ug-tokyo勉強会-cookpad-on-aws20111012 jaws ug-tokyo勉強会-cookpad-on-aws
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
Sugawara Genki
 
AWS移行に向けたクックパッドの取り組み+α
AWS移行に向けたクックパッドの取り組み+αAWS移行に向けたクックパッドの取り組み+α
AWS移行に向けたクックパッドの取り組み+α
Sugawara Genki
 
AWS移行に向けたクックパッドの取り組み
AWS移行に向けたクックパッドの取り組みAWS移行に向けたクックパッドの取り組み
AWS移行に向けたクックパッドの取り組み
Sugawara Genki
 

More from Sugawara Genki (20)

Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張
 
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
 
Lambdaによるクラウド型言語の実装
Lambdaによるクラウド型言語の実装Lambdaによるクラウド型言語の実装
Lambdaによるクラウド型言語の実装
 
200k/sec
200k/sec200k/sec
200k/sec
 
DynamoDBのまえにキャッシュおく奴
DynamoDBのまえにキャッシュおく奴DynamoDBのまえにキャッシュおく奴
DynamoDBのまえにキャッシュおく奴
 
20140930 anything as_code
20140930 anything as_code20140930 anything as_code
20140930 anything as_code
 
2014 09-23 Mechanism of Gossip protocol
2014 09-23 Mechanism of Gossip protocol2014 09-23 Mechanism of Gossip protocol
2014 09-23 Mechanism of Gossip protocol
 
CloudWatch Logsについて
CloudWatch LogsについてCloudWatch Logsについて
CloudWatch Logsについて
 
MHA on AWS+Rails
MHA on AWS+RailsMHA on AWS+Rails
MHA on AWS+Rails
 
ナウなヤングにCloud Formationが流行ってほしい
ナウなヤングにCloud Formationが流行ってほしいナウなヤングにCloud Formationが流行ってほしい
ナウなヤングにCloud Formationが流行ってほしい
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義する
 
クックパッドの開発について
クックパッドの開発についてクックパッドの開発について
クックパッドの開発について
 
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
 
EC2の天井を超える
EC2の天井を超えるEC2の天井を超える
EC2の天井を超える
 
EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)
 
クックパッドでのVPC移行について
クックパッドでのVPC移行についてクックパッドでのVPC移行について
クックパッドでのVPC移行について
 
ゴシッププロトコルによる冗長化と負荷分散の検証
ゴシッププロトコルによる冗長化と負荷分散の検証ゴシッププロトコルによる冗長化と負荷分散の検証
ゴシッププロトコルによる冗長化と負荷分散の検証
 
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
20111012 jaws ug-tokyo勉強会-cookpad-on-aws20111012 jaws ug-tokyo勉強会-cookpad-on-aws
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
 
AWS移行に向けたクックパッドの取り組み+α
AWS移行に向けたクックパッドの取り組み+αAWS移行に向けたクックパッドの取り組み+α
AWS移行に向けたクックパッドの取り組み+α
 
AWS移行に向けたクックパッドの取り組み
AWS移行に向けたクックパッドの取り組みAWS移行に向けたクックパッドの取り組み
AWS移行に向けたクックパッドの取り組み
 

Recently uploaded

Recently uploaded (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

ChefとPuppetの比較