DevOps vs Site Reliability Engineering
I’ve been around for a really long time. It was about 5 or 6 years ago that I started hearing the term DevOps. I wasn’t sure what to make of it, but I assumed it was a systems administrator that wrote code to automate tasks. It was basically what I’ve always done, but we didn’t have a particular name for it and I left it at that.
Recently a new term has been coming to the surface – SRE or Site Reliability Engineer. The first time I heard the term was from someone in Google. Then from Facebook. Now it seems to be everywhere. Initially, I thought it was just a different name for DevOps. The job descriptions appear to overlap and encompass many of the same skill sets. It was recently explained to me by a very smart fellow, that the two were indeed different. He tried to explain it to me, but I needed to do a little research on my own.
I found the following two descriptions incredibly helpful:
https://www.linkedin.com/pulse/devops-vs-site-reliability-engineering-sean-washington
I believe that there are two main disciplines here – SRE is more defined as to architect a fully automated IT infrastructure, while DevOps is more of an orchestration of the an Agile or Lean development team – serving infrastructure as code/tasks to coders when needed.
And according to Wikipedia: https://en.wikipedia.org/wiki/Site_reliability_engineering#DevOps_vs_SRE the difference is:
Coined around 2008, DevOps is a practice that encompasses automation of manual tasks, continuous integration and continuous delivery. It applies to a wide audience of companies whereas SRE might be considered a subset of DevOps that possesses additional skill sets.
For people not in the industry – An SRE is a hybrid Programmer/Systems Engineer. The job is to automate Systems Administration – to build a system of self-deployment, self-monitoring, self-repairing infrastructure through the use of programs, third party tools and scripts. A good visual is the following:
SRE:
In contrast, DevOps is more concerned with the software development lifecycle. A DevOps Engineer will employ programs, third party tools and scripts to compile, build, test and deploy software on the infrastructure – the below graphic is a description:
DevOps:
An SRE is a programming Systems Engineer – vs. A DevOps Eng is a software developer that knows about operations. The difference is subtle and can be a little confusing. One isn’t more important than the other, but they are different jobs.
Keep posted because I’ll start exploring and reviewing tools used for both SRE’s and DevOps