TL;DR First a performance bug was caught during rollout, and rolled back within a few minutes. However this triggered their auto-scaling of web apps to ramp up to more instances than a hard limit they had. This in turn triggered a bug in how they update the list of hosts in their load balancer, causing it to not get updated with new instances, and eventually go stale. After 8 hours the only real remaining instances i…
TL;DR meta point is: "The reason that we haven’t been doing any significant work on this HAProxy stack is that we’re moving towards Envoy Proxy for all of our ingress load-balancing" The legacy system supporting Slack in production was heavily resource-constrained as they were moving to a new fancy system. Slack admits here that the legacy system likely wasn't getting the attention it needed and lo-and-behold it star…
A terrible, horrible, no-good, very bad day at Slack
241–250 of 282 posts
Re: A terrible, horrible, no-good, very bad day at Slack
#242TL;DR First a performance bug was caught during rollout, and rolled back within a few minutes. However this triggered their auto-scaling of web apps to ramp up to more instances than a hard limit they had. This in turn triggered a bug in how they update the list of hosts in their load balancer, causing it to not get updated with new instances, and eventually go stale. After 8 hours the only real remaining instances i…
It almost seems like no one group understands the system as a whole, so when one part fails, no one has a clear idea of the domino effects that can happen. I'm guessing this is the result of really complex systems interactions.
This exact bug could have bit a large monolithic app running on a VM.
Re: A terrible, horrible, no-good, very bad day at Slack
#243Earlier quoted context omitted.
There's a reason the military does drills. Do them regularly, and keep your playbook of mock failure scenarios up to date with good coverage of all your systems. It's especially critical for disaster recovery (a DR plan that's never tested isn't worth the paper it's written on). Consider going one step further and randomly injecting artificial failures into production shards, so handling them becomes a regular affair…
>Do them regularly, and keep your playbook of mock failure scenarios up to date with good coverage of all your systems. All those man hours cost money. Is it worth it? Depends on how much downtime costs you.
If you are running a communications platform like Slack or Gmail, it's hella worth it.
Re: A terrible, horrible, no-good, very bad day at Slack
#244Seems to me that most of the problems came from the sheer scale Slack operates at. A single instance of a self-hosted chat application wouldn't require any of the load balancing infrastructure. But SaaS is really convenient. I wonder if there's a market for "local cloud" companies that operate out of your city and offer hosting of popular open source projects. The complexity would be much lower, and hopefully the rel…
Self hosting is not a pancea and I would not think it would be more reliable.
There's also limited reason why you really want your servers in your city, 5ms of latency savings isn't it,instead of economies of scale in large datacentres with good network uplinks and centralized reliability teams.
Re: A terrible, horrible, no-good, very bad day at Slack
#245Earlier quoted context omitted.
> I'm not convinced Amazon's team is immune from the sort of complex failure mode You're being way too kind. Not only is AWS not immune, their autoscalers are often absurdly primitive. Like, hourly cron job doubling / halving within narrow safety rails primitive, where it's not merely possible to find a load that trips it up, it's all but inevitable. This varies by service, but they always project an image of their i…
> You're being way too kind. Not only is AWS not immune, their autoscalers are often absurdly primitive. Yep. Very much so. Mostly because I don't have enough personal Lambda-specific warstories to feel confident badmouthing it in the context of this discussion thread. But the bits of AWS I do use are certainly not all rainbows and roses... I have one app/platform I run that basically sits at a few requests an hour f…
Re: A terrible, horrible, no-good, very bad day at Slack
#246"I'm still not understanding why it's so hard to display the birthday date on the settings page. Why can't we get this done this quarter?" Look, I'm sorry, we've been over this. It's the design of our back-end. First there's this thing called the Bingo service. See, Bingo knows everyone's name-o, so we get the user's ID out of there. And from Bingo, we can call Papaya and MBS (Magic Baby Service) to get that user ID…
Reference: https://www.youtube.com/watch?v=y8OnoxKotPQ I revisit this video every now and then.
"You think you know what it takes to tell the user it's their birthday?!"
Re: A terrible, horrible, no-good, very bad day at Slack
#247Earlier quoted context omitted.
Google goes over this scenario in their SRE books. You literally plan to take down your service so you never have 100% uptime, and literally step through a real failure and recovery. In that process you would go, "Ok, the service is failed and I don't know why. How does the monitoring look?", and then you'd notice it was broken. This is best performed by the person on the team with the least experience, so they ask t…
What is, according to you, and the SRE book, a good time during the day/week/year to do these real test outages? How much downtime could be ok? For, let's say, a b2b saas They notify the customers first? Like, "we'll a little bit sabotage our, well, your, servers this weekend, to find out if they fail and shutdown completely and cannot start again" :-)
It's up to the business to define SLAs and SLOs that the customer will be satisfied with.
Re: A terrible, horrible, no-good, very bad day at Slack
#248"I'm still not understanding why it's so hard to display the birthday date on the settings page. Why can't we get this done this quarter?" Look, I'm sorry, we've been over this. It's the design of our back-end. First there's this thing called the Bingo service. See, Bingo knows everyone's name-o, so we get the user's ID out of there. And from Bingo, we can call Papaya and MBS (Magic Baby Service) to get that user ID…
Reference: https://www.youtube.com/watch?v=y8OnoxKotPQ I revisit this video every now and then.
Re: A terrible, horrible, no-good, very bad day at Slack
#249Earlier quoted context omitted.
Reference: https://www.youtube.com/watch?v=y8OnoxKotPQ I revisit this video every now and then.
This one always cuts too close to home https://youtu.be/_o7qjN3KF8U
Re: A terrible, horrible, no-good, very bad day at Slack
#250Earlier quoted context omitted.
Yep. I once worked at a company that had backups of all the data. Until they needed a backup and discovered they were not readable. Months of work were gone.
This has happened to me. Long story. Incompetent (and dishonest) IT person. In fact, I was attacked for “harassing” the IT person. Nothing was done about it, until the HR DB got borked, and there was no backup. DR and backup are profoundly unpopular topics. They tend to be expensive, and difficult to test. They also presuppose a Very Bad Thing happening, which no one wants to think about. I have scars. I now have mul…
Backups always work, it's the restores that have problems