If you aren’t familiar with Jordan Sissel’s SysAdvent blog, you should be. Every day in December, leading up to Christmas, Jordan posts an article that will warm even the grinchiest sysadmin’s heart. Four Puppet Labs employees were on the SysAdvent calendar this year, writing on topics that open new windows into the things that make sysadmins tick.
Mike Stahnke, our Director of Software Delivery, wrote a great article on DevOps culture called DevOps is a Mindset; a Cultural Case Study. This is Mike’s personal journey into the heart of IT darkness and back to the light with DevOps.
When I actually arrived on the scene in Nashville, TN, I was happy, but the team was miserable. One junior unix administrator had been working 14-hour days, 7 days a week, for several months. He learned by logging into systems and typing “history” (and was among the best on the team by the time I arrived). This team was blamed for everything. Database was down? Blame the server team. Internet connection down? Blame the server team. Oracle upgrade failed? Blame the server team. Obama won the election? Blame the server team. We were the scapegoats of IT. Luckily, that meant improvement was an easy option.
Sound familiar? Read the rest of Mike’s story.
Organizing configuration management code is clearly a good idea, but how do you do it? For normal development, there are many design patterns for laying out and organizing programs and libraries. Traditional software development has had around 40 years to mature, and config management is fairly young by comparison and hasn’t had the time to have formal best practices.
This is a proposal for an organizational pattern that I’m calling the “lego pattern.” Admittedly, there’s nothing revolutionary about these ideas. To be honest, all the ideas espoused in this article are simply applications of the unix philosophy. This pattern can be used to organize code for any configuration management tool, but for the sake of brevity, I’ll be using Puppet to provide examples.
Read more about Adrien’s Legos approach to configuration management.
Kelsey Hightower, our Director of Operations, was challenged with managing OpenSSH public keys in real-time. Like any good sysadmin, he decided to step outside of his comfort zone and learn a new, but old, programming language.
High-level languages seem to get all the love from sysadmins these days, and rightfully so, but what happened to the basics? Whatever happened to C? Well, nothing; it’s been there, it’s here now, and it’ll be around longer than anybody can predict. I’ve always been fascinated with C, but I never learned enough of it to do anything useful. On top of that, most sysadmins I’ve interacted with tend to shun it, so when re-visiting how to manage OpenSSH public keys, it became a good excuse to force myself to build something with C.
Read more about Kelsey’s pubkeyfs project
Zach Leslie, Puppet Labs’ first Operations Engineer, walks through building firewall resources with Puppet in his article, Data Driven Firewalls.
For a long time, I thought that all the talk of data driven was just for the big cloud providers or large enterprise, but data-driven infrastructure is just a mechanism to distill your configuration into reusable pieces – something we do with configuration management already. In Puppet, for example, modules are the resusable units.
When I think of a data-driven infrastructure, I think of constructing a model for how I want the systems involved to behave. Your model can include common data as well as unique data. All systems might have network settings like address and vlan, but, for example, only some have backup schedules.
Read more about Zach’s puppet-pf experiment.
Huge thanks to Jordan Sissel for putting the Sys in Advent. December wouldn’t be the same without it.