Quality
10 min
Nowadays Site Reliability Engineering has become an important resource in narrowing the gap between developers and the IT operations.
As technology advances, as a need many roles come up simultaneously. One of these roles, which has been around for 15+ years, is a site reliability engineer.
Site reliability engineering is a whole set of principles and practices that incorporates different aspects of software engineering and applies them to infrastructure and operation problems that are encountered during the development and maintenance process.
The main goal of these principles and practices of site reliability engineering is to create scalable and highly reliable software systems.
Back in 2003 Google asked their software engineers to prioritize reliability as they collectively worked towards efficiency and scalability goals, new approaches were needed to solve the underlying weaknesses in traditional patterns.
That year Google tasked Benjamin Treynor Sloss, the current vice president of engineering at Google, to lead a team of software engineers in the creation and maintenance of a production IT environment. That team became Google's present day team of SRE.
The goal of this mission was to keep Google’s websites running as reliable, secure and serviceable as possible.
For Treynor, SRE became the result of allowing a software engineer to structure the subsequent operations functions -- effectively creating a NoOps environment.
When he pinpointed the essence of the SRE role these were his words:
“SRE is fundamentally doing work that has historically been done by an operations team, but using engineers with software expertise and banking on the fact that these engineers are inherently both predisposed to, and have the ability to, substitute automation for human labor. In general, an SRE team is responsible for availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning.”
As Benjamin declared, one of the contributing factors for the idea behind SRE was the division between the product development and operations team.
Site reliability engineering is what you get when you treat operations as if it’s a software problem.
The SRE mission is to protect, provide for, and progress the software and systems behind all of Google’s public services — Google Search, Ads, Gmail, Android, YouTube, and App Engine, to name just a few — with an ever-watchful eye on their availability, latency, performance, and capacity.
The goal of SRE is to create, improve and maintain software applications that are reliable, efficient and scalable.
Its core focus is not in focusing on specific technologies or products, but rather on the discipline of managing and operating complex systems.
In 2020 almost every company is a technology company, or is touched by technology in some way.
Even if you’re a local hotel, you’re likely taking advantage of technology for call routing, reservation bookings, menu updates, etc. If your website goes down, you potentially lose a reservation to one of your nearby competitors.
Not only is the hotel losing a booking but they’re likely paying someone to maintain their website and look into the issue – costing them even more money.
This is just a small and easy to understand example that shows the value of providing a reliable online presence.
As SRE evolved, solutions such as monitoring, automation for capacity planning and scaling, and disaster response planning were added to the SRE playbook.
These and a general concept of automation with a primary focus on the leveraging of automation, tools and processes became core facets of the SRE approach.
Recommended reading on understanding other facts about SRE, similarities between DevOps and SRE and other.
Among many benefits of using site reliability engineering, we will name a few just to trigger your curiosity for deeper exploration.
Out of any group within the company/organization, site reliability engineers have the greatest understanding of how everything in the system is connected.
So, they know the best way to track metrics, logs and traces across different services and depict a holistic picture of system health.
In case, an incident occurs, the observability is already there so the on-call responders can find the context they need when they need it. This helps them in fixing issues faster.
Site reliability engineers essentially involve creating a bridge between development and operations.
SRE fits perfectly in the gap between developers and system admins, helping them find ways to improve automation and communication that benefits both teams.
The ideal SRE team includes developers with different specialties so that each developer can provide beneficial insight.
SRE is similar to DevOps, but is developer-focused. It specifically focuses on reliability, performance, efficiency, emergency response, capacity planning etc., whereas DevOps focuses on automating the delivery processes to improve security, efficiency, delivery predictability and maintainability.
SRE focuses on stability rather than agility and proactive engineering rather than reactive development.
Instead of requiring two separate teams (development and operations), if there are SRE developers working as a unified team, they will produce reliable software from the beginning.
SRE helps teams find a balance between releasing new features and making sure that they are reliable for users.
Site reliability engineering also gives developers more freedom to create innovative software solutions.
The need for a system responding to application and IT infrastructure alerts is always needed, whether if your organization is a big or small one.
NOCs were responsible for evaluating all incidents and alerts coming into the system and figuring out how to schedule those alerts to the right person.
Now, SRE is using automation, machine learning and a deep understanding of a systems operations to move toward a modern NOC where alerts go straight to the person responsible for fixing the related problem.
The SRE team is responsible for metrics and monitoring, capacity planning, change management, and emergency response.
Many companies are working to define their expectations for the SRE role, and the SRE toolchain, like the role itself, continues to evolve.
The tools SREs use at any given time will depend on where an organization is at in their SRE journey.
Less mature organizations will tend to use more specialized operations tools while more mature organizations will see more convergence between SRE and software engineering toolchains.
So while it’s certain that there’s no “one-size-fits-all” set of tools, SREs will experiment with and adapt the right tools as they seek new, efficient ways to bring greater reliability to everything they do.
While failures occasionally will continue to happen, they will be fixed quickly because the SRE team has automated so many tasks beforehand.
Engineers are the team behind for improving the reliability of their systems. These engineers use different tools in their daily tasks for different categories.
Sre team of engineers is in demand nowadays, but being hard to have a specific skill set, isn't easy to find them.
Skills needed for becoming a Site reliability engineer include and are not limited to;
Site reliability engineering is fast becoming one of the most popular software teams used to better maintain the efficiency and reliability of system.
Adservio with its team of professionals helps organizations elevate their development and the maintenance processes by successfully implementing SRE principles and other best practices.
Let us know what your are facing with and we will take care of providing the best solution for you.