Site reliability engineering

From Wikipedia, the free encyclopedia
  (Redirected from Site Reliability Engineering)
Jump to navigation Jump to search

Site reliability engineering (SRE) is a discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems.[1] The main goals are to create scalable and highly reliable software systems. According to Ben Treynor, founder of Google's Site Reliability Team, SRE is "what happens when a software engineer is tasked with what used to be called operations."[2]


A site reliability engineer (SRE) will spend up to 50% of their time doing "ops" related work such as handling issues, spending time on-call, and manual intervention. Since the software system that an SRE oversees is expected to be highly automatic and self-healing, the SRE should spend the other 50% of their time on development tasks such as adding new features, such as for scaling or automation. A site reliability engineer is usually either a software engineer with a good administration background or a skilled system administrator with knowledge of coding and automation.[3]

DevOps vs SRE[edit]

Coined around 2008, DevOps is a philosophy of cross-team empathy and business alignment. It's also been associated with a practice that encompasses automation of manual tasks, continuous integration and continuous delivery. SRE and DevOps share the same foundational principles. SRE is viewed by many (as cited in the Google SRE book) as a "specific implementation of DevOps with some idiosyncratic extensions". SREs, being developers themselves, will naturally bring solutions that help remove the barriers between development teams and operations teams.

DevOps defines five key pillars of success:

  1. Reduce organizational silos
  2. Accept failure as normal
  3. Implement gradual changes
  4. Leverage tooling and automation
  5. Measure everything

SRE satisfies the DevOps pillars as follows:[4]

  1. Reduce organizational silos
    • SRE shares ownership with developers to create shared responsibility[5]
    • SREs use the same tools that developers use, and vice versa
  2. Accept failure as normal
  3. Implement gradual changes
    • SRE encourages developers and product owners to move quickly by reducing the cost of failure[6]
  4. Leverage tooling and automation
    • SREs have a charter to automate manual tasks (called "toil") away[9]
  5. Measure everything
    • SRE defines prescriptive ways to measure values[10]
    • SRE fundamentally believes that systems operation is a software problem

See also[edit]


  1. ^ What Does a Reliability Engineer Do?
  2. ^ Are SRE the next data scientists?, TechCrunch, Mar 2, 2016, Donald Fischer
  3. ^ Jones, Chris; Underwood, Todd; Nukala, Shylaja (June 2015). "Hiring Site Reliability Engineers" (PDF). login. Vol. 40 no. 3. pp. 35–39.
  4. ^ Google Cloud Platform (1 March 2018). "What's the Difference Between DevOps and SRE? (class SRE implements DevOps)". pp. 35–39 – via YouTube.
  5. ^ "Google - Site Reliability Engineering".
  6. ^ a b "Google - Site Reliability Engineering".
  7. ^ "Google - Site Reliability Engineering".
  8. ^ "Google - Site Reliability Engineering".
  9. ^ "Google - Site Reliability Engineering".
  10. ^ "Google - Site Reliability Engineering".

Further reading[edit]