If you are planning to develop a product, there is a big chance that its security and performance are the elements you look at with the special concern. These are crucial factors that could determine the success or a failure of your app. The growing complexity of developed products and new challenges on the software development market bring on new demands. One of those demands is a person or a team that predicts problems and resolves them before they happen. Who is it?
A Site Reliability Engineer (SRE) is a person who ensures that the infrastructure of your application or website – the software and hardware that makes it accessible to the world – is secure, reliable, and performant. SRE is a relatively new job – it was first introduced by Google because of the unique challenges the company faced due to its incredible scale. In a world of changing technologies, new demands, growing complexity, and insane amounts of data, dedicated people are required to keep the show running. This is where the SRE motto, “hope is not a strategy”, comes in. An SRE’s job is to plan and strategize before a crisis appears – preferably to avoid it and, should the worst happen, to minimize its possible impact.
Read on to learn more about what an SRE does and why having one’s assistance could help your project.
In a nutshell, a Site Reliability Engineer predicts problems and resolves them before they happen. Imagine that you’re running an e-commerce website whose traffic increases tenfold before Christmas, Black Friday and Valentine’s day. An SRE will ensure that your servers and the applications running on them will scale appropriately so that customers do not experience slowdowns or dropped connections, and you do not lose out on revenue. The same goes for businesses like flight booking, event ticket sales, news websites and other businesses whose Internet traffic fluctuates significantly.
A more extreme example are mission-critical systems, like medical, flight-control or banking software. Outages in these industries are completely unacceptable and could carry very serious consequences. It’s an SRE’s job to make sure that they don’t happen.
The job of an SRE is organized around three phases: planning, launch, and maintenance. Even before your project starts, an SRE prepares for the future by gathering business requirements, analysing risk factors, figuring out possible traffic surges, and estimates the budget required to deal with potential breakdowns.
When the project launches, your SRE will contribute by designing a resilient infrastructure that meets all your business and reliability requirements; they will also show the development team how to implement it correctly. Another of SRE’s responsibilities is to assist the development team in the implementation process.
The job goes on even after the launch. When your project goes live, the SRE will continue to monitor the scalability of the app and suggest solutions if changes are needed – for example, if traffic grows at an unexpectedly high rate and a new infrastructure strategy is required. Site Reliability Engineers also take care of automation and backups, making sure that developers can concentrate on creative work and that nothing is lost in case of an outage.
An SRE needs to have a broad skill set. When it comes to soft skills, they need to be calm and analytical, and capable of systemic thinking. In case an outage happens, you don’t want your SRE panicking and blaming others – the kind of person you’re looking for tends to focus on solutions and causes, not culpability. They need to be able to connect the dots and troubleshoot on the fly, which means that their hard skills also have to be top-notch. A good SRE has a solid mix of both coding-related and infrastructure knowledge. You can think of the role as combined developer, DevOps engineer, and systems administrator, but with a focus on infrastructure, operations, scalability, and reliability.
Let’s look at the SRE job from a value standpoint: what do they bring to the project? There are numerous benefits to having an SRE on the team. First, they minimise downtime – a crucial question in a time when customers expect 100% availability of online services.
Second, they estimate and mitigate potential risks. Although some problems can’t be avoided, they are much easier to deal with when you have a plan to deal with them ahead of time.
Third, they free up the resources of your development team. By automating and bringing the infrastructure and tooling closer to the developer requirements and enabling them to act faster and with less risk, they take a significant weight off the shoulders of other team members.
Finally, SREs save you money in the long term. A well-architected infrastructure, fault-proof solutions, and solid planning mean that you won’t have to stretch your budget to put out fires.
But what’s the business case for having an SRE on your team? In other words, why should you spend your budget on one? To answer that, let’s first look at the main difference between SRE and DevOps. If DevOps is Agile, then SRE is Scrum: the former is a set of principles, and the latter is a methodology that translates them into business value. To put it differently, DevOps is a culture, and SREs work within that culture to achieve the goals of your organization – for example, Netflix serves 86 million customers using a 1000 different devices. Having SREs on your team is a strong indicator of aiming for business excellence through the best means available on the technology market. If you’re serious about scaling, automation, and reliability, SRE practices are the way to achieve them.
Devops is one of the essential parts of every project developed at Netguru - learn more about our DevOps culture.
Being an SRE is not an easy job, especially if done well. Modern software projects are growing exponentially more complex, so there is always more to learn and take care of. An SRE always needs to be two steps ahead. They need to be well-versed not just at what’s going on now, but what’s going to happen in the future. Keeping up with the progress of technology and the demands of the business at the same time is a difficult task, which is why SREs are extremely high-value team members.
What does the future hold for SREs? We’re confident that the outlook is bright. They already are – and will continue to be – a sought-after segment of the IT talent market. The demand for SREs is growing along with the awareness of the challenges SREs are equipped to meet. More and more businesses are based on web applications or mobile apps – as this trend continues, so will the demand for the work of SREs.
Get in touch if you’d like your project to benefit from the expert knowledge of an SRE. We’re always happy to help when it comes to solving technological challenges.