A bit more context there since you might wonder why customers can cause Sev1’s.
Well, I work for a Database Technology company and we provide a managed service offering. This managed service offering has SLA’s that essentially enforce a 5 minute response time for any “urgent” issue.
Well, a common urgent issue is that the customer suddenly wants to load in a bunch of new data without informing us which causes the cluster to stop accepting write loads.
It’s to the point where most if not all urgent pages result in some form of scaling of the cluster.
Since this is a customer driven behavior, there is no real ability to plan for it - and since these particular customers have special requirements (and thus, less ability to automate scaling operations), I’m unsure if there is any recourse here.
It’s to the point that it doesn’t even feel like an SRE team anymore - we should just instead be called “On-demand scaling agents”. Since we’re constantly trying to scale ahead of our customers.
All in all, I’m starting to feel like this is a management/sales level issue that I cannot possibly address. If we’re selling this managed service offering as essentially “magic” that can be scaled whenever they need then it seems like we’re being setup for failure at the organizational level. Not to mention, not being smart about costs behind scaling and factoring that into these contracts.
So, fellow SRE’s have you had to have this conversation with a larger org? What works for something like this? What doesn’t? Should I just seek greener pastures at this point?
P.S. - Posted c/Programming due to lack of a c/SRE
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.
Hope you enjoy the instance!
Follow the wormhole through a path of communities !webdev@programming.dev
I think the issue is that customers can escalate directly to SRE.
SRE is supposed to work on the health and reliability of the service. It does sound like there is a reliability issue when loading large datasets. But this should be project work, not incident response work.
Is your service violating your internal SLOs when this happens?
Where I work, customers escalate to a support team, who tries to work with them. It’s only after the support team decides it’s a product issue that it makes it to SRE. Even then, 90% of the time, the support staff will file a ticket to be handled at business hours rather than page SRE.
If this auto scaling delay is expected, I’d try to do two things:
Produce better error messages, so that the customer can know what’s happening and hopefully not need to escalate.
Work with the rest of the company (typically the Product or Support teams if you have them) to make sure customers understand these limitations.
Edit Oh, also don’t let customers page you for known limitations. Design a better process around this.
And if it’s that bad, SRE should invest in project work to make the autoscaling less painful.
Edit: Your service should return some kind of client error (i.e. exempt from SLO) in this situation. In gRPC, that would probably be RESOURCE_EXHAUSTED, and the error message should be something like “Yo your DB is out of disk, chill out while we fetch more disk. To avoid these errors in the future, pre-scale before large writes.”