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
Configuration Management Camp 2015
Search
someara
February 03, 2015
Technology
580
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Configuration Management Camp 2015
Ghent Belgium
someara
February 03, 2015
More Decks by someara
See All by someara
Docker Docker Docker Chef
someara
0
530
Hand Crafted Artisinal Chef Resources
someara
0
620
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
Tech-Verse 2026_Keynote
lycorptech_jp
PRO
0
130
【FinOps】データドリブンな意思決定を目指して
z63d
3
590
Agentic AI 時代のテスト手法: Kiro とはじめるプロパティベーステスト (AWS Summit Japan 2026 | DEV212)
ymhiroki
0
200
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
350
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
250
AI時代における最適なQA組織の作り方
ymty
3
350
Terraform 101 (初心者向け) 資料
shuadachi
0
170
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
410
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
180
10x Speed With QA Agent Platform - How we scaled adoption from individual effort to organizational capability
lycorptech_jp
PRO
0
120
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
990
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
Featured
See All Featured
Building an army of robots
kneath
306
46k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
BBQ
matthewcrist
89
10k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
250
Producing Creativity
orderedlist
PRO
348
40k
Designing Experiences People Love
moore
143
24k
The Cost Of JavaScript in 2023
addyosmani
55
10k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
A designer walks into a library…
pauljervisheath
211
24k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
860
Tell your own story through comics
letsgokoyo
1
980
Transcript
Chef Reusability! Config Management Camp! Ghent, Belgium! February 2015
Sean OMeara!
[email protected]
! @someara
whoami
Part 1
Things that are true
New Chef users expect community cookbooks to just work
Especially the Chef maintained cookbooks
This is not the current state of things
This leads to sadness
We must repair it
People copy patterns
The status quo cannot be allowed to continue
Common pain points https://www.flickr.com/photos/kwl/4595324641
Platform and version support
Weak scoping
No standard interface
Compilation phase work
Needing chef-rewind
Attributes and precedence
Pattern proliferation
The path out of the darkness https://www.flickr.com/photos/71267357@N06/15864687537
Change how cookbooks are written
systems beliefs! behaviors
Standardize interfaces
Eliminate the pain points
Focus on resources
Make it super easy! to write resources
Ship resources for ALL THE THINGS
Copy better patterns
Make it fucking delightful
None
Part 2
Simple design patterns https://www.flickr.com/photos/pollock/4172865252
None
None
You just separated data from code
You also just built an interface
Complex design patterns https://www.flickr.com/photos/alanosaur/6417040565
None
None
This is where things get weird
amazon debian-6 debian-7 ubuntu-10.04 ubuntu-12.04 ubuntu-14.04 centos-5 centos-6 centos-7 freebsd-9
freebsd-10
Debconf! Docker! LaunchD! Runit! SMF! Simple! SystemD! Sysvinit! Upstart! Windows
Services
There is a large amount of variation between software versions
There is an insane amount variation across platforms
These differences need to be handled somewhere
Early techniques did everything in the recipe
data resource pattern
Later techniques focused on isolation
Resource pattern isolation
None
private recipes by convention
Resource data isolation
None
None
We now have decision logic in our interface
Default values often need to be computed
Doing this in the interface leads to sorrow
None
We need a better way
Consumption Patterns https://www.flickr.com/photos/ektogamat/2578779839
None
None
None
None
Why resources are best https://www.flickr.com/photos/cross_stitch_ninja/4932950637
node attributes roles environments databags are nice to haves
They drive data about resources
Resources are fundamental
Resources are strongly scoped
Resources have a standardized interface
Resources have types, names, and parameters
Type
Name
Parameters
Resources have identities
None
Resource can see each other
Promise to talk
Promise to listen
Resource behave the same across platforms
None
None
None
Resource can have multiple providers
None
Writing simple resources
yum
</switches github>
Writing complex resources
mysql httpd
</switches github>
fin