• State of IT • How to do it better • Working together • Humane Systems • Open Practices Fundamentally rooted in the idea that our business needs to deliver software faster, safer, and more reliably into the hands of users.
• State of IT • How to do it better • Working together • Humane Systems • Open Practices Fundamentally rooted in the idea that our business needs to deliver software faster, safer, and more reliably into the hands of users.
E A R E : • M A D E O F WAT E R M O L E C U L E S • 1 / 5 0 0 0 T H D E U T E R I U M • C H A N G I N G P H A S E S S E V E R A L T I M E S • S H A P E D B Y T E M P E R AT U R E • F O R M E D B Y P R E S S U R E • R E L I A N T O N P R E S E N C E O F D U S T • S U B J E C T T O N U C L E AT I O N
If no internet access: host your own universe • End-to-end, granular, accurate map of the problem domain • Thorough domain expertise to build/deploy/ manage the *entire* stack • Network access to managed infrastructure • Local Admin rights on workstations • Basic scripting, working with CLIs or APIs • Dedicated resources (no context-switching)
Practice on the whole stack • Converge on a regular interval • Persistent changes must be captured in configuration code • Out-of-band change will be lost • Infrastructure as Code • Use it, don’t disable it
Contribute back to anyone’s code • Curate contributions to your own code • Comment, fix, improve submissions • Share commit rights • Encourage a culture of openness
No one gets to push changes by hand • Set up rules for Code Review • Develop changes locally • Test (more later) • Check-in and submit for code review • CI jobs push (build) the change • You will feel like Daniel-san sanding the floor
reduces the amount of blood, sweat, and tears required to get new infrastructure • Containers also reduce this effort • Roll out new systems often • Replace Production often • Make provisioning trivial • Can we be fully immutable?
BROKEN PROCESS RATHER THAN TRYING TO FIX IT. MACHINES CAN BE MADE EXPENDABLE AS LONG AS THE TOTAL SOFTWARE IS DESIGNED FOR IT. NOT MUCH OF IT IS TODAY, BUT WE ARE GETTING THERE. NATURE SHOWS THAT THIS IS A GOOD WAY OF SCALING SERVICES.” – MARK BURGESS AUTHOR OF CFENGINE
slips, lapses: all opportunities to learn • Presume good intentions • Remove fear of punishment • Blameless Post-Mortems • Structured Incident Response • Produce actionable items to prevent the same thing in the future
E R L E S S O N A B O U T B A L A N C E ? L E S S O N N O T J U S T K A R A T E O N L Y ; L E S S O N F O R W H O L E L I F E . W H O L E L I F E H A V E A B A L A N C E , E V E R Y T H I N G B E B E T T E R . U N D E R S T A N D ? ”
your applications: it’s ALL code! • Regression test during development (guards) • Unit test local development before commit • e.g. Kitchen.CI • Test on commit via CI, before code review • Test after code review passes at 1st integration point • Canary test Production • Test Test Test Test Test Test Test Test Test
R A I N I N G T O F I G H T . ” “ T H A T W H A T Y O U T H I N K ? ” “ N O . ” “ T H E N W H Y T R A I N ? ” “ S O I W O N ' T H A V E T O F I G H T . ” “ M I Y A G I H A V E H O P E F O R Y O U . ”