Start with: Site Reliability Engineering: An Imperative in Enterprise IT - Part 1
Site Reliability Engineer vs. DevOps Engineer vs. Software Engineer
Site reliability engineers are development-focused IT professionals who work on developing and implementing solutions that solve reliability, availability, and scale problems. On the other hand, DevOps engineers are ops-focused workers who solve development pipeline problems. While there is a divide between the two professions, both sets of engineers cross the gap regularly, delivering their expertise and opinions to the other side and vice versa.
Site reliability engineers keep their services running and available to users, DevOps cover the product life cycle from end to end with the goal of making all processes continuous based on Agile technologies. Delivering continuity across the product life cycle is key to speeding time to market and implementing rapid changes.
While the roles of site reliability engineer and software engineer overlap to a certain extent, there are major differences between the two professions. Software engineers design and write software solutions. In most cases, software engineers factor in cost of deployment as well as application update and maintenance to their designs.
An SRE is not a developer who knows a thing or two about operations, or an operations person who codes. It's an entirely new and separate discipline on your development team. The SRE brings expertise in deployment, configuration management, monitoring, and metrics. SREs focus on improving application performance, freeing up developers to focus on feature improvements and IT operations to focus on managing infrastructure. When SREs are actively engaged, developers and IT operations have the latitude to do what they do best.
What is The SRE Framework?
The Site Reliability Engineering Framework is built on the following principles.
■ Codified best practices. This pertains to the ability to carry out what works well in production to code. Using the said code will result in services being "production ready" by design.
■ Reusable solutions. Common techniques that are easily shared and implemented, allowing for effective mitigation of scalability and reliability issues.
■ Common production platform with a common control surface. Identical sets of interfaces to production facilities for easy operational management, logging, and configuration for every service.
■ Easier automation and smarter systems. Superior automation and data aggregation provide engineers and developers a complete picture of their systems, applications, including all relevant information. No more manual data collection and analysis from different sources.
SRE creates various framework modules that serve as implementation guides for the solutions designed for a particular production area. An SRE framework essentially directs engineers on how to implement software components as well as a canonical way to integrate these components.
SRE frameworks provide engineers and developers multiple benefits in terms of efficiency and consistency. For one, they free developers from having to find, piece together, and configure individual components in an ad hoc service-specific manner.
These frameworks deliver a single solution for production concerns that's reusable across various services. Framework users execute their production and other processes using common implementation rules and minimal configuration differences.