DevOps is all about agility, automation, and the free flow of information. When implementing DevOps, servers are often handled as interchangeable parts, which is why system administrators, who made their careers configuring and troubleshooting individual servers, have a significant role to play in the brave new world that is DevOps. However, they must find a way to apply their skills to the entire IT infrastructure that is described and managed by code i.e. managing cloud services, using automated deployment tools and code repositories.
The debugging skills that a system administrator possesses are still very much relevant in DevOps, however, what changes are the scale and complexity. Also, they need to be able to take a properly tuned server and transform it into code, which something they can already do, but they would need to take this one step further and lay down those changes in a consistent and repeatable way for future deployments.
In addition to the above-mentioned skills, system administrators must learn to focus on the infrastructure they can control, usually from the operating system and up, because in the cloud, they most likely will not have access to, or information about any underlying hardware, networks, or storage.
For example, at the operating system level, you can see whether or not you have an inefficient process that is eating up too much system memory. But, you are not able to do some of the fine tuning that you are used to doing in a Linux container in a private cloud.
Sysadmins' Tribal Knowledge
In DevOps, if you see that your system is failing or is experiencing performance problems, it is often removed and replaced with a healthy one, instead of going through all of the hassles of debugging it. If that same system image runs perfectly when redeployed, the issue may have been with the cloud hardware or a corrupt system image. However, if the same problem persists, the server is then brought back up and the root cause analysis process is initiated.
An area where system administrators will not see a whole lot of changes is supporting legacy applications that are either too expensive or too difficult to move to the cloud. This means that they still require individual configuration and troubleshooting. Also, we must keep in mind that these legacy systems will require hands-on experience in the future, thus generating demand for veteran system administrators. This tribal knowledge around legacy systems is very difficult to replace.
In addition to this in-depth knowledge, the services of system administrators will be required when new servers need configuration, new tasks to be automated, and unexpected problems resolved.
New Technical Skills Sysadmins Will Need
In order to use their configuration, debugging and monitoring skills in DevOps, system administrators will need to supplement the skills they already have and learn new tools such as:
Languages - Most system administrators already use shell scripts to automate redundant or error-prone tasks, which is a key aspect of DevOps. But learning a new programming language such as Python or Perl can help them create more robust scripts more quickly.
Cloud Services - Because most DevOps systems run in the cloud, being able to transition from managing interfaces to Infrastructure as a Service (IaaS) offerings such as Amazon Web Services (AWS) or Microsoft Azure is a valuable skill. Anyone with basic shell scripting skills can easily pick them up.
Configurations Management - Knowing configuration management tools like Puppet or Chef will assist system administrators in automating the massive quantities of system provisioning that is vital to DevOps. By understanding the languages on which these tools are built, such as Ruby, can make it easier to extend their use to fit an organization's particular need.
Miscellaneous Tools - Inventory management tools such as PuppetDB will help system administrators identify the tools they need to manage in a fast-paced cloud environment. For performance monitoring, Prometheus and Amazon CloudWatch are excellent tools. Combined with a cloud service, it is possible to create systems of metrics to understand how your infrastructure is performing.
The next step would be to combine build management tools like Gradle and Maven, with continuous integration platforms like Jenkins. This enables system administrators to provide the agility promised by DevOps.
Adjustment in Mentality
Along with the list of technology and product skills, system administrators need to evolve from being experts on one vendor’s product to working as generalists and collaborating with others to resolve problems. In DevOps, system administrators must share their knowledge instead of hoarding it as a means of preserving their jobs. For example, software engineers would write the Chef configuration and policy cookbooks while the infrastructure engineers assist software engineers instrument code for better monitoring and health checks.
The days of developers creating applications without much knowledge regarding the infrastructure on which they will be running are long gone. Nowadays, the value of the system administrator is not what they can do, but rather how they can help others and how can they help align this with the company’s goals and objectives.
For this reason, system administrators that are capable of taking the leap to DevOps, will not become obsolete. It can provide them with superpowers that can make their skills even more valuable to a business.