One of the most important differences between the way most organizations approach software delivery and management today, and the way they handled it until circa 2010, is that application development and application management roles have blurred together. Whereas in the past developers and IT operations teams rarely worked closely with each other, collaboration between these two types of roles is commonplace today.
Yet the way that organizations achieve that collaboration can vary. Some focus on DevOps, a philosophy that encourages close coordination between developers and IT operations teams. Others leverage Site Reliability Engineering, or SRE, which also blends software development and IT operations roles together in some respects, but not quite in the same way as DevOps. And some organizations use both practices -- SRE and DevOps -- at once.
How are DevOps and SRE similar and different? Why would a business choose to embrace one practice or the other? Should you use both DevOps and SRE at the same time? Keep reading for insights into these questions as we unpack the complex relationship between DevOps and SRE.
What are SRE and DevOps?
Site Reliability Engineering, or SRE, is a strategy that uses principles rooted in software engineering to make systems as reliable as possible. In this respect, SRE, which was made popular by Google starting in the mid-2000s, facilitates a shared mindset and shared tooling between software development and IT operations. Instead of writing software using one set of strategies and tools, then managing it using an entirely different set, SRE helps to integrate each practice together by orienting both around concepts rooted in software engineering.
Meanwhile, DevOps is a philosophy that, at its core, encourages developers and IT operations teams to work closely together. The driving idea behind DevOps is that when developers have visibility into the problems IT operations teams experience in production, and IT operations teams have visibility into what developers are building as they push new application releases down the development pipeline, the end result is greater efficiency and fewer problems for everyone. The DevOps concept also originated in the 2000s, and has grown in popularity since then.
What are the differences between SRE and DevOps?
The key similarity between SRE and DevOps is that both help to bridge the gap that has traditionally separated development teams from IT operations teams. By extension, they help organizations as a whole to work more efficiently and deliver better end-user experiences.
However, when you dive into the details, a number of distinctions between SRE and DevOps become clear:
- Relationship to development: SRE explicitly draws on and prioritizes principles familiar to software engineers -- such as the use of code to configure and manage systems -- and extends them into IT operations work. In contrast, DevOps doesn’t typically give special consideration to development or IT operations. It encourages collaboration between both roles without prescribing specific practices for achieving it.
- Focus on reliability: The core goal of SRE is to optimize the reliability and performance of systems. Reliability may be one outcome of a healthy DevOps practice, but it’s not the key focus in the way it is for SRE.
- Processes: DevOps draws heavily on processes known as Continuous Integration/Continuous Delivery, or CI/CD, to manage the way teams create and deploy software. SRE doesn’t make specific prescriptions about which processes teams should use to manage reliability.
- Career paths: Although SRE and DevOps require similar skill sets, the career paths -- not to mention the salary ranges -- associated with each practice are somewhat different.
Why do you hear more about DevOps than SRE?
In general, it’s common to hear people talk about DevOps more often than SRE today. Although you could debate the reasons why, there are probably two main factors at play.
First, SRE is a concept closely associated with Google, where the SRE role originated. In contrast, DevOps isn’t tied to any one company or organization. That makes DevOps a somewhat less “political” concept, so to speak. Companies that compete with Google can more easily embrace DevOps than SRE.
To be clear, this doesn’t mean that people who practice SRE are necessarily working for Google or its partners. Any company can use SRE. However, from a marketing and messaging perspective, there is a certain association between SRE and particular companies that doesn’t exist for DevOps.
The second reason why DevOps tends to be more popular than SRE is that the “DevOps” is sometimes used as a stand-in to refer to any type of modern software development or management operation. Although DevOps does have a specific definition that focuses on collaboration between developers and IT operations, you’ll find tools or products out there that don’t specifically address this collaboration, yet are nonetheless labeled “DevOps.” This is why some critics claim that DevOps is over-used, or that “DevOps means everything and nothing.”
So far, SRE hasn’t been subject to the same type of wide-ranging usage. The term is tightly associated with specific practices.
Conclusion: Using SRE and DevOps together
While there are clear differences between SRE and DevOps, many organizations today can benefit from embracing both concepts. SRE is useful for optimizing reliability in particular, while DevOps helps to optimize software delivery and management in general. It’s possible to have both SRE and DevOps teams within the same organization, each focused on a different, but related, set of objectives.