If you are interested in working with hosting, you have already heard System, SRE, DevOps, Cloud, and Platform Engineer terms. From time to time hiring departments need to be made aware of the difference between those terms to define better job advertisements. You wonder what is the difference between them, when and where we should choose which work discipline?
Since servers are up and running, a person is always required to maintain resources. When the internet started to grow, requests could not fit single server systems, and the hired count of people who are responsible for those machines increased parallelly by the machine counts.
What is a System Administrator?
The System admin is responsible for the reliability, keeping the host updated, deployments of the software, and hosting application configurations (such as Nginx, Apache, MySQL) of the servers.
Regular system administrators are responsible for hardware to deployment steps but this changed with the help of orchestration software and virtualization systems. Now they have a bigger scale and more physical resources compared to the past. This involves more specialized areas, so instead of each part of the hosting systems, they will be responsible for up to the virtualization layer. So because of changes that lead to more architectural design and coding, they can be called System Engineers. This type of job is mostly required at on-prem servers and their customers will be DevOps or part of Platform Engineer teams.
What is a DevOps?
Linux namespaces are not a new technology, they have been placed since 2002 at the Linux kernel. One of the container technologies LXC has been available since 2006. Widen usage of containerization has increased with the adoption of the Docker by developers and system administrators. With the release of Kubernetes, small and medium-sized businesses also started to use orchestration systems.
Those have revolutionized small businesses and startups and led to more frequent system deployment and responsibility for many hosted backend applications.
This frequency requires the quick and continuous deployment and Development Operations (DevOps) is born to meet those requirements. So instead of deploying software manually, DevOps teams prepare pipeline maintenance to keep continuity.
What is a Platform Engineer?
DevOps takes responsibility for the deployment and cloud resource management. When your company’s tech department increases with your business decisions you will have more tribes and teams at your tech department which means you require more Development Operations than before. So after some scale, this is a repetitive job because you need many people for the same type of workload.
To reduce repetition development operations, your developers need to handle their infrastructure themselves. Platform engineering uses the Platform as a Product mindset to enable infrastructure resources to the developers.
When should we choose which approach?
The business goals, tech department knowledge, and the company’s current and feature growth plans will help to decide about roles. If your business does not plan to have new verticals, or the tech department will keep the size, you can choose DevOps because developing Platform Engineering tooling also requires additional planning and time to have infrastructure products. On the other hand, if your business has or plans to have new verticals with new teams, Platform Engineering will speed up bootstrap of the each project and reduce the requirements of the ops engineer at the next steps in your processes.