Agility, automation, and a free flow of information are vital to DevOps.

And here are a few questions:

But how are system administrators connected to DevOps? Are their skills like environment setup, server configuration, and troubleshooting valuable if applied to DevOps?

The answer is positive.

(For instance, they can manage servers interchangeably in an agile and flexible manner.)

However, system administrators are not DevOps engineers, obviously.

DevOps is about the entire IT infrastructure, not certain elements that can be operated and handled independently, which system administrators are used to managing.

DevOps should be applied to all infrastructure elements that are described in and managed by code. For instance, DevOps engineers can use multiple automated deployment tools and code repositories to manage cloud services.

In this article, I will look into concrete skills that system administrators already have and explain how they can apply these skills to make a leap to DevOps.

Mass Debugging

Mass debugging, a methodical approach to detecting and fixing bugs in hardware and software, is very relevant to DevOps.

And yet, there is a difference between what SysAdmins and DevOps engineers are expected to do.

DevOps engineers handle tasks that are massive in scale and complexity. For instance, they should be able to manipulate a fine tuned server to transform it into code.

DevOps engineers think several steps ahead and ensure that the adjustments and changes they do allow to create a consistent, repeatable, and automated process for future deployments.

System administrators generally focus on the infrastructure they can control — from the OS and up.

On the contrary, DevOps engineers mostly work in the cloud where they cannot access all elements of and information about the infrastructure, hardware, networks, and storage.

For instance, at the operating system level, you can easily locate an inefficient process that is consuming too much system memory. Yet, you cannot fix it like you are used to in a Linux container in a private cloud.

In other words, as a DevOps engineer, you must think ahead, since debugging, given operation’s scale and complexity can easily turn into a hassle (see below).

SysAdmin’s Tribal Knowledge

In DevOps, if you detect that a system operates inefficiently, you should immediately replace it with a healthy system that works smoothly.

You do not spend hours debugging an inefficient system to make it work, but redeploy the same system image to check whether it runs or not. If everything is fine, the cloud hardware or a system’s corrupted image can be the culprit.

This means that persisting issues require a DevOps engineer to analyze the server to find the root cause of the error. This is basically what system administrators are generally responsible for.

Legacy applications also play a system administrators’ card. They are usually outdated and massive to be moved to the cloud. Additionally, should they be moved, the process would be overly expensive and very challenging.

In other words, legacy applications require individual configuration and troubleshooting, which increases demand for veteran system administrators. This tribal knowledge around legacy systems is difficult to replace, which allows system administrators to thrive.

The services of system administrators are also required to configure new servers, automate new tasks, and solve unexpected problems.

New Technical Skills SysAdmins Will Need

To fully utilize their configuration, debugging, and monitoring skills in DevOps, SysAdmins should build upon these skills and complement them with:

Programming Languages

DevOps as a service is all about automation.

All manual, repetitive, and redundant tasks should be automated to avoid human error, increase code quality, and improve the CI/CD pipeline to deliver innovation faster in a continuous manner.

Automation is a vital part of a SysAdmin’s job as well. They regularly use Shell scripts to minimize errors and improve operational quality as a whole. To stay competitive, however, they may consider mastering new programming languages like Perl or Python.

More languages mean more flexibility in creating robust scripts quickly and easily.

Cloud Services

Cloud is the present and the future of DevOps.

And fortunately, the cloud is not so challenging for system administrators to pick up. If you are good at basic Shell scripting, you will not have any issues mastering and manipulating multiple cloud services and tools.

Specifically, it makes sense to learn how to do transitioning; that is, how to move operations from interfaces to IaaS (e.g. AWS, Azure, Google Cloud, etc.).

Configuration Management

Mastering a range of configuration management tools also makes sense. If you have no idea what Puppet or Chef is, just take a look.

Knowing these tools is important because configuration management tools are essential to automating system provisioning. Though you can choose to work without tools, they are used for a reason — you will not be able to handle the required amount of tasks if automation is not in place.

Thus, check out Puppet, Chef, and other configuration management systems; learn the basics of their programming languages; and, try to solve concrete problems with them. This way you will be able to meet up to an employer’s expectations.

Miscellaneous Tools

Tools that DevOps engineers use and manipulate are many.

To figure out where to start, you can check out inventory management tools (e.g. PuppetDB) to keep up with an ever-changing cloud environment.

If you want to dig deeper into performance monitoring, learn the nuts and bolts of Prometheus and Amazon CloudWatch. Bridge any of them with a cloud service and you will get access to vital metrics about your app’s performance.

Moving forward, combine build management tools like Gradle and Maven with CI platforms like Jenkins. By doing so, you will achieve agility and flexibility, which are so important to a healthy DevOps environment.

Adjustment in Mentality

Technology and product skills are not all there is to make a leap from SysAdmin to DevOps.

DevOps is a movement, a culture of sorts, and DevOps engineers are expected to work as generalists who not only automate processes and handle tools, but also educate team members about principles, practices, and values of DevOps. They do not work independently, but rather collaborate with other team members to ensure high quality of the end product.

Thus, system administrators need to abandon their “loner” modus operandi and get used to working as an integral part of the team. They need to share their knowledge to benefit others, not hoard it to save their jobs.

Nowadays, developers create apps accounting for the infrastructure where they are going to run them. So the position of a system administrator quickly takes on a new meaning:  

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 alone, system administrators who are willing to and are capable of mastering DevOps principles and practices will not only preserve their jobs but earn more.

Not sure? Begin your DevOps journey now!