The world of technologies is constantly developing bringing new opportunities and challenges as well. Popular software becomes more complex and sophisticated that results in a more complicated process of its creation and maintenance. Of course, it requires the help of competent IT professionals that appeared relatively recently — DevOps engineers and Site Reliability Engineers. There are a lot of disputes regarding the roles of these 2 types of the specialists. Someone insists that it is completely different, someone states the opposite. Well, let’s get to the bottom of this.
I offer to start with definitions in order to be on the same page.
Who is a DevOps engineer?
There is not some general definition of this position. Judging from my experience it is an IT specialist with a wide competence area. DevOps is a set of practices that combines software development and IT operations. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. You will, probably, think that it’s the same that system administrators do. Not exactly. They do it in a basic manner, but DevOps it is something about going at the heart of it. DevOps engineers provide automation of all stages of the software development life cycle. In other words when you say: “I need DevOps engineer” it means that you need an IT-professional who will focus on organizing effective interaction between programmers, QA specialists and tech support.
This specialist is usually responsible for:
- Deployment scenarios optimization means independent improving of software development and deployment scenarios. This helps to guarantee continuous workflow for the whole team.
- End-to-end testing means ensuring test solutions at every development stage (not just when it finishes)
- Organization of communication between the experts involved.
Who is a SRE engineer?
It is an IT specialist who is responsible for smooth software performance in spite of everything that can happen be it damages, issues, problems and other. Once I read a funny, but quite a fair comparison of the SRE team with the fire team. This role is for specialists who seek a challenging in-demand role. According to Wikipedia, if we divide equally working time of SRE, 50% will take operational tasks such as trouble-shooting, issues solving upon a request and manual operations. The other 50% of time will be taken by the development of new features, automation of processes. Ideally such specialists should have both good software administration skills and fulfill system administrator roles. SREs are closely working with the developers team and release engineers.
According to Google statement these 2 IT-professions don’t have much difference between each other. They are not competitors, they are more assistants to each other that are created to remove organizational blocks in the development process. DevOps is equal to What should be done, while SRE is responsible for How it should be done.
To summarize all mentioned above, I would say that such specialists should be highly qualified and it is really a challenge to find good ones. However, it is not a waste of time to look for the right specialist as your project will only benefit from it.