Site reliability engineer is a job title for a specialist who works with software developers to ensure that an organization's computing systems are scalable, stable and predictable. The position calls for someone who is comfortable with both software engineering and IT operations. The term SRE was coined at Google around 2003 when the company hired Ben Treynor Sloss to lead a team of software engineers to run a production environment. The company needed to create new paradigms to manage its large systems, while continuously introducing new features and a high-quality end user experience (UX).
Although site reliability engineering duties were historically done by operations teams, today’s SREs use machine learning (ML) to automate tasks previously performed by human labor. Typically, SREs are responsible for selecting infrastructure tools, managing production changes and determining emergency responses. SREs typically devote up to 50 percent of their time on operations responsibilities (including issues, on-call and manual intervention) and the rest of their time on coding and automation tasks. However, these percentages and SRE duties may vary, depending companies’ business models and culture.
The job of the SRE has evolved beyond that of the system administrator (sysadmin). Required skills for SREs include a bachelor’s degree in computer science or a related field as well as production-level experience in at least one high-level command-line interface-written code language (such as Java, C/C++ and Go) and at least one dynamic language (including Ruby, Python and Node.js). Other required skills may include advanced experience in either networking, Linux/Unix administration, systems programming, distributed systems, databases or cloud engineering. Employers are also looking to hire SRE team members who have experience in data-driven analysis and infrastructure-as-code (IaC) as well as server clusters, load balancing and monitoring. Other desirable SRE skills are experience with at least one major cloud provider and one container technology. Soft skills such as being a good communicator are a plus.
Site reliability engineering and DevOps have similar goals: keeping a diversely skilled team involved in software development, from design through operation; automating repetitive tasks; and using engineering tools in operations. In contrast, while DevOps applies to positions both within and outside IT, SRE is focused on supporting IT operations during software development and deployment in production. Additionally, although business leaders usually are involved in DevOps, they are not often involved in SRE.