Live data from Hacker News

Details of yesterday's Bunny CDN outage

bunny.net

21–30 of 87 posts

Re: Details of yesterday's Bunny CDN outage

#21

One of the comments on the post is: > One thing you could do in future is to url redirect any BunnyCDN url back to the clients original url, in essence disabling the CDN and getting your clients own hosts do what they were doing before they connected to BunnyCDN, yes it means our sites won't be as fast but its better than not loading up the files at all. I wonder if that is possible in technical terms? Isn't this a h…

Yeah please don't do this without me having checked a box to do that haha

There's a reason I use a CDN, let me decide if it's up or down if the CDN is down. If I want failover, I'll do that bit.

Re: Details of yesterday's Bunny CDN outage

#23
These follow ups aren't super compelling IMO.

> To do this, the first and smallest step will be to phase out the BinaryPack library and make sure we run a more extensive testing on any third-party libraries we work with in the future.

Sure. Not exactly a structural fix. But maybe worth doing. Another view would be that you've just "paid" a ton to find issues in the BinaryPack library, and maybe should continue to invest in it.

Also, "do more tests" isn't a follow up. What's your process for testing these external libs, if you're making this a core part of your reliability effort?

> We are currently planning a complete migration of our internal APIs to a third-party independent service. This means if their system goes down, we lose the ability to do updates, but if our system goes down, we will have the ability to react quickly and reliably without being caught in a loop of collapsing infrastructure.

Ok, now tell me how you're going to test it. Changing architectures is fine, but until you're running drills of core services going down, you don't actually know you've mitigated the "loop of collapsing infrastructure" issue.

> Finally, we are making the DNS system itself run a local copy of all backup data with automatic failure detection. This way we can add yet another layer of redundancy and make sure that no matter what happens, systems within bunny.net remain as independent from each other as possible and prevent a ripple effect when something goes wrong.

Additional redundancy isn't a great way of mitigating issues caused by a change being deployed. Being 10x redundant usually adds quite a lot of complexity, provides less safety than it seems (again, do you have a plan to regularly test that this failover mode is working?) and can be less effective than preventing issues getting to prod.

What would be nice to see if a full review of the detection, escalation, remediation and prevention for this incident.

More specifically, the triggering event here, the release of a new version of software, isn't super novel. More discussion of follow ups that are systematic improvements to the release process would be useful. Some options:

- Replay tests to detect issues before landing changes

- Canaries to detect issues before pushing to prod

- Gradual deployments to detect issues before they hit 100%

- Even better, isolated gradual deployments (i.e. deploy region by region, zone by zone) to mitigate the risk of issues spreading between regions.

Beyond that, start thinking about all the changing components of your product, and their lifecycle. It sounds like here some data file got screwed up as it was changed. Do you stage those changes to your data files? Can you isolate regional deployments entirely, and control the rollout of new versions of this data file on a regional basis? Can you do the same for all other changes in your system?

Re: Details of yesterday's Bunny CDN outage

#25
post #12

Sounds like they got really lucky they could get it back up so quickly. They must have some very talented engineers working there. My take aways though were they should have tested the update better. They should have their production environment more segmented with staggered updates so they have much more contained disasters. And they should have had much better catastrophic failure plans in place.

It was not that quick tbh. We were seeing intermittent issues for several hours after the initial problem arose.

It tought me a valuable lesson: make sure it is easy to switch to another CDN & to update cached/stored urls

Re: Details of yesterday's Bunny CDN outage

#27

These follow ups aren't super compelling IMO. > To do this, the first and smallest step will be to phase out the BinaryPack library and make sure we run a more extensive testing on any third-party libraries we work with in the future. Sure. Not exactly a structural fix. But maybe worth doing. Another view would be that you've just "paid" a ton to find issues in the BinaryPack library, and maybe should continue to inv…

This, I am not at all reassured by this that it won't happen again. Next week perhaps.

Also, their DNS broke last month as well, but I guess we won't mention that as it would invalidate 2 years of stellar reliability

Re: Details of yesterday's Bunny CDN outage

#28

They are making it sound like they did everything right and it was a issue of third party library. If we list all the libraries our code depend on, it will be in 1000s. I can't comprehend how a CDN does not have any canary or staging setup and in a update everything could go haywire in seconds. I think it is standard practice in any decent size company to have staging/canary and rollbacks.

That's not the impression I got. Yeah, their takeaway was to stop using BinaryPack, which I disagree with. However, it sounded to me like they very much understood that they made the biggest error in putting all of their eggs in one basket.

Your system WILL go down eventually. The question is how will you recover from it?

Re: Details of yesterday's Bunny CDN outage

#29

Slighlty offtopic but what about the big outage from a few days/weeks ago where half the Internet was down (exaggerating only a little bit), has there been a postmortem I missed?

https://www.fastly.com/blog/summary-of-june-8-outage

fastly RCA is underwhelming - no info on what was the component, what happened and how the situation was tackled.

Re: Details of yesterday's Bunny CDN outage

#30

They are making it sound like they did everything right and it was a issue of third party library. If we list all the libraries our code depend on, it will be in 1000s. I can't comprehend how a CDN does not have any canary or staging setup and in a update everything could go haywire in seconds. I think it is standard practice in any decent size company to have staging/canary and rollbacks.

This. While failure, human or not, is unavoidable in the long term, from their writeup they do not seem to have procedures to avoid this particular mode of failure.
Post reply on HN