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
550
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
470
Hand Crafted Artisinal Chef Resources
someara
0
580
Cookbook Reusability
someara
0
720
TDI with ChefDK 0.0.1
someara
2
850
Configuration Management 101 @ Scale12x
someara
2
870
Configuration Management 101
someara
3
760
Introduction to Chef - Scale 10x
someara
2
440
Introduction to Chef - NYLUG Jan 2012
someara
2
280
Introduction to Chef - LISA11
someara
10
6.1k
Other Decks in Technology
See All in Technology
スタートアップの事業成長を支えるアーキテクチャとエンジニアリング
doragt
1
7.2k
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
0
130
pmconf 2025 大阪「生成AI時代に未来を切り開くためのプロダクト戦略:圧倒的生産性を実現するためのプロダクトサイクロン」 / The Product Cyclone for Outstanding Productivity
yamamuteki
3
2.4k
事業状況で変化する最適解。進化し続ける開発組織とアーキテクチャ
caddi_eng
1
6.7k
膨大なデータをどうさばく? Java × MQで作るPub/Subアーキテクチャ
zenta
0
120
.NET 10のEntity Framework Coreの新機能
htkym
0
110
Datadog LLM Observabilityで実現するLLMOps実践事例 / practical-llm-observability-with-datadog
k6s4i53rx
0
130
LINEギフト・LINEコマース領域の開発
lycorptech_jp
PRO
0
370
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
140
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
850
入社したばかりでもできる、 アクセシビリティ改善の第一歩
unachang113
2
350
現地速報!Microsoft Ignite 2025 M365 Copilotアップデートレポート
kasada
2
1.7k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
23k
Making Projects Easy
brettharned
120
6.5k
Code Reviewing Like a Champion
maltzj
527
40k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
What's in a price? How to price your products and services
michaelherold
246
12k
Done Done
chrislema
186
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
How STYLIGHT went responsive
nonsquared
100
5.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
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