Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker Docker Docker Chef
Search
someara
February 02, 2016
Technology
530
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
620
Configuration Management Camp 2015
someara
1
580
Cookbook Reusability
someara
0
820
TDI with ChefDK 0.0.1
someara
2
890
Configuration Management 101 @ Scale12x
someara
2
930
Configuration Management 101
someara
3
810
Introduction to Chef - Scale 10x
someara
2
470
Introduction to Chef - NYLUG Jan 2012
someara
2
320
Introduction to Chef - LISA11
someara
10
6.2k
Other Decks in Technology
See All in Technology
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
330
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
0
770
AI工学特論: MLOps・継続的評価
asei
11
3k
人手不足への挑戦:車両保全を支えるIoTとクラウド内製化の道【SORACOM Discovery 2026】
soracom
PRO
0
160
LLMリーダーボードアップデートに向けたAgentic Math_SWEのトレースについて
nejumi
0
110
1台から試せる!Edge IoTを使った位置情報の活用設計【SORACOM Discovery 2026】
soracom
PRO
0
110
基調講演:人とAIをつなぐIoTの今と未来 ー 「フィジカル」と「デジタル」が出会うその先へ【SORACOM Discovery 2026】
soracom
PRO
0
360
最新IoT事例11選に学ぶ!現場の成功パターンと実践のコツ【SORACOM Discovery 2026】
soracom
PRO
0
120
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
0
220
ソフトウェアアーキテクチャ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
990
脱Jenkins、インターン生が挑んだCIツールGitHubActions移行
mixi_engineers
PRO
1
260
文字起こし基盤の信頼性
abnoumaru
0
150
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Design in an AI World
tapps
1
270
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
A Tale of Four Properties
chriscoyier
163
24k
Color Theory Basics | Prateek | Gurzu
gurzu
0
400
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
440
What's in a price? How to price your products and services
michaelherold
247
13k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
270
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Six Lessons from altMBA
skipperchong
29
4.4k
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