Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Configuration Management Camp 2015
someara
February 03, 2015
Technology
1
320
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
240
Hand Crafted Artisinal Chef Resources
someara
0
330
Cookbook Reusability
someara
0
290
TDI with ChefDK 0.0.1
someara
2
370
Configuration Management 101 @ Scale12x
someara
2
640
Configuration Management 101
someara
3
550
Introduction to Chef - Scale 10x
someara
2
350
Introduction to Chef - NYLUG Jan 2012
someara
2
240
Introduction to Chef - LISA11
someara
10
6k
Other Decks in Technology
See All in Technology
FlexScan HD2452Wの 後継を探して
tring
0
6.6k
イ良い日ンマを作る(USBストレージ容量偽装の手法) / USB Storage Capacity Faking Techniques
shutingrz
0
560
OPENLOGI Company Profile
hr01
0
12k
IoT から見る AWS re:invent 2022 ― AWSのIoTの歴史を添えて/Point of view the AWS re:invent 2022 with IoT - with a history of IoT in AWS
ma2shita
0
290
230125 モニターマウントLT ITガジェット翁(Ryu.Cyber)さん
comucal
PRO
0
4.8k
Cloudflare Workersで動くOG画像生成器
aiji42
1
500
OpenShift.Run2023_create-aro-with-terraform
ishiitaiki20fixer
1
360
MLOps Workshopでの学びと弥生の研究開発基盤 / takeaways from MLOps workshop and YAYOI's research and development infrastructure
yayoi_dd
0
160
Stripe / Okta Customer Identity Cloud(旧Auth0) の採用に至った理由 〜モリサワの SaaS 戦略〜
tomuro
0
140
スクラム導入して変わったチーム、組織のありかた
yumechi
0
270
S3とCloudWatch Logsの見直しから始めるコスト削減 / Cost saving S3 and CloudWatch Logs
shonansurvivors
0
270
re:Invent発表のサービスを取り入れて加速する弥生のSecurity&Governance / accelerating YAYOI's Security and Governance with services announced at reinvent
yayoi_dd
0
150
Featured
See All Featured
Web development in the modern age
philhawksworth
197
9.6k
How to Ace a Technical Interview
jacobian
270
21k
Why Our Code Smells
bkeepers
PRO
326
55k
How to name files
jennybc
47
73k
Building Better People: How to give real-time feedback that sticks.
wjessup
346
17k
Fontdeck: Realign not Redesign
paulrobertlloyd
74
4.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
The Straight Up "How To Draw Better" Workshop
denniskardys
226
130k
Teambox: Starting and Learning
jrom
124
7.9k
Bootstrapping a Software Product
garrettdimon
299
110k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
109
16k
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/
[email protected]
/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