Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Docker Docker Docker Chef
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
someara
February 02, 2016
Technology
540
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker Docker Docker Chef
Configuration Management Camp
Ghent Belgium
February 2016
someara
February 02, 2016
More Decks by someara
See All by someara
Hand Crafted Artisinal Chef Resources
someara
0
630
Configuration Management Camp 2015
someara
1
590
Cookbook Reusability
someara
0
830
TDI with ChefDK 0.0.1
someara
2
900
Configuration Management 101 @ Scale12x
someara
2
940
Configuration Management 101
someara
3
820
Introduction to Chef - Scale 10x
someara
2
480
Introduction to Chef - NYLUG Jan 2012
someara
2
330
Introduction to Chef - LISA11
someara
10
6.2k
Other Decks in Technology
See All in Technology
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
490
おい、エージェントを使って終わらせろ
nwiizo
2
840
C#未経験の僕がAIに読めるコードを書かせるまで
maguroalternative
0
210
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
430
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
5
630
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.8k
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
130
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
650
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.3k
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
690
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
1k
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
370
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
250
Odyssey Design
rkendrick25
PRO
2
810
Between Models and Reality
mayunak
4
460
Optimizing for Happiness
mojombo
378
71k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
Done Done
chrislema
186
17k
Transcript
Docker Docker Docker Chef
Config Management Camp Ghent, Belgium February 2016
Sean OMeara
[email protected]
@someara
whoami
Part 1
Remember the time
Remember that time we didn’t need configuration management because we
had packaging?
Remember that time the cloud came out and we didn’t
need sysadmins?
Remember that time when we didn’t need schemas because we
had MongoDB?
Repeat after me
CONFIGURATION MANAGEMENT AND IMMUTABLE INFRASTRUCTURE ARE NOT MUTUALLY EXCLUSIVE
Say it again
CONFIGURATION MANAGEMENT AND IMMUTABLE INFRASTRUCTURE ARE NOT MUTUALLY EXCLUSIVE
We good?
The Docker cookbook
Configuration Management is not restricted to files, directories, packages and
services
Configuration Management tests and repairs any programmable noun
Images are nouns
Containers are nouns
hello world
https://flic.kr/p/br26Cb Setup v0.0.1
Install ChefDK
git clone https:// github.com/someara/chef- docker-tutorial
kitchen test
git checkout v0.0.1 git checkout v0.1.0 git checkout v0.1.1 git
checkout v0.2.0 git checkout v0.2.1 git checkout v0.3.0 git checkout v0.3.1
https://flic.kr/p/s684tk Feature v0.1.0
metadata.rb
.kitchen.yml
recipes/hello.rb
kitchen converge hello kitchen login hello docker images docker ps
-a docker logs hello-world
git add . git commit -a -m “v0.1.0 - hello”
git tag v0.1.0
https://flic.kr/p/53stX2 Patch v0.1.1
Bug report: “hello is not idempotent”
kitchen converge hello kitchen converge hello
kitchen login hello docker ps -a docker logs hello-world
hello-world exits after every run
This is expected!
http://gliderlabs.com/
recipes/hello.rb
rubocop \ && rspec \ && kitchen test hello
metadata.rb
git add . git commit -a -m “v0.1.1 - hello”
git tag v0.1.1
an echo server https://flic.kr/p/6WtX6X
https://flic.kr/p/s684tk Feature v0.2.0
Recipe work Kitchen work Behavior testing Unit Final Acceptance Commit
.kitchen.yml
recipes/echo.rb
Docker Containers have 40+ (and growing) runtime API options
None
kitchen converge echo kitchen converge echo kitchen login echo docker
images docker ps -a docker logs an_echo_server docker inspect an_echo_server echo "hi" | nc localhost 7
test/integration/echo/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test echo
metadata.rb
git add . git commit -a -m “v0.2.0 - echo”
git tag v0.2.0
https://flic.kr/p/dRGr3t Patch v0.2.1
Security team recommends a change… Service should listen on explicitly
defined interfaces
kitchen converge echo kitchen login echo netstat -anp
Listening on :::7 Let’s fix that.
recipes/echo.rb
test/integration/echo/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test echo
metadata.rb
git add . git commit -a -m “v0.2.1 - echo
patch” git tag v0.2.1
https://flic.kr/p/ayDujN notifications and subscriptions
https://flic.kr/p/cNdyo Feature v0.3.0
recipes/web.rb
recipes/web.rb
kitchen converge web kitchen converge web kitchen login web docker
images docker ps -a curl localhost docker logs bob
test/integration/web/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test web
metadata.rb
git add . git commit -a -m “v0.3.0 - web”
git tag v0.3.0
https://flic.kr/p/o9c2G3 Patch v0.3.1
Marketing team recommends a change… Bob wasn’t there.
kitchen converge web kitchen login web curl localhost
Bob was here. Let’s fix that.
recipes/web.rb
test/integration/echo/inspec/run_spec.rb
rubocop \ && rspec \ && kitchen test web
metadata.rb
git add . git commit -a -m “v0.3.1 - echo
patch” git tag v0.3.1
Part 2
kitchen-dokken http://on.mtv.com/1ls5SRc
Experimental status Soon to be renamed something less clever
Removes bootstrap overhead Uses Docker volumes Chef not baked into
images Works on Travis
https://github.com/someara/ kitchen-dokken/
Install ChefDK chef gem install kitchen-dokken
git clone https://github.com/ someara/hello_dokken
kitchen list docker ps -a
None
kitchen create docker ps -a
Chef container Data container Runner container
docker run \ —volumes-from chef \ —volumes-from data \ imagename
\ chef-client
docker diff suitename
https://travis-ci.org/ someara/etcd-cookbook
fin
None