If you are wondering what the differences between the SRE and DevOps are, as well as how these roles work with ITOps within an organisation then you are not alone; and best of all you are on the right blog post.
Often enough business units in a company get confused, assigning the ServiceNow or Jira tickets or any other ticketing system of your preference, to the wrong group, and even having the incorrect expectations when doing resourcing. Let us go through definitions, insights and scenarios that will help you understand the difference.
DevOps software development operations - AI Generated |
When it comes to DevOps and SRE, then you might be wondering which practice came first. While SRE may have originated a bit earlier, internally at Google, DevOps came first publicly as a practice and started to be used by companies. A few years later was when Google decided to open SRE to the world after the publication of the "Site Reliability Engineering" book. Therefore, technically speaking, DevOps was first.
SRE and DevOps timeline by Beolle |
What is DevOps?
In 2009 the DevOps concept emerged. Its goal was/is to improve collaboration and accelerate software development and its delivery.
DevOps stands for Development and Operations, with its focus on the end-to-end application life-cycle. In its approach it leverages collaboration, automation and integration for the delivery of solutions.
Agility is one of the key aspects. DevOps helps break down silos and provides a continuous delivery pipeline, contributing with velocity without compromising reliability.
DevOps cycle |
What is SRE?
Site Reliability Engineering started internally at Google in 2003, and later it was shared with the rest of the world in 2016, focusing on using software engineering principles, ensuring that systems are reliable and scalable.
SRE automates IT operations tasks and accelerates software delivery. Mitigating the IT risks is key, with key metrics around it such as percentage (%) of risk mitigated, number of risks identified, incidents resolution time, mean time to recover (MTTR), etc.
SRE - Reliability, Efficiencies, performance. Image by Beolle |
What is ITOps?
In charge of managing and deploying IT resources within a business, like:
- Infrastructure.
- This includes making sure that IT systems are running efficiently and cost-effectively.
- ITSM. IT Service Management.
- Incidents and security management.
No “Ors”, just “Ands”
These 3 disciplines have things in common, as well as key differences. It is my experience that the majority of the time they compliment and support each other, making the business efficient if you are able to establish proper roles and responsibilities, having defined processes and ceremonies that keeps the execution in sync, in a multidisciplinary fashion. You can prevent (not always, but with a high percentage of success) collisions between the groups leveraging elements such as on-boarding techniques, shared documentation and proper intakes procedures.
In addition, using a consistent framework/methodology, that all three (3) disciplines are trained on, also helps.
What do I mean by this?
Well, the traditional ITOps usually leverages ITIL (Information Technology Information Library) for resolving tickets related to incidents, change management, etc. They see agile as a methodology for the other disciplines mentioned in this article.
IT teams are task driven and usually led by Project Managers, and the concept of product owner is non-existent. Therefore, the way I see it, SRE is in the middle. It has elements that align well with one side, and with the other. Parting from that premise, then how do we get DevOps aligned with ITOps with less friction? Aside from the guardrails and RACI, coaching ITOps to understand and adopt certain areas of agility will help to facilitate that collaboration. By the same token, having DevOps and SRE understanding areas of ITIL will allow them to follow (and appreciate) some of the processes that support the “good bureaucracy” implemented by the IT services that the organization relies on.
Here are a couple of distinctions between them:
- DevOps manages the End-to-End application cycle, leveraging agility and automation. The Ops and development collaboration contributes to team empowerment and finding alignment to the business objectives. SRE will take care of the tools and methods used during the product life cycle, making sure applications are running smoothly, they are reliable, sustainable and scalable.
- SRE will work with Developers and QA engineers getting the coming upgrades and updates to the production environment, and to fix reliability issues before the push. While ITOps cares about reliability, they also will be focusing on Infrastructure management and cost, among other areas. To bring some colour here, let us say your SRE team would like to help prevent 500 errors on your website. The team will be looking into an APM (Application Performance Monitoring) such as New Relic or DataDog to provide real-time monitoring and alerting. This allows for early performance issues detection before it leads to significant errors that raise the risk of your web application.
A final note around the APM scenario above:
Ok, I know what you are thinking. You might be saying something like "APM is something that the DevOps team in my organisation uses". So, what is the difference here between them and SRE?
This is what I was getting at with no “Ors” just “Ands”. There are different circumstances and conditions which can spin a variety of answers here. Let's say we have this scenario where a well established and large enterprise has an org structure that clearly has a DevOps and a SRE teams defined, supporting the business. How would the teams make use of the APM tool, making sure everything is running as expected?
- DevOps. They will use APM to monitor the application performance, identifying potential enhancements. While doing so, they can share the data with the developers, working collaboratively on the application’s improvements.
- SRE. They will use the APM for monitoring the system performance and its availability. In that effort they will configure APM for automated notifications related to issues. This reduces the response time.