Many years ago, while developers were only working on their code, system administrators were only managing the network equipment, racks, servers, and workstations in companies and organizations. Such a job would need special knowledge and expertise in hardware, networking protocol, etc. Therefore, system administrators were not involved at all in any parts of software development, instead, they were responsible to set up the servers and a secure network connection. Now, everything has changed, and those racks, workstations, and complicated networks become virtual. You can create a complicated infrastructure in a matter of a couple of minutes with fewer configurations from your laptop at home. These changes were only at the technology level and they brought new roles to the IT world like DevOps engineer, cloud engineer, or platform engineer. That’s why these days companies are looking for DevOps engineers and this role became a high demanded role in the market. While a system administrator role looks similar to a DevOps role, there are still differences. In this article, I’m going to explain the differences between the System Administrator role and the DevOps role.
What is DevOps?
Before I get to a comparison between these two roles, I would like to give a brief description of what DevOps is in general. DevOps is a set of practices that helps the software team to bring value to their organizations. DevOps at the high level is the whole end-to-end solution from the moment you write a piece of code until the time you bring that code to the production infrastructure and keep looking at that until the last moment that code is running. So, this is a combination of various activities that looks complicated, but DevOps came out of complexities to make things easier and faster. You need to understand DevOps at a high level to be able to see the differences between this role and others.
System Administrator and DevOps
A system administrator or sysadmin is a person who has extensive knowledge about OS, computer hardware, networking protocols, network devices like routers, and firewalls, etc. These skills are needed for a DevOps engineer at a certain level, but it is not enough. What you are missing as a Sysadmin is a lack of knowledge about the software development life cycle and all activities around that like CI/CD pipeline, test automation, and monitoring, etc. When we talk about DevOps, many immediately say automation which is true. One of the advantages of having DevOps is to automate the software development processes. However, this is not as easy as it looks. Having scripting knowledge is one skill you need but you also need to have an automation mindset and be familiar with its components to be able to automate the process properly and to support the business growth.
DevOps means release faster for develoepr
Another aspect of DevOps is to create a flow for developers to be able to deliver frequent releases. This helps businesses to respond to the market quicker, improve much faster, and therefore higher quality of the code. In order to achieve this, a DevOps engineer needs to establish continuous integration and continuous deployment. She/he has to train developers to get used to this flow and be part of that. To do so a DevOps engineer should have knowledge about the tech stack, programming languages and tools are being used in a company to be able to design and implement the proper CI/CD pipeline.
DevOps is one role but needs varieties of knowledge
The bottom line is every role is defined for certain activities and based on the definition we have for DevOps and activities around it, a system administrator is definitely are missing some skills and knowledge to do a DevOps job properly. So an ideal DevOps engineer has a combination of software engineering skills and system administrator skills. This means a system administrator still has a high chance to become a DevOps engineer if she/he fills the knowledge gap.