SRE vs DevOps
The experts who coined both these terms describe SRE and DevOps as — “Class SRE implements DevOps”.
A few key objectives for a DevOps would be to
- Reduce organization silos
- Accept failures as normal
- Implement smaller incremental changes to a system
- Leverage tooling and automation
- Measure everything
SRE would also look at these same objectives but the perspective differs, it would be more user-centric and revolve around service level objectives (SLOs).
“Reduce organization silos” — SRE would strive to make sure that everyone has the same view and approach to working on the system given any environment -dev, stage or prod.
“Accept failures as normal” — SRE takes blameless postmortems very seriously. Errors are normal, but keep a tight check on them with the help of assigned error budgets.
“Implement smaller incremental changes to a system” — With larger updates to the system comes the risk of multiple failures. Alternatively, smaller incremental updates make testing and mitigating the failures a lot easier. SRE will advocate smaller and incremental changes too!
“Leverage tooling and automation” — SRE measures the toil, and busts them with automation and tooling.
“Measure everything” — Measuring different parameters of the system is critical. SRE uses pretty much the same monitoring tools as DevOps to deduce SLOs, SLIs and error budgets.