DevOps Skills: What Recruiters Should Look for in Their Next Hire
Crucial DevOps Skills for Candidates:
- Configuration management
- Build software
- Monitoring tools
Database administrators specialize in databases, web developers specializing in web development, but DevOps engineers? They need the adaptability and know-how to work across many different pieces of software, applications, and environments — from scripting in multiple coding languages to build and release management. Essentially, they need to be an army of one. That’s why successful DevOps recruitment is in large part a matter of understanding DevOps skills.
The ability to automate and configure deployments and product releases are an essential part of the DevOps engineer role. This is known as configuration management. There are a number of well-known products that can actually do this, including Chef, Puppet, Ansible, and Terraform.
Many of these have a command line interface and a graphical user interface, but the command line interface is the essential piece to know. A command line interface means that code is written via the terminal or from just the command line. A graphical user interface indicates an application that can be utilized with graphics, making it easier to automate at a much larger scale.
Both of these are essential for anything that’s enterprise level. Programs such as, Chef, Puppet, and Ansible have both which makes them equipped for enterprise-level use. Terraform is a newer product that’s incredibly powerful, but is command-line heavy. With Terraform, there’s scripting and template files, plus DevOps engineers must pass files that have actual value in the program to populate the system. These are very complex and it’s essential that a DevOps engineer have a good understanding of them.
The ability to script is an essential DevOps skill. Scripting is extremely open and flexible — and it’s something you build on your own by choosing a language and creating your own packages and programs from it. A majority of the programs, platforms, and environments will be most accessible via the command line, and DevOps engineers need to be comfortable working within the command line.
The most common languages that a DevOps engineer should know are Shell, Bash and Korn for Unix, Powershell for Windows, and Python, which has become a very popular language for anyone in the field. There’s also Perl, which is a very common, very powerful database language used to create libraries that form the foundations of many applications.
Software repositories are a cornerstone to release management. Knowing and tracking what’s being released at any given time is what they do best. These programs are designed to execute version control on any piece of code that’s written or updated, tracking any changes to any application. Some popular options are Git, Github, and Subversion.
Proper notifications and alerts are essential to being proactive and responding to issues and outages. This is where monitoring tools come in. The most popular products in the DevOps field are AppDynamics, Nagios, and New Relic. If someone were to be monitoring logs, they would turn to a product like Splunk.
To get the kind of information that’s in monitoring databases, a DevOps engineer would use enterprise manager for Oracle, MS Studio, or other products that are able to help in a multi-environment, multi-tier system. Since DevOps engineers are responsible for so many multi-tier systems, infrastructure tools like these are extremely valuable for monitoring and management.
Now You Know What to Look For
Since DevOps skills need to span a variety of programs, applications, and coding languages, recruiting can be a little trickier than hiring for other engineering positions. By having a solid understanding of these tools, you’ll put yourself in a much better spot as a recruiter to bring in the right person at the right position.
Looking for more on how to make the right hire? Check out our comprehensive DevOps recruitment class taught by senior IT industry specialist Kellyn Pot’vin-Gorman.