SRE vs DevOps : well explained

Technology giants , Amazon, Google and Microsoft have increased their business agility and scalability in recent years. Using SRE and DevOps framework , they have increased their services and product portfolios to end customers.

Even after, these companies had made lot of progress on SRE and DevOps , often people are confused on real difference between SRE and DevOps and what that difference is all about.

In this blog post, will shed some light on their respective position in the SDLC and the values they bring to the table.

What is DevOps : Understanding better

In Simple words, DevOps is a paradigm which brings more collaboration between all stakeholders of the SDLC processes. It reduces all the silos between different teams and brings the common mindset and culture to deliver the software project. In case of DevOps practice, there is no question of “your team” OR “my team” , it is just “one team” which focuses on joint responsibility OR accountability to deliver the quality product.

The main characteristics of the DevOps practice are :

  • Continuous application delivery
  • Reduce the release cycle
  • Cost optimization
  • Reduce the silos / friction between workforce
  • Automation

However, DevOps is not something tool OR technology which can be downloaded and installed to solve specific problem. As I mentioned earlier, it brings the IT organization more streamlined and helps to adopt the best practices to suffice the DevOps characteristics. In order to implement the DevOps practice , the top down approach has to be taken to connect all different dots. So, in order to implement all DevOps practices in real world scenarios , we need to fill up the potential gaps between software engineering and operation practices and that’s why SRE comes into picture. Lets understand now SRE

What is SRE : Understanding better

As I mentioned earlier, SRE bridges the gap between software engineering and operational practices. Moreover , it uses software tools and technologies to build and maintain the highly available and scalable systems in production environment. SRE person spend their time in developing the reliable systems which are more resilient and having self healing capacity in case of failures.

In a nutshell, SRE satisfies all DevOps principals.

SRE brings five key takeaway’s that implements the DevOps interface.

  • Reduce organizational SILO’s

The main function of SRE is making system reliable and more robust. In case of failures , it does not blame IT organization OR teams . However, it portraits failure as software engineering problem which needs to be resolved as one team. It breaks the silos between teams and promotes the mentality OR mindset of one team. In other words, we call it as shared sense of responsibility.

  • Don’t blame-game

SRE encourages the issues OR failures to be accepted as normal rather than blame game between IT teams . SRE believes that strong collaboration between IT teams which brings the 100% high availability to the software and increase the performance measures.

The core key indicators to evaluate the optimal targets are :

SLA : Service level agreements (SLA) are the contractual agreements between you and the customer . It helps the team to set the boundaries and promotes to act within those boundaries . These agreements contains the individual promises which you made with customer to make the system reliable.
SLI : Service level indicators : These are the indicators which tell you how much reliable your system is . The main indicators are , 1: Latency 2: Traffic  3: Error rate 4: Saturation
SLO : Service level objectives : These are the individual objectives which defines the key threshold values for each SLI to quantify how much reliable your system is. It quantifies the reliability and quality of the product OR service.  
Error budget : The amount of error that your service OR product can be down before your customers can start feeling unhappy. In other words, the amount of time your customers can tolerate the downtime before they question on your service OR products reliability/quality . 
  • Keep optimizing

Like DevOps, SRE also encourages the continuous improvement . None of the systems are 100% perfect so improving the system to reach to 100% is the key factor so that any negative repercussion’s would be less impactful. This helps in implementing low-risk changes to the system.

  • More focus on Automation

Automation is core, be it SRE OR DevOps. The more you have the automation in the system, the system is more reliable and time saving. Use tools wherever possible instead of re-inventing wheel. SRE focusses on consistent tools and technologies between different SRE teams which helps in keeping away SILOs and brings more collaboration. Further, this helps in maintaining the consistent integration channel between different vendors and partners.

  • Metrics and measurement

Both DevOps and SRE has different metrices and measurement factors . In DevOps, these metrics are more inclined towards the refinement of development systems to deliver consistently to production environment. For example, CICD pipeline which automates the build and quality process across all lower environments and gradually moves the software packages to production. In case of SRE, the metrices are more focused on making the system more reliable and resilient. For example, the key metrics are : performance monitoring, observability and logging monitoring , scalability and high availability.

Conclusion :

So far, we have seen many aspects of SRE and DevOps. I feel that SRE and DevOps goes hand-in-hand. They cannot compensate each other. They holds the strong position in SDLC process and in any organization both should be implemented. Thank you.

Reference :

1 thought on “SRE vs DevOps : well explained”

Leave a Comment

Your email address will not be published. Required fields are marked *