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
1
560
Configuration Management Camp 2015
Ghent Belgium
someara
February 03, 2015
Tweet
Share
More Decks by someara
See All by someara
Docker Docker Docker Chef
someara
0
490
Hand Crafted Artisinal Chef Resources
someara
0
600
Cookbook Reusability
someara
0
800
TDI with ChefDK 0.0.1
someara
2
870
Configuration Management 101 @ Scale12x
someara
2
890
Configuration Management 101
someara
3
780
Introduction to Chef - Scale 10x
someara
2
460
Introduction to Chef - NYLUG Jan 2012
someara
2
300
Introduction to Chef - LISA11
someara
10
6.2k
Other Decks in Technology
See All in Technology
クラウド時代における一時権限取得
krrrr38
1
180
DevOpsエージェントで実現する!! AWS Well-Architected(W-A) を実現するシステム設計 / 20260307 Masaki Okuda
shift_evolve
PRO
3
290
Agentic Software Modernization - Back to the Roots (Zürich Agentic Coding and Architectures, März 2026)
feststelltaste
1
220
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
8
3k
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
300
マネージャー版 "提案のレベル" を上げる
konifar
21
14k
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
3.9k
管理者向けGitHub Enterpriseの運用Tips紹介: 人にもAIにも優しいプラットフォームづくり
yuriemori
0
170
型を書かないRuby開発への挑戦
riseshia
0
200
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
120
LINE Messengerの次世代ストレージ選定
lycorptech_jp
PRO
19
7.6k
AIエージェント・エコノミーの幕開け 〜 オープンプロトコルが変えるビジネスの未来 〜
shukob
0
110
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
270
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Code Review Best Practice
trishagee
74
20k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
For a Future-Friendly Web
brad_frost
183
10k
The Invisible Side of Design
smashingmag
302
51k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
HDC tutorial
michielstock
1
510
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
660
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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