DevOps VS. Site Reliability Engineering
Amr Saafan
Founder | CTO | Software Architect & Consultant | Engineering Manager | Project Manager | Product Owner | +28K Followers | Now Hiring!
I’m not a fan of pitting ideas against one another. Our goal should be to ensure that we are assisting our organization in delivering functionality in a timely and secure manner. The precise, moment-by-moment details of this don’t really matter. Site Reliability Engineering (SRE) and DevOps are two major ideas and approaches that are both attempting to achieve the same goal. While they share many similarities, each has some distinguishing characteristics.
Rather than trying to sell you on either, let’s just talk about them both and then figure out how we can decide which is a better fit for our organization.
Site Reliability Engineering
SRE was developed at Google to address the challenges of software development and ongoing operations. The emphasis is squarely on the use of tools to aid in the automation of processes. However, it is also regarded as a legitimate role within an organization. To successfully implement Site Reliability Engineering, a Site Reliability Engineer is required.
The overall goal of SRE is centered on the name’s middle word, Reliability. When implementing an SRE strategy, your first priority is to ensure that you are doing everything possible to keep your systems online and available. This aspect of SRE receives the majority of the automation and testing.
SRE has several core principles that are worth noting:
In a nutshell, SRE is a focus on reliability that employs automation and enlists the assistance of the development team.
领英推荐
DevOps
DevOps has a much more organic history, originating in a variety of organizations and disciplines. The emphasis is entirely on development, but it intentionally includes every IT team, as well as management and the business, when done correctly, as part of a fundamental shift in how functionality is defined and deployed. As a result, the process is much broader but far less well defined than SRE.
The principals of DevOps then are as follows:
To summaries DevOps, it is a focus on rapid development and deployment using automation to help bring in all the other teams.
Choosing one over the other
Which would I choose if I had to choose between SRE and DevOps? Well, I’d argue that it’s a bad option.
Even though it is not one of the core tenets of SRE, there is nothing that prevents continuous delivery. There’s also nothing in SRE that prevents you from enlisting more business involvement to help you achieve reliability. The rest of SRE is enthusiastic about DevOps’ goals. Automation and planning would fit perfectly within a DevOps framework.
In contrast, there are no rules in DevOps that say you can’t have SLAs, SLIs, or SLOs. In fact, the opposite is true. In order to meet the requirements of automated testing and continuous delivery, you should also implement monitoring. While nothing in DevOps defines specific roles, there is no rule that says you can’t have a Site Reliability Engineer supporting your DevOps process.
In short, I don’t believe you have to choose between these two approaches. I believe you can successfully implement either or both. It really depends on where your problems are and how best to address them within your organization.