The truly Cloud Native way to work in teams, according to the Maturity Matrix, means SRE and DevOps. But what does that mean? You might be wondering, Isn’t SRE basically just DevOps?
Let’s start by defining the differences and similarities between SRE and DevOps.
SRE, or Site Reliability Engineering, is a discipline that focuses on reliability. DevOps is a cultural movement that emerged from the urge to break down the previously mentioned silos of Development and Operations. SRE is a job title. DevOps isn't.
Both DevOps and SRE require and adopt Agile principles and Continuous Integration/Continuous Delivery of software (CI/CD), and both emphasise monitoring/observability and automation (though perhaps for different reasons).
SRE, which evolved at Google to meet internal needs in the early 2000s independently of the DevOps movement, happens to embody the philosophies of DevOps, but has a much more prescriptive way of measuring and achieving reliability through engineering and operations work. In other words, SRE prescribes how to succeed in the various DevOps areas. For example, the table that follows illustrates the seven DevOps pillars and the corresponding SRE practices.
DevOps in a Nutshell
By taking over operational responsibilities, cross-functional DevOps teams optimise for zero handovers and therefore shorter lead time. As teams are typically small—following the famous Amazon ‘Two-Pizza-Teams’ rule, a highly automated software delivery process is critical to prevent manual work.
But DevOps does not explicitly define how to succeed with DevOps; it only describes the behaviour of such an operational model, which might explain the variety of different DevOps implementations.
SRE in a Nutshell
As modern infrastructures and service-oriented application landscapes grow more complex, proven principles from software engineering are applied to handle the operational complexity. This includes building foundational platforms as layers of abstraction, but also incentivising standardised and well-architected applications by offering operational support for them.
To be able to build well-architected applications and reliable platforms, SRE needs to be prescriptive. In other words, SRE prescribes how to succeed in the various DevOps areas.
Related Cloud Native Patterns
The SRE (Site Reliability Engineering) team helps the development teams to maintain and improve the application (not the platform or infrastructure).
See more Cloud Native patterns here.
Want to learn more about SRE? Request our free e-book, SRE: the Cloud Native Approach to Operations.