What programmer things should every sysadmin know in 2012?

Tue 24 July 2012

The following is an update to a post originally made to ServerFault in 2009.

System administration is more than clicking Next, cutting your fingers on cagenuts, and 3am pager alerts. Sysadmins can borrow many of the same skills and tools that programmers use daily to make themselves more productive, and build a deeper understanding of the systems they manage. The following five skills are perhaps the most obvious overlaps between our two roles:

Version Control. Be able to generate, read and apply patches. In 2012, it's vital that your version control system present a repo wide version history. You should be able to write descriptive changelogs and why you want them. Whatever your technology (I recommend git by default), know how to search the repository's logs for keywords and time frames.

Scripting. Do something once and be on your way. Do it twice or more, do it once then write a script. To paraphrase Tom Limoncelli, if you're not using Powershell or bash, you're working too hard.

Debugging. Know how to read a stack trace and how to report relevant errors to your software support contact. Documenting the error is easy and helpful, but knowing how to fix it takes a lot of investment in reading a specific code base. Do the part that's easy for you, and let the devs handle the part that's easy for them.

Testing. Repurpose integration tests for continuous integration testing. Used in conjunction with version control and testing, you have a strong idea of what may have gone wrong when and what changed at that time.

Peer Review. Keep your system configuration in revision control, and turn on commit mail. Change is core to system administration, not just an agenda item at the weekly staff meeting. Do not let Change Management degrade into political battles or displays of bureaucratic power.

Study Cryptography. System administrators are charge of networked resources; baking in security as a final step is somewhere between impossible and a very expensive proposition. Given how much of the sysadmin role involves acting as a trusted third party, understanding public key cryptography, password handling practices, entropy and encryption in general are valuable skills in debugging, performance tuning and setting policy.

Comments !