Maintainability of Configuration Management Code
-
Upload
clinton-wolfe -
Category
Technology
-
view
143 -
download
1
Transcript of Maintainability of Configuration Management Code
/
Maintainability of Config Management Code
Why is Everything So Awful, and What Can We Do About it?
Clinton WolfeDevOps Practice Lead@clintoncwolfe
Part 1:
A Bit About Me
and My History
id clintoncwolfe
• Lead DevOps Consultant at OmniTI Computer
Consulting
• Config Management (CM) specialist in Chef
and Ansible
• Software Engineering wonk
• Perl web developer in a former life
Perl, huh?
• mod_perl developer 1996-
2011
• Projects start green, turn
brown, hard to maintain
• I became a proponent of
maintainability
Part 2: Maintain-a-what-ability?
The Push for Maintainability
TMTOWTDI
The Push for Maintainability
"Some ways are Better than Others"
The Push for Maintainability
"STOP DOING THAT. Use this instead"
Maintainawhat?
The ease with which a system
can be interacted with, over time,
in order to:
• diagnose problems
Maintainawhat?
The ease with which a system
can be interacted with, over time,
in order to:
• diagnose problems
• make repairs
Maintainawhat?
The ease with which a system
can be interacted with, over time,
in order to:
• diagnose problems
• make repairs
• cope with changes in
requirements
Maintainawhat?
The ease with which a system
can be interacted with, over time,
in order to:
• diagnose problems
• make repairs
• cope with changes in
requirements
• maximize useful life
That sounds straightforward!
Part 3: Some Factors Affecting
Maintainability in Application Software
Arbitrary vs Necessary Complexity
Arbitrary Necessary
Functionality vs Simplicity
Entropy / Bit Rot
Write vs Read
Turnover and Skill Variance
Yadda Yadda Yadda…
• lots of other things impact Application maintainability
• performance optimization
• rapidly changing feature requests
• languages, libraries, architectures go out of style
• But I won't get into that stuff
• It's hard
• No good answers
• Not as applicable to CM
Part 4:
So Now Let's Do That to the Servers
It's Easy!
"You don't have to know Ruby to use
Chef!"
It's Easy!
"You don't have to know Ruby to use
Chef!"LIES
Consequences, Schmonsequences
rm –rf –no-preserve-root {foo}/{bar}
Ops Background != Dev Background
Test Fixtures
CM isn't good for everything
Part 5: Free Advice
Comment : Why, not What
Pre-Flight
KISS on Variable Storage
Use a Linter
Write Tests. Have Tests.
Use Ephemeral Test Machines
Use a Development Kit
Use a Code Generator
Use Code Reviews to Level-Set
Burn It All Down
Really, Really Burn It All Down
Thanks!
@clintoncwolfe
ansibledk.com
omniti.com
Let's follow up in OpenSpaces!