Back in 2009, IT consultant Patrick Debois merged developers who wrote code with operators who ran that code so that companies could complete their work better, faster, and cheaper. Around that time, red-hat experts called site reliability engineers (SREs) stepped in to help Google meet its internal needs by using software to manage systems, solve problems, and automate operations tasks. From Google, SREs made their way to other major companies.
DevOps is composed of five key areas. People on these teams:
Reduce organizational silos by improving the communication between the two teams.
Encourage their members to work towards progress rather than perfection.
Implement gradual change. Incremental changes are not only easier to review, but also to revise when necessary.
Define standardized procedures and hierarchies for testing, developing, and automating tasks.
Measure everything so they see what succeeds and which needs revision.
DevOps is a mindset designed to increase business value through agile, high-quality service delivery.
SREs step in and contribute to each of the DevOps areas in these ways:
They use one set of standards and tools across Dev and Op fields.
They quantify failure and risk through service-level indicators (SLIs) and service-level objectives (SLOs). (SLIs are metrics that occur over time, such as latency, availability, and error rate, while SLOs measure the cumulative effect of the SLOs, say error rate over the last month).
They encourage developers and operators to move quickly by reducing the cost of failure.
They spend as much as 50% of their time standardizing and automating "this year's" operation tasks.
They measure metrics like availability, uptime, outages, automation, and so forth.
Their work can be extremely strenuous. As Google's own SRE Andrew Widdowson describes it, "Our work is like being a part of the world's most intense pit crew. We change the tires of a race car as it's going 100 mph."
DevOps and SRE share the following responsibilities:
Each eliminates the silos that divide their distinct groups and work to unify them.
Both focus on standardizing the work and on automation. Without automation, the work becomes too expensive, too slow, and far too error-prone.
Each spends equal parts of their time in Dev and Ops.
And yet they differ in the following ways:
DevOps reviews the entire life cycle of the project from the production stage to integration. SREs, on the other hand, limit themselves to nuances of production.
DevOps focuses on team synthesis, eliminating barriers, for cultural change above all else. SREs, on the other hand, obsess on standards and metrics.
DevOps is on product development and delivery. SREs zone in on the system. Is the system running? Is it readily available?
The DevOps team spans anyone involved in the life cycle of that product - product owners, devs, testers, operators, and so forth. SREs, in contrast, are engineers who exclusively write code.
Google compares DevOps to a programming language interface and SRE to a programming class used to implement DevOps. Consider them complementary rather than different. DevOps is on the what ("What needs to be done") while SRE is on the how ("How should it be done"). DevOps are niche in that the process hones on the overall life cycle of the product from A to Z, while SREs tool in on the system. DevOps is a mindset, while SREs hop in to build proactive testing, observability, service reliability, and speed into that culture. You need both methodologies for DevOps-centered organizations.
Let's Connect!
Leah Zitter, Ph.D., has a Masters in philosophy, epistemology, and logic and a Ph.D. in research psychology.