What is the difference between SRE and DevOps?

8,531

Solution 1

DevOps is about maintaining code, is that correct?

DevOps is not "just" about code, or systems, or any one thing. DevOps is a very general term that covers all things related to software delivery.

Site Reliability Engineering is a term popularized by Google. From this article https://landing.google.com/sre/interview/ben-treynor.html we can distill their TL;DR:

Fundamentally, it’s what happens when you ask a software engineer to design an operations function.

Operations, Engineering, and Software Development are blurring together. The degree of automation required to create and maintain a mature infrastructure requires skills from all three. SREs are admins, and engineers, and developers.

See also: http://shop.oreilly.com/product/0636920041528.do

Solution 2

Dave Swersky already posted an excellent response above with Ben Treynor's definition of SRE, which is as poignant today as it was in 2003.

Fundamentally, it’s what happens when you ask a software engineer to design an operations function.

So, in an attempt to further define "DevOps", here's an excerpt from the book Effective DevOps by Jennifer Davis & Katherine Daniels:

Devops is a way of thinking and a way of working. It is a framework for sharing stories and developing empathy... [it's] is not just another software development methodology.

[P]ractices can include software development methods, or features like infrastructure automation and continuous delivery, [although] it is much more than just the sum of these parts.

While these concepts are related and may be frequently seen in devops environments, focusing solely on them misses the bigger picture--the cultural and interpersonal aspects that give devops its power.

In summary: an effective SRE will leverage DevOps practices.

--

Also:

How do I know which group is responsible for what?

Ownership should not be implicit; communicate!

Solution 3

Site Reliability Engineering falls under more or less traditional operations, but heavily automated and version controlled, what is also called Infrastructure as Code. It is a well defined vertical role. In modern DevOps this is the vertical slice that relates to Operations. You can have a team of SRE.

DevOps as such is a cultural change for an organization. In addition to the vertical, top down, management structure, it creates a horizontal connection between the teams along the delivery paths of work throughout the value chains. For an engineer it is a loosely defined horizontal role binding several teams together, ensuring that work passes smoothly and quickly throughout the organization. You cannot have a team of DevOps engineers, that is an oxymoron, as spanning the team boundaries is a crucial part of the role.

Solution 4

Another way to describe differences between Site Reliability Engineering and DevOps is to look at Wikipedia's explanation of a Site Reliability Engineer, which starts like so:

Site reliability engineer (SRE) is a job description given to software engineers focused on reliability, scalability, and the development of cloud computing infrastructure, known as Site Reliability Engineering (SRE).

So you may consider SREs as people involved in Building walls ...

However, Wikipedia's explanation of DevOps starts like so:

DevOps ... is a term used to refer to a set of practices that emphasize the collaboration and communication of both software developers and information technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.

What it doesn't say is that all these DevOps practices are actually triggered by a Demand from the business side. So combined with building and testing (the Develop part of it) and the Release of software, DevOps is about a DDR (= Demand-Develop-Release) culture and environment, which some people may remember from these 9 seconds of a historical speach to Tear down this wall.

Refer to the question about Brief outage planned for Wed, May 3, 2017 at 8pm US/Eastern (like a fire drill for computers) for an example about all SE sites ... posted (signed) by a user with job title SRE Manager, Stack Overflow, Inc.

Share:
8,531

Related videos on Youtube

jcolebrand
Author by

jcolebrand

Updated on September 18, 2022

Comments

  • jcolebrand
    jcolebrand over 1 year

    What is the difference between SRE and DevOps?

    Site Reliability Engineering and Development Operations seem to overlap a lot in detail. How do I know which group is responsible for what, and how do I know what jobs would be appropriate for my skillset?

    It seems like SRE is about maintaining servers and network, and DevOps is about maintaining code, is that correct? Isn't there still a fair amount of overlap between those two?

    • chicks
      chicks about 7 years
      I think DevOps has been so abused as a term that it means anything or nothing at this point.
    • max
      max over 6 years
      A company I talked to had both an SRE and an DevOps team. They told me DevOps was used for creating new applications (0-6 months) and SRE was maintaining old applications. Both were developers that used automation, coded and released apps.
    • Kyle Steenkamp
      Kyle Steenkamp over 6 years
      I think Googles book on SRE would be a good read to understand what it is: landing.google.com/sre
  • Jiri Klouda
    Jiri Klouda about 7 years
    DevOps is not restricted simply to software, that is a misconception. It should tie all the way to product design, product requirements, documentation, etc. It is supposed to follow the entire value chain from a customer back to customer. Restricting the view leads to reduction in the impact and eventually to misunderstanding of the role as more sophisticated release engineer.
  • BlackVegetable
    BlackVegetable about 7 years
    I've yet to understand the distinction between DevOps Engineering and SRE work beyond that one is an acronym developed by Google and backed up by a pretty cool (free!) book.
  • Matt O.
    Matt O. over 6 years
    Site Reliability Engineer is an actual title and job description. It implies just what it says. A title that can imply DevOps on the software side is Platform Engineer, where you're building and automating a platform for developers to deploy on. Meanwhile a SRE is the person who is responsible for what used to be typical operations. These are a bit anecdotal but can probably help your understanding @BlackVegetable.
  • Dave Swersky
    Dave Swersky about 6 years
    There are a bunch of great YouTube videos from Seth Vargo and Liz Fong (Google them.) They make it clear: "class SRE implements DevOps." SRE is a concrete, formalized practice that follows many DevOps principles.
  • Xiong Chiamiov
    Xiong Chiamiov almost 6 years
    I don't follow the argument that SRE involves building walls. Where are you getting that from?
  • Xiong Chiamiov
    Xiong Chiamiov almost 6 years
    Also, Tom Limoncelli is known for a lot more than merely working at Stack Exchange.
  • sethvargo
    sethvargo over 5 years