Ask HN: What makes SRE great compared to "plain" DevOps?
In my view it is having a dedicated team focusing their full mental bandwidth on pro-actively understanding and managing robustness of the system.
In Pure DevOps, it seems to me developers often don't have the full picture of the system, and not enough bandwidth to foresee complex interactions from their changes.
These are from my experiences spending one year as a developer in somewhat large a greenfield development project for a machine learning infrastructure based on Kubernetes, where subtle platform errors would often cascade into the applications layers, causing really hard to debug problems that often left more junior application developers scramble to even know where to start debugging.
I'm preparing a presentation though, and I'm eager to hear your experiences and perspectives on this!
(SRE = Site Reliability Engineering - https://sre.google/ )
(
16 comments
| on HN
)
Sometimes traditional sysadmins will be labeled as DevOps because they are using some config management tool, but the practices are the same.
The next level is Platform Engineering, which creates a platform that encapsulates all these best practices.
You can have dedicated or distributed DevOps and SRE teams. You can't have distributed Platform team.
What happens behind that interface can be chaotic for sure.
In my experience on the mentioned project, I felt one of the few ways to get there, unless you wrote the whole codebase, is to have enough time to build (or configure existing) some tools to be able to visually understand and/or navigate the system.
During one week of being on-call engineer, inspired by the ideas of pro-activity and monitoring in SRE, I stole myself some hours to put together a script that would parse our ArgoCD configs to create a map of our Kafka topics, into a GraphViz-based HTML file with links to to the relevant topics as well as microservices (pointing to some web based inspection tools for these).
This finally made me be able to figure out what was going on and be useful during incidents as a newcomer in the field, but no one in the team had thought of this idea of being a little pro-active, so most of the time when errors occurred, people would just scramble around all over the place, and only the really senior guys would be useful because of having the whole system in their head anyway.
To me, this idea of pro-activity is what SRE brings to the table.
I'm a SWE SRE, and I don't particularly care to look at the code of individual features being added unless there's potential for a large blast radius, but I do care to make sure if something breaks, there isn't cascading failures. I want things to degrade in a predictable way, or to fail in an isolated fashion. The non SRE SWEs are free to break a single feature, and i'm happy to help them roll it back, but that's not what I'm primarily worried about.
Conversely, many of them aren't all that interested in thinking about how slowdowns or failures propagate upstream or downstream to other teams that may or may not understand how things are connected, whereas I do worry about that.
When the first company relearns that on-prem with dedicated admins is infinitely cheaper than cloud with similar reliability and less / cheaper staff overhead it will be a rude awakening. This is especially sad to me as most women in our field are in DevOps/SRE roles as opposed to SWE.
Pray that Bezos and co. can keep their customers / your employers fooled.
One is a role, the other is a broken mindset.
In comparison, 'plain' DevOps might sometimes lack that specialized attention, potentially leaving blind spots in foreseeing complex system interactions. SRE is all about that extra layer of assurance for smoother, more resilient operations!