Lessons from the CircleCI Security Incident
What SREs can learn from the CircleCI security incident of January 2023.
September 19, 2021
4 min read
SRE and DevOps are closely related concepts, and many businesses can benefit from embracing both of them. Nonetheless, there are important distinctions between SRE and DevOps.
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.
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.
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:
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.
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.
{{subscribe-form}}