this post was submitted on 30 Aug 2023
11 points (100.0% liked)

Programmer Humor

32469 readers
449 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

It was to talk about "team restructuring"

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 0 points 1 year ago* (last edited 1 year ago) (1 children)

Sorry, yes, that was durability. I got it mixed up in my head. Availability had lower targets.

But I stand by the gist of my argument - you can achieve a lot with a live/live system, or a 3 node system with a master election, or...

High availability doesn't have to equate high cost or complexity, if you can take it into account when designing the system.

[–] [email protected] 1 points 1 year ago

you can achieve a lot with a live/live system, or a 3 node system with a master election, or…

"A lot", sure, but not say 5 nines. 99.9% (8 hours of downtime per year), is reasonable. That's enough time to fire up an instance in another location if that turns out to be necessary.

99.99% (50 minutes of downtime per year) is harder. It means you need automatic systems doing the switchover, geographical separation, people on call 24/7 to diagnose and fix any issue in minutes.

99.999% is only 5 minutes of downtime per year. At that rate, you can't even afford for someone on call to respond. You do still want them on call to verify the automated systems did the work, but you need to rely on automated systems fully handling any possible emergency. The system needs to fail over perfectly without any human intervention. For that, a 3 node system isn't enough. You need geographical redundancy, as well as redundancy within each geographic region. You need to be able to do software upgrades without affecting that redundancy, so you need at least a secondary 3-node system so that you can do a blue/green deployment, testing out handing over traffic to the new system with the ability to instantly roll back if something doesn't work.

Each "nine" you add reduces the "error budget" by a factor of 10, so as you start getting above 4/5 nines, you really do start to need specialized engineering which tends to come with high cost and complexity.

For a typical Lemmy instance, 3 nines is probably good enough. 2 nines might even be acceptable if people aren't paying. But, for something like Netflix, 8 hours of downtime per year is far too much. For something like a high frequency trading platform, 8 nines might not even be enough. For them, the custom engineering and obscene cost of chasing 7+ nines is worth it because every second of downtime could cost millions.