From Developer to Devops: What System Administration Skills Should You Know?
With the rising trend of devops movement, I was curious about the system administration from a software developer’s perspective. That’s why I sat through Adam Moskowitz’s session “The Path to Senior Sysadmin.” Adam summarized the system administrator’s skills to three categories: hard tech skills, squishy tech sill, and software skills as detailed in following. Again, this is based on my note taken from LISA 2010 conference. For other posts related to the conference, check here.
Hard Tech Skills
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
- All the commands for system administration;
- System backup;
- Some programming skills like Shell scripting, Perl/Python, C (read);
- Software engineering knowledge like versioning, process;
- Networking knowledge like TCP/IP, routing, switching, application protocols, load balance, protocol analysis;
- OS Kernel. This is an optional but highly valuable skill that greatly helps performance tuning and optimization;
- Commonly used operating systems and applications, e.g. email server/client, on both usage and configuration
Squishy Tech Skills
- Project analysis/planning/budgeting;
- Process especially in regulated environments;
- Standards/specifications, not necessarily all the details, but their existence and who the experts are;
- Business so that you can understand the purposes, business reasons and compliance requirements for some administrative works. For example, if you know some data is easily re-generable, you don’t need to back it up normally;
- Know outside resources and network with other professional. Attending LISA conference is a good way;
- Learn adjacent areas like database administration, etc;
- Know when to ask for help;
- Attitude: being helpful and friendly, and get things done;
- Attitude: know how to talk to managers;
- Attitude: respect others in company; help people, not complain;
- Supporting roles;
- Presentation and speaking;
- Mentor others
I think these skills especially the soft skills and squish tech skills are highly transferrable. If you are already a good developer, you have probably had these skills. To be a devops, you don’t necessarily have all the hard tech skills. But knowing them is definitely a big plus. For one thing, you may find it’s much easier to communicate with system administrators.
More details can be found from Adam’s presentation slides at here.