DevOps and SRE (site reliability engineering) are confusingly similar. They share many of the same goals and methods. But they’re by no means the same practice.
But first off, what is SRE?
SRE is a software engineering approach to operations, which seeks to strike a balance between getting new features out fast and keeping deployments stable. SRE engineers frequently use tools and automation to solve problems and are always looking to measure outcomes. Sounds a lot like DevOps, right?
So, what’s the distinction?
To understand where they differ, you first need to understand the ways in which DevOps and SRE are the same.
Both have the ultimate goal of achieving shorter development cycles, that is, getting features out faster, and both utilise many of the same techniques in getting there. For example, both:
- Aim to reduce the number of organisational silos
- Promote the use of automation and monitoring tools heavily
- Prefer small, incremental changes
- Emphasise a collaborative approach (particularly between the dev and ops teams)
- Accept failure as normal
However, whereas DevOps is more of a philosophy that says these things ‘should’ be achieved, SRE is a practice with specific answers to the ‘how’ side of things.
More crucially, on the question of how the dev and ops team should be integrated - in some way THE fundamental question of DevOps - SRE offers a bold prescription.
As Drew Farnsworth, partner at Green Lane Design, put it, “I generally like to think of SRE as a system wherein development controls operations.”
So, SRE offers a specific, top-down approach, with dev responsible for software monitoring and operations, while DevOps is a more open framework, which may or may not end up with the decision to make dev more responsible for ops’ jobs.
What are the advantages and disadvantages SRE?
SRE is generally better at scaling software than DevOps. When adopting an SRE framework, teams adopt SLOs (service level objectives) measured with SLIs (service level indicators) and these all fall under an SLA (service level agreement) which will detail acceptable parameters for availability, among other metrics.
This clarity of purpose, along with having just one team in charge, allows for more accountability and clearer goals, which is useful when managing at scale.
However, SRE can foster less creative collaboration than DevOps. And it can be a harder sell to existing ops teams.
What are the advantages and disadvantages of DevOps?
Because DevOps is less set out - a series of objectives rather than a series of steps - it can lead to more creative solutions.
Also, organisationally, DevOps can be easier to implement - bringing together two existing teams rather than creating a whole new SRE team.
However, lacking the detailed objectives of SRE, DevOps can lead to complacency. The necessary idea of ‘accepting failure as normal’ not counterweighted by a firm SLA.
So, which should you choose? Are they two sides of the same coin?
The good news is you don’t have to. As you can see from the above, DevOps and SRE bleed into one another, and overlap in many areas. It might be that one particular deployment is more suited to an SRE approach whereas DevOps is used to generate creative solutions to more permanent issues - which may or may not incorporate elements of SRE.
When you get right down to it, they’re almost two sides of the same coin, but it would be truer to say that SRE is one answer to the question posed by DevOps - though it’s not the only one.
The best approach is to balance SRE and DevOps on a case by case basis, taking the best of both worlds.
Author: Ned Hallett
Ned Hallett is the content specialist at Just After Midnight, where his job is to find the most interesting trends and stories from the ever-changing world of tech.