DevOps did not remove the need for system administrators

Back in the day of mainframes and the like, there was a need for a technician that did maintenance on the computers in question. Just like you have need for mechanics that do the maintenance and the fixing of your automobiles. This grew out into a full time position called system administrator or sysadmin. So then came the containerised era and the whole DevOps movement.

DevOps mentality

It is often called a mentality that you adopt when talking about DevOps, but is also a principle on how to divide the tasks within a development team/department. Before it was generally like the following, the developers wrote the software and supplied instructions or build artifacts to the sysadmins and they deployed and maintained it from then on. Meaning the server health, disk space and generally the infrastructure that was needed to run the application and dependent services like a Redis or database.

Now those tasks are also put on the developers in the form of DevOps, that means in essence, that developers are also sysadmins and sysadmins are also developers now. The key being here that sysadmin tasks bleed into developers as well.

Current state

Current state of affairs is usually that developers have no clue what it is like to maintain a system unless they happen to run a server as a hobby and try to be a sysadmin there. Sysadmins are still clogged with the sysadmin parts of DevOps like maintenance, monitoring and security aspects. So different title same tasks. The development part is mostly targeting scripting to clouds instead of servers. This resulted in tools like Terraform and Ansible and Puppet and Chef and the whole Infrastructure as Code idea.

You want to write the infrastructure in a way that makes it repeatable and consistent and up to date. However it is a snapshot you are creating. Just like running a distro and the first command you run is the package manager update and upgrade commands to get the delta from the snapshot until now.

It is a full time job

This maintenance and monitoring is a full time job. It never ends. Keeping docker images up to date because of new insights, new 0-day exploits, making sure the cloud services are using the bare minimum in terms of costs, making sure the deployment pipelines are optimised enough, that everyone has access to the bastion host, that only authorized personnel is allowed access and so on. Setting up networks, setting up firewalls, setting up redundancy, making sure the backups are there, making sure they can be restored without too much downtime, signalling preemptively to customers that something is afoot.

It is unfair to expect from developers to write software, test it and deploy it whilst also keeping everything running from an *Ops perspective. It is also unfair to expect sysadmins to maintain the whole system whilst also develop a feature in the code.

I think what DevOps created is a job where the sysadmin cannot say anymore “it is not within my domain, so I won't help you.” It did create a bridge by putting them all in the same boat. So now sysadmins are responsible for it. However we should not underestimate the scope of the task that is maintaining any sort of IT infrastructure.

#devlife #devops