Google is largely credited with creating the first site reliability engineering team in 2003. Today, the company employees over 1,000 site reliability engineers who work to build and improve on reliability systems.
It’s still common to lump the responsibilities of a site reliability engineer (SRE) with those of a DevOps engineer, but there are a lot of differences between the two roles. If you’ve been thinking of yourself as DevOps, maybe it’s time to find out if you’ve got what it takes to be an SRE.
Let’s talk about the similarities and differences between SRE and DevOps roles, including responsibilities, skill set, and of course, salary.
What is an SRE?
Site reliability engineering has gained a lot of attention over the past few years due to increasing differentiation between roles in IT operations and software development.
The general consensus is that SRE enables software teams to use automation to solve most app issues in the production environment. Its main objective is to create a highly reliable and scalable system. Site reliability engineers are not only responsible for the stability of the production environment but they also suggest new features and improvements to promote application availability.
Okay, then what’s DevOps?
DevOps uses CI/CD pipelines to automate app updates and deploying code in various environments. Its focus is to enable rapid and stable code releases. Code is continuously developed, tested, and deployed according to DevOps methodologies and either agile or lean principles. Its overall goal is to enhance the software delivery process as a whole.
Unlike site reliability engineers, DevOps engineers usually don’t touch production environments.
SRE vs DevOps: goals, responsibilities, salaries, and skills
Although there are certainly similarities between SRE and DevOps roles, the differences are subtle but important. While DevOps is about stability and structure, SRE is about ensuring performance, scalability, and availability of systems.
Let’s dive into how they stack up against each other when it comes to goals, responsibilities, salaries, and skills.
Goals of each
Both DevOps and SRE bridge the gap between operations and software development in their own ways. DevOps usually focuses on the “what”, while SRE is more about the “how.” DevOps tries to enhance collaboration across all teams that affect CI/CD and ultimately client satisfaction. Therefore, its focus is on increasing the speed of code development, testing, and delivery.
SRE on the other hand is used to develop practices that improve existing processes and code delivery. It attempts to enhance the availability and reliability of systems.
A DevOps team would include developers, QA engineers, and site reliability engineers as well as other disciplines. An SRE team is a group of site reliability engineers who have previous experience in operations as well as development.
Responsibilities of each
Some of the daily tasks and responsibilities of a DevOps engineer include:
- Spending time with CI/CD tools like Jenkins, Docker, and Kubernetes to ensure faster and smoother code deployments.
- Designing pipelines and workflows for software deployment.
- Implementing and maintaining cluster environments.
- Setting up virtual environments and containers and configuring them to support the dev team.
- Reducing silos.
- Focusing on core development of a product or app mostly by way of an agile approach.
Contrast those with the tasks of a site reliability engineer:
- Writing code and configuring automated solutions for the dev team.
- Maintaining a stable production environment, and advocating for changes and updates.
- Increasing operational efficiency and performance of the application.
- Measuring service level indicators (SLIs) and service level objectives (SLOs).
- Reducing the cost of failure with frequent releases and implementing the latest technology.
- Solving and tracking tickets to resolve problems.
- Planning infrastructural changes and configurations for integration and deployment to different environments.
Selecting the right professional role is important for the growth of your engineering career. Of course, salary is no small consideration when it comes to choosing where and how you want to expand your skills.
According to Glassdoor, the national US average salary for a site reliability engineer is $127,718. The national average for DevOps engineers is $105,017. Certified DevOps engineers are certainly in high demand in today’s technical market, but since site reliability engineers have additional responsibilities as compared to DevOps engineers, they are usually paid more.
A DevOps engineer is expected to have the following technical and soft skills:
- Great communication skills. DevOps engineers must be able to reduce silos and make incremental changes at a rapid pace.
- Experience with CI/CD tools like Jenkins; AWS; source control tools like Git; cloud solutions like Azure; GCP; and other tools high in demand like Docker and Kubernetes.
- Coding and scripting skills in Python, JAVA, PHP, Shell, Node.js, and many more.
- Ability to manage infrastructure for multiple environments and versions of code for multiple clients.
- Proactive with learning new tools and technologies in the market.
- Able to identify key areas for improvement and ensure stakeholder requirements are met.
A typical site reliability engineer needs the following skills:
- Ability to be a good liaison between the development team and the operations team in order to improve the product.
- Ability to embrace change and adapt to latest trends in technology.
- Investigative and proactive about detecting performance issues in production.
- Ability to leverage tools to automate and monitor the app in production.
- Experience in automation tools to achieve scalability and improve efficiency by reducing manual work.
- Strong knowledge of CI/CD tools, operating systems, virtualizations, and networks.
- Ability to monitor key metrics around availability, analyze failures, develop new practices, and suggest new standards to improve the app performance.
Tech organizations these days implement both SRE and DevOps, as the two disciplines complement each other to achieve the shared goal of improving an application’s efficiency and stability. Disaster response, monitoring, capacity planning, and rapid delivery are common goals for both site reliability engineers and DevOps engineers.
SRE and DevOps are considered two sides of the same coin; their general framework is, after all, similar. DevOps bridges the gaps between dev teams and improves resiliency in the event of any major failures. SRE encompasses DevOps principles but adds to them by implementing solutions to improve the existing product. It can be immensely helpful in managing large-scale applications and reducing manual effort.
“Not every infrastructure needs an SRE, but every infrastructure could use an administrator who acted more like one.” -Matt Simmons