ENES

Site reliability engineering

Running production systems with software engineering, and a budget for failure.

A gauge showing an error budget partly spent, between a lever for shipping new features and a lever for reliability work

Site reliability engineering, or SRE, is a way of keeping online services reliable by treating operations as a software problem. It began at Google in 2003, when Ben Treynor Sloss was asked to run a production team made of software engineers. Instead of fixing servers by hand, SREs write code that deploys, scales, monitors and repairs systems, and they aim to automate away repetitive manual work, which they call toil.

Its best-known idea is the error budget. The team agrees on an SLO, a reliability target such as "99.9% of requests succeed each month". The remaining 0.1% is the budget: room for failures. While there is budget left, developers ship new features fast. If incidents eat it up, releases slow down and effort shifts to reliability. This turns the old fight between "move fast" and "don't break things" into a number both sides accept.

SREs also share on-call duty, lead the response when something breaks, and write blameless postmortems afterward. Many companies now have SRE teams, and the term is also used as a job title. It overlaps a lot with DevOps; one common way to put it is that SRE is a specific, measurable way of doing DevOps.

Keep in mind

Go deeper

Related terms

More in Cloud