Site reliability engineer and DevOps engineer are two hyped IT roles in the enterprise today. Organizations pursuing a cloud and DevOps strategy need to understand the purpose of each job, how they differ and how they contribute to routine IT operations.
Let's dig deeper into the responsibilities of SREs and DevOps engineers. While the former, for example, ensures system reliability and availability, the latter works to provision infrastructure and automate build pipelines. There is overlap between the two roles, however, and both help break down silos between operations and development teams.
Inside the SRE role
The SRE role entered the tech industry's vernacular through Google, which views the position as a software engineer tasked with traditional IT operations work, rather than application development. An SRE acts as a free agent who can move between projects and even organizations. This job requires a highly motived and dedicated team player. The SRE role bridges software development and site reliability, because SREs and developers share the same staffing pool and budget.
An SRE also helps navigate infighting between developers and IT operations teams. For example, the SRE can intervene when developers want to release new features on an aggressive Agile timeline and the operations team prefers a more conservative approach to ensure nothing breaks.
Measuring reliability is one of the biggest challenges organizations face during a move to the cloud and DevOps. The SRE champions a strategy to gauge reliability and defines a response for when availability falls outside a service-level agreement (SLA). This work must happen in collaboration with corporate stakeholders.
Ace that SRE interview
Trying to land an SRE job? Explore common questions SRE job candidates face in an interview -- and what hiring managers hope to hear in a response.
Inside the DevOps engineer role
A DevOps engineer helps oversee both software development and deployment. Some CIOs argue the DevOps engineer role doesn't exist, which is a well-accepted egalitarian view in the DevOps world. However, many corporate org charts and posted job listings still call for a DevOps engineer.
This role is a manifestation of the need for IT departments to move with greater agility. DevOps breaks down silos between development and operations to build a functional working relationship between the two teams. Combining the efforts of developers and operations staff is integral to make feature-rich and reliable software products. A DevOps engineer fosters collaboration between these two groups.
In addition, DevOps engineers often provision and manage the underlying IT infrastructure -- including in the cloud -- to support a software deployment. They also help automate deployment pipelines, typically through the use of CI/CD tools.
Differences between SREs vs. DevOps engineers
An SRE and DevOps engineer both have development and operations skills, which enable them to see across the DevOps-enabled application lifecycle. People in both roles work for change, such as small and iterative software releases versus once-a-year major releases.
In addition, an SRE and DevOps engineer both aim to eliminate organizational silos. Beyond these similarities, the roles mean different things.
As Google puts it, site reliability engineering -- as a job focus -- revolves around the idea that "operations is a software problem." That focus leads SREs to measure availability, uptime, downtime and other operational factors that can help or harm software delivery to customers.
In general, DevOps engineers focus on pre-failure situations. Their job is to do everything they can to prevent system downtime. In contrast, an SRE often focuses on the post-failure situation, starting with the post-mortem and root-cause analysis. An SRE works to support maximum system uptime and rid the system of failures.
The success metrics for an SRE versus DevOps engineer are different. The job of a DevOps engineer revolves around CI/CD, requiring a mastery of software development, automation and related tooling. The success of an SRE is measured by how well applications comply with SLAs and service-level objectives.
SREs tend to have a high level of support from management -- at least, according to Google's description of the role. In your company, organizational structure, executive sponsorship, budgets and internal politics might affect the relationship.
For companies that haven't yet brought SREs into their staffing mix, it could be a challenge, financially, to do so -- especially with the coronavirus pandemic affecting IT budgets. The reality, however, is that organizations can cherry-pick elements of the SRE and DevOps engineer roles to create a position that best meets their current and future needs.