I don't really care about percentages, either. But for some industries, the difference between "two 9s" and "five 9s" can be millions of dollars, so that's why they're published that way to the customer.
What's the point here? That everyone should use the n-nines notation? Sure. However, companies have no interest in doing anything that makes them look worse.
Also, is anyone else getting the bitter taste of AI writing from this page?
Services can have a 50% uptime (or a 50% downtime if you prefer) as long as it's the time when I need it to be up (or don't need it.)
Which is to say that the significance of downtime depends on the user. Talking about nines only makes sense internally when you are evaluating your infrastructure and operations. It doesn't tell you squat about impact to your customer.
> GitHub Actions: 12 hours affected in the last 30 days (98.31% uptime).
This is trying to shine the most favorable possible light onto a deteriorating situation. It doesn't take away from the fact that most businesses have measurable missed revenue in downtime. Customers that shop somewhere else, ads that were never severed, leads that grew a little colder. 12 hours of downed GitHub results in millions of dollars of lost developer productivity that was externalized by Microsoft to other companies.
We shouldn't be trying to spin downtime as "just a few hours a month." Those hours cost real dollars.
> We shouldn't be trying to spin downtime as "just a few hours a month." Those hours cost real dollars.
They're also completely irrelevant, you as a customer of a service that is down can lose the same amount of money in a 5 minutes outage or 30 days outage, if you were only relying on this service for one operation that took 1 second and had to happen during the time where the outage happened.
Depending on the service in question, no amount of downtime is acceptable, however unrealistic this is.
For example we had a 6 9 (99.9999%) requirement from a customer for any given 3-6 month period. If we violated that, we owed them their money back (baring the outage wasn’t caused by us - I.e our cloud provider shit the bed).
That’s something like 7.5 seconds. For a contract over $1.5M. Am I the only one who thinks that’s outrageous expectations?
I worked in realtime trading. No. Not at all outrageous. Quite reasonable actually. If that’s what we agreed and I need you to be reliable I will charge you back for being unreliable. I’m happy to pay top and extra dollar for the SLA but that means it needs to be acted on.
If it wasn't prorated anyone who approved the contract needs training and/or firing. If it is prorated, that is generally not a problem. Small outages aren't even worth the effort of trying to get the money back, and if you have a large enough one to make it worthwhile it is likely the prorated refund is still going to be laughably small.
Well, we don't know the application. Six nines is appropriate for some applications. If you're doing PSIP lookups to route 911 calls, that's reasonable. If you're sending out paper mailers, it's not.
But six nines gives you 7.9 seconds a quarter. If you run a multihost system, that translates to ~1s dead host detection and switch and 3-4 switches per quarter. It's acheivable with reliable hardware and reasonable software. Otoh, it's very hard to hit if you need to move traffic to a different location to respond to a no notice location failure (failed automatic transfer switch, all fiber paths severed by construction because the redundant paths were in the same bundle, etc). If you have an out for 'cloud provider failure', that probably covers location failures.
Often times a tight uptime promise like that also comes with maintenance windows. Depending on the application, degraded service or no service may be acceptable within the maintenance window.
The job of the uptime numbers are to look good (and sometimes to meet contractual obligations), more context doesn't make them sound better. Not being understood in layman's terms is a feature.
These companies are happy that you don't know the difference between 99%, 99.9%, and 99.99% and that you think they all sound pretty good.
As more and more things we might consider "platform" move to the cloud, I think it also matters what the service provider means by saying it's up. Just because the servers are alive and responding doesn't mean the platform is really functional.
One vendor in particular we deal with has a powerful feature which we use to a large extent. Unfortunately, that particular feature is all too often not working. The servers are up and the rest of the platform is working, but we need that feature, so if it's down, it doesn't help much that the rest of the platform is up.
These numbers are useful proxies for how likely you are to have your work disrupted outside of your own control.
If you do something 100 times a day against a four-nines service, you can reasonably expect that everything will succeed.
If you do something 10,000 times a day against a two-nines service, you can expect to hit a substantial number of errors during that day, or even have long periods where your work cannot happen at all.
People aren't frustrated with Github because Github has 98% uptime or whatever the specific number is. They're frustrated because it regularly interferes with their ability to work. The 98% number is just a concise way to say it.
Before 9's became a thing, people built systems that required outages, and those outages would happen outside of business hours.
However that's also why some transactions had to complete the next business day after they were registered. Because the whole business was running on offline processing (aka batch processing) that could be interrupted for upgrades, but had to be completed by the start of business the following morning.
My dad did one of those jobs, and my brain has made a bigger deal out of the times I awoke in the middle of the night to find him on the phone at the kitchen table at 2 am dealing with a war room call because an upgrade broke things that needed to be done in 5 hours. It probably only happened 3 times that I know about, and I probably knew about at least half of them, but it felt like it happened twice a year.
Separately from how you present the number, the very concept of "uptime" as a single number is a bit muddy in the context of a distributed system, where different components can be differently available for different users.
Also, 0.1% downtime in the form of a 45-minute outage per month is very different from 0.1% of requests failing in brief bursts. You often see downtime reported as "increased error rates" which is so vague as to be meaningless.
Exactly. If my build and test CI takes several hours and it gets interrupted, it really doesn’t matter how long the interruption was. It impacts me all the added time of realizing it stopped, investigating and confirming why it stopped, triggering another run, and continued monitoring.
If anyone was tracking that time they'd realize running your own build servers is cheaper. But capex is kryptonite to MBAs so you get a shitty unreliable cloud service instead.
There was a push to take the Datadog/whatever dashboard, full of lots of different meters and graphs and numbers, and simplify it all down to a single, easy-to-read-at-a-glance number. Which of course loses all sorts of details on what's actually going on, but it meant that someone who isn't an expert in the system could at least know if something is up or not. That's the trade off, and Goodhart's law applies. The reality is you can't meaningfully boil a complex system down to one simple number. Expertise is still required, and as with all leaky abstractions, to do a good job, you really do need to dig into the systems guts and get your hands dirty and really get to know the details.
I worked at a 4 1/2 nines (99.997) place and it was pretty standard to speak of half-nines at least (although on reflection, perhaps not everyone understood that 0.7 was 1/2 of 0.9 and thought 99.995 was "4 and a half nines") - we went from 3 nines in 2015 to 4 1/2 in 2025 (maybe slide back a little in 2026) - fun task but takes sustained high-level interest in reliability for a long time.
I don't think that people often understand that if reliability doesn't increase before an adoption cycle, the lack of it will limit the success of the adoption cycle.
If I'm tasked with getting a tool to be used at least 2x as much, my first task is to reduce the failures per 1000 runs by 4x. In that way, if adoption increases by 2.5, 3x instead of the the minimum we are looking for, then the number of errors reported per week still goes down instead of up.
We like to think of things as percentages but the moment they start increasing in the time domain everyone gets mad, because they asked for and received the wrong thing.
And that's on top of the fact that when people are 'forced' to use a tool, any errors they experience will be lumped onto the Learned Helplessness theater they've been engaging in to avoid being made to use a tool that is going to make all of our lives easier.
> So how about, and I’ll just throw this out there, instead of:
>
> GitHub Actions: 98.31% uptime.
>
> We say something like:
>
> GitHub Actions: 12 hours affected in the last 30 days (98.31% uptime).
The suggested format is equally unhelpful.
You can get 12 hours of downtime by being down once for 12 hours, or 144 times for 5 minutes. The user experience is VERY different in those two cases.
I don't think this is true - people struggle with exponentials. Most people can't intuitively grasp the staggering differences between 2 nines, 4 nines, and 6 nines of availability.
Why should the customer care about how hard 6 nines of availability is? That's the company's problem, and not the customer. If you want to make it more friendly you could just say "10 minutes downtime this week" instead of a percentage.
Wider audience started to use status pages because the service unreliability became so much more noticeable than before and not the other way around. I never had to use a status page for bear blog or protonmail because i never had and issue with it or just i never noticed.
I am now _required_ to consult status page of github, circleci or MS services etc because i need to know why a build is not passing, why i cannot open a repo, why is my work stalling.
Percentages matter, it is just so much more obvious why they matter when it comes down to important pieces of the internet like github. And i highly doubt the number of 12 hours in the last month. MS has been downplaying the issues they have with GH performance for a while now and i don't think it is time to start to believe them yet. Maintaining these pieces of infrastructure is responsibility and a burden.
Overall i would be careful with "nonlinear significance of numbers near 100%" we are talking gh being well into the 90's this year and one number that infra people are also often being reminded about is that "1% is 3.5 days".
Things are tough for gh people and i feel for them but they are not a startup or a underdog of some sort to receive sympathy in that case.
Yeah I'm at a point where I have a bookmark folder of status pages mostly for very large orgs because I've been using those pages relatively regularly. This is not something I felt the need for historically.
Downdetector also doesn't have a motivation to lie.
I've yet to find a status page that wasn't lying about the actual status.
Also 97% up is bullshit for the 3% of people who are offline.
Saucelabs was doubly bad for this because I'm absolutely certain based on traces that they had some sort of demux bug where they would send events from their tunnel to the wrong job. I could see it in the logs that a test timeout was often the cause of an event firing that was looking for something that never happened, because the event immediately preceding it in the script was never fired. Which meant it was either dropped or went somewhere it shouldn't.
Then it stopped one day and there was nothing in their release notes about it. Lies compounded by further lies.
That's just the most memorable example I have. Stuff like this happens all the time and with many services it plays out the same. There's a perverse incentive not to be transparent about problems with the service, so the status pages play down the intensity of the situation.
Isnt downdetector just people reporting its down though? Its useful for sure but not actually hooking into any officialy API or anything. Great for when the status page also goes down but surely a lag time
I go to status pages to find out if 1) I’m crazy, 2) if our IT fucked up DNS.
Every service I’ve ever paid for or someone paid for on my behalf has gaslit me about their status page because it’s impolitic and bad for sales to update the page before you know what’s going on, just because some users are reporting issues.
So a third party doesn’t have to deal with VPs kneecapping the engineers’ access to the status page. Or some services can’t update the status page when the site is hard down because they are so obsessed with keeping it up that they have no mitigations when they are down.
I was the one at my biggest gig that had to push to get static 404 and 500 pages uploaded to S3 so we could show something for vanity URLs even if customer ID lookup was down. And then a customer noticed they hadn’t updated since they changed their contact info and I found the job was timing out without an alert or deployment failure for five months. Five. Months. The guy who wrote it had quit, and he didn’t follow my advice on copying a batch job I’d poured way too much effort into. The damned thing was timing out after 50 minutes. I followed my own advice and got it to 4.5 minutes. Almost all of that time delta was waiting for fanout calls, which were pounding the shit out of consumer facing services. 90% of the calls he was making didn’t need to be made.
Do they do alerts ? Been also using UpDog (based on DataDog) which actually has been quite good. They have a single status page for many services who integrate their products
Microsoft has absolutely gone to shit in the past ~year. Github, Teams, Windows, Azure, Exchange, it's all been fucking trash. Github was running at 80% uptime for a few months, and if they're telling me they're at 98% or whatever now, then they're cooking the books, period. There's no way they're even that reliable.
What's going on at Microsoft? Are they just copy-pasting their github issue reports into copilot and hitting send it without doing code reviews?
Everyone got laid off. Massive cost cutting across all orgs. Engineers are now evaluated on AI usage and pull request frequency, and not bugs fixed or performance improvements.
About four years ago I did interview loops at GCP, Netflix, and Azure at the same time. The latter was a “hiring event” so all my interviewers were from different teams, either managers or TLs.
It was the interview equivalent of the multi-headed dragon meme, where the last one looks absolutely stupid. The contrast was insane, microsoft was an absolute shit show compared to the other two companies in terms of talent, personality, organization and more.
I think that illustrates the author's point quite well. 99% uptime sounds good, but when you think about a 3+ day outage that doesn't sound very good. Imagine Facebook or TikTok being down for 3 days.
Of course most of the time it's not all one outage, but a bunch of short ones. Still, it might communicate the impact better, especially depending on the argument you're trying to win.
I usually tell people you don't need as much reliability as you think.
Three nines reliability is great for most purposes. 8 hours downtime a year.
If your system produces money at a constant rate, it captures 99.9% of the available money. Even two nines or one nine might be pretty good on that basis, when the alternative is spending 2x or 10x as much - let's build another unreliable system with that money that captures some other independent market opportunity.
Poor reliability is a problem where you need to chain many systems together, or where the cost of a single failure is very large compared to a success. Or - as happens commonly because of load - if your periods of unreliability are correlated with periods of maximum opportunity, like an e-commerce site failing on Black Friday or a trading system failing when the market is most busy. But if you don't have one of those cases, evaluate whether investing in reliability is actually worth it to you.
GitHub is an example where two nines of reliability ought to be OK. The argument against it is that it's bad marketing to have an unreliable service, especially one aimed at software engineers. And if GitHub is largely a marketing play by Microsoft anyway (do they really make back its cost in enterprise subscriptions?) then marketing considerations need to drive its reliability.
Actually I think it's better if everything fails at once and everyone can take the day off (thanks, AWS!). Having your CI fail one day and your package repository the next might well cost you two days of productivity.
I fully agree with this take. We need to ensure we get every hour of work from our expensive engineers. This is why we got rid of coffee machines and bathrooms and moved to intravenous caffeine and other fluid drips and catheters. We cannot afford to lose productivity.
A short outage can snowball very easily in a lot of lost time. What I learned when working with enterprises is that above all they value reliability. This is for a reason.
A short outage might at best trigger loads of paperwork for multiple hierarchies, big meetings etc. The org has no choice. It needs to evaluate if whatever happens is a threat to their business.
In the worst case it is that, plus missing some crucial windows of delivery. This is because a system that is unavailable for a short time can cause backlogs that, like traffic jams, cascade as everyone has to slow down and then synchronously speed up again.
Orgs have the option to create more resilience, but that is overhead similar to compliance. You need to drill all your backup plans all the time, otherwise they are worthless. The drills cost time and money. At scale it is infeasible to be robust to all failures. Therefore, enterprises (at least) often prefer reliable systems over sophisticated systems. Because this delegates the risk management to the vendors rather than adding an overhead to every employee. Because at some point the employee would just do drills all the time instead of work.
One 12 hour outage is different to 12 1 hour outages at 3am which is different to 24 30 minute outages at 4:30pm when you're trying to commit something at the end of the day. Percentage and time are both flawed ways of looking at downtime.
Downtime really matters if it's at a time you need something to be up, and Github is big enough to have users for that to be all the time. That moves the conversation from 'It's down for a few hours a month' to 'Github is failing a significant number of it's users'.
One thing that is I feel missed about uptime percentage when compared to on premise uptime is when the downtime occurs. Its far more impactful if its in the middle of the working day or during the busy period of shopping. A store that goes offline in the middle of black friday or in the run up to Christmas is harmed a lot more than some down time on a Sunday night/Monday morning at 3am.
One thing I have noted over time is a lot of these AWS, Azure et el downtimes is they occur in the middle of everyones day, millions of people are impacted by them. Same with github its getting in the way of work. Whereas when we hosted services on our own equipment the downtime was usually out of main hours. The percentages are in many ways the wrong measure of downtime because hours aren't equal in impact to businesses.
Its not for you, its advertisement, to preemptively avoid both consumer and securities fraud accusations, and for their enterprise client’s IT security review and SLAs
98 comments
[ 0.23 ms ] story [ 66.3 ms ] threadLess reliable products aren't allowed to become bottlenecks in the first place, at least at any B-tier or better businesses.
Also, is anyone else getting the bitter taste of AI writing from this page?
Which is to say that the significance of downtime depends on the user. Talking about nines only makes sense internally when you are evaluating your infrastructure and operations. It doesn't tell you squat about impact to your customer.
> GitHub Actions: 12 hours affected in the last 30 days (98.31% uptime).
This is trying to shine the most favorable possible light onto a deteriorating situation. It doesn't take away from the fact that most businesses have measurable missed revenue in downtime. Customers that shop somewhere else, ads that were never severed, leads that grew a little colder. 12 hours of downed GitHub results in millions of dollars of lost developer productivity that was externalized by Microsoft to other companies.
We shouldn't be trying to spin downtime as "just a few hours a month." Those hours cost real dollars.
They're also completely irrelevant, you as a customer of a service that is down can lose the same amount of money in a 5 minutes outage or 30 days outage, if you were only relying on this service for one operation that took 1 second and had to happen during the time where the outage happened.
Depending on the service in question, no amount of downtime is acceptable, however unrealistic this is.
A lack of ads is an argument for more downtime.
Keep the percentages, and regardless of that - GitHub fix your uptime
Some measure quite detailled but some just don't summarize the downtime from all providers up and below their own platforms.
For example we had a 6 9 (99.9999%) requirement from a customer for any given 3-6 month period. If we violated that, we owed them their money back (baring the outage wasn’t caused by us - I.e our cloud provider shit the bed).
That’s something like 7.5 seconds. For a contract over $1.5M. Am I the only one who thinks that’s outrageous expectations?
This particular case was in cybersecurity- specifically static analysis of assets, for the purpose of providing a SBOM.
If you agree to those terms knowing it's unrealistic, you're agreeing to give away your service for free.
If it wasn't prorated anyone who approved the contract needs training and/or firing. If it is prorated, that is generally not a problem. Small outages aren't even worth the effort of trying to get the money back, and if you have a large enough one to make it worthwhile it is likely the prorated refund is still going to be laughably small.
But six nines gives you 7.9 seconds a quarter. If you run a multihost system, that translates to ~1s dead host detection and switch and 3-4 switches per quarter. It's acheivable with reliable hardware and reasonable software. Otoh, it's very hard to hit if you need to move traffic to a different location to respond to a no notice location failure (failed automatic transfer switch, all fiber paths severed by construction because the redundant paths were in the same bundle, etc). If you have an out for 'cloud provider failure', that probably covers location failures.
Often times a tight uptime promise like that also comes with maintenance windows. Depending on the application, degraded service or no service may be acceptable within the maintenance window.
These companies are happy that you don't know the difference between 99%, 99.9%, and 99.99% and that you think they all sound pretty good.
One vendor in particular we deal with has a powerful feature which we use to a large extent. Unfortunately, that particular feature is all too often not working. The servers are up and the rest of the platform is working, but we need that feature, so if it's down, it doesn't help much that the rest of the platform is up.
If you do something 100 times a day against a four-nines service, you can reasonably expect that everything will succeed.
If you do something 10,000 times a day against a two-nines service, you can expect to hit a substantial number of errors during that day, or even have long periods where your work cannot happen at all.
People aren't frustrated with Github because Github has 98% uptime or whatever the specific number is. They're frustrated because it regularly interferes with their ability to work. The 98% number is just a concise way to say it.
Before 9's became a thing, people built systems that required outages, and those outages would happen outside of business hours.
However that's also why some transactions had to complete the next business day after they were registered. Because the whole business was running on offline processing (aka batch processing) that could be interrupted for upgrades, but had to be completed by the start of business the following morning.
My dad did one of those jobs, and my brain has made a bigger deal out of the times I awoke in the middle of the night to find him on the phone at the kitchen table at 2 am dealing with a war room call because an upgrade broke things that needed to be done in 5 hours. It probably only happened 3 times that I know about, and I probably knew about at least half of them, but it felt like it happened twice a year.
Also, 0.1% downtime in the form of a 45-minute outage per month is very different from 0.1% of requests failing in brief bursts. You often see downtime reported as "increased error rates" which is so vague as to be meaningless.
Google's "windowed user-uptime" attempts to deal with this a bit better, by exposing different views of the data instead of trying to condense uptime into a single number: https://www.usenix.org/system/files/nsdi20-paper-hauer.pdf
Which then smoothly covers the entire space:
But good luck getting that standardized.If I'm tasked with getting a tool to be used at least 2x as much, my first task is to reduce the failures per 1000 runs by 4x. In that way, if adoption increases by 2.5, 3x instead of the the minimum we are looking for, then the number of errors reported per week still goes down instead of up.
We like to think of things as percentages but the moment they start increasing in the time domain everyone gets mad, because they asked for and received the wrong thing.
And that's on top of the fact that when people are 'forced' to use a tool, any errors they experience will be lumped onto the Learned Helplessness theater they've been engaging in to avoid being made to use a tool that is going to make all of our lives easier.
The suggested format is equally unhelpful.
You can get 12 hours of downtime by being down once for 12 hours, or 144 times for 5 minutes. The user experience is VERY different in those two cases.
Ultimately the graphs are the most useful format.
I am now _required_ to consult status page of github, circleci or MS services etc because i need to know why a build is not passing, why i cannot open a repo, why is my work stalling.
Percentages matter, it is just so much more obvious why they matter when it comes down to important pieces of the internet like github. And i highly doubt the number of 12 hours in the last month. MS has been downplaying the issues they have with GH performance for a while now and i don't think it is time to start to believe them yet. Maintaining these pieces of infrastructure is responsibility and a burden.
Overall i would be careful with "nonlinear significance of numbers near 100%" we are talking gh being well into the 90's this year and one number that infra people are also often being reminded about is that "1% is 3.5 days".
Things are tough for gh people and i feel for them but they are not a startup or a underdog of some sort to receive sympathy in that case.
I've yet to find a status page that wasn't lying about the actual status.
Also 97% up is bullshit for the 3% of people who are offline.
Saucelabs was doubly bad for this because I'm absolutely certain based on traces that they had some sort of demux bug where they would send events from their tunnel to the wrong job. I could see it in the logs that a test timeout was often the cause of an event firing that was looking for something that never happened, because the event immediately preceding it in the script was never fired. Which meant it was either dropped or went somewhere it shouldn't.
Then it stopped one day and there was nothing in their release notes about it. Lies compounded by further lies.
That's just the most memorable example I have. Stuff like this happens all the time and with many services it plays out the same. There's a perverse incentive not to be transparent about problems with the service, so the status pages play down the intensity of the situation.
Every service I’ve ever paid for or someone paid for on my behalf has gaslit me about their status page because it’s impolitic and bad for sales to update the page before you know what’s going on, just because some users are reporting issues.
So a third party doesn’t have to deal with VPs kneecapping the engineers’ access to the status page. Or some services can’t update the status page when the site is hard down because they are so obsessed with keeping it up that they have no mitigations when they are down.
I was the one at my biggest gig that had to push to get static 404 and 500 pages uploaded to S3 so we could show something for vanity URLs even if customer ID lookup was down. And then a customer noticed they hadn’t updated since they changed their contact info and I found the job was timing out without an alert or deployment failure for five months. Five. Months. The guy who wrote it had quit, and he didn’t follow my advice on copying a batch job I’d poured way too much effort into. The damned thing was timing out after 50 minutes. I followed my own advice and got it to 4.5 minutes. Almost all of that time delta was waiting for fanout calls, which were pounding the shit out of consumer facing services. 90% of the calls he was making didn’t need to be made.
What's going on at Microsoft? Are they just copy-pasting their github issue reports into copilot and hitting send it without doing code reviews?
It was the interview equivalent of the multi-headed dragon meme, where the last one looks absolutely stupid. The contrast was insane, microsoft was an absolute shit show compared to the other two companies in terms of talent, personality, organization and more.
I think that illustrates the author's point quite well. 99% uptime sounds good, but when you think about a 3+ day outage that doesn't sound very good. Imagine Facebook or TikTok being down for 3 days.
Of course most of the time it's not all one outage, but a bunch of short ones. Still, it might communicate the impact better, especially depending on the argument you're trying to win.
Three nines reliability is great for most purposes. 8 hours downtime a year.
If your system produces money at a constant rate, it captures 99.9% of the available money. Even two nines or one nine might be pretty good on that basis, when the alternative is spending 2x or 10x as much - let's build another unreliable system with that money that captures some other independent market opportunity.
Poor reliability is a problem where you need to chain many systems together, or where the cost of a single failure is very large compared to a success. Or - as happens commonly because of load - if your periods of unreliability are correlated with periods of maximum opportunity, like an e-commerce site failing on Black Friday or a trading system failing when the market is most busy. But if you don't have one of those cases, evaluate whether investing in reliability is actually worth it to you.
GitHub is an example where two nines of reliability ought to be OK. The argument against it is that it's bad marketing to have an unreliable service, especially one aimed at software engineers. And if GitHub is largely a marketing play by Microsoft anyway (do they really make back its cost in enterprise subscriptions?) then marketing considerations need to drive its reliability.
Probably I already ask them to spend 2+ days attending HR or compliance training or listening to senior management tell them about sales targets.
But the point is, that 1% extra productivity requires the sometimes staggering cost of making the software 10x or 100x more reliable.
A short outage can snowball very easily in a lot of lost time. What I learned when working with enterprises is that above all they value reliability. This is for a reason.
A short outage might at best trigger loads of paperwork for multiple hierarchies, big meetings etc. The org has no choice. It needs to evaluate if whatever happens is a threat to their business.
In the worst case it is that, plus missing some crucial windows of delivery. This is because a system that is unavailable for a short time can cause backlogs that, like traffic jams, cascade as everyone has to slow down and then synchronously speed up again.
Orgs have the option to create more resilience, but that is overhead similar to compliance. You need to drill all your backup plans all the time, otherwise they are worthless. The drills cost time and money. At scale it is infeasible to be robust to all failures. Therefore, enterprises (at least) often prefer reliable systems over sophisticated systems. Because this delegates the risk management to the vendors rather than adding an overhead to every employee. Because at some point the employee would just do drills all the time instead of work.
Downtime really matters if it's at a time you need something to be up, and Github is big enough to have users for that to be all the time. That moves the conversation from 'It's down for a few hours a month' to 'Github is failing a significant number of it's users'.
One thing I have noted over time is a lot of these AWS, Azure et el downtimes is they occur in the middle of everyones day, millions of people are impacted by them. Same with github its getting in the way of work. Whereas when we hosted services on our own equipment the downtime was usually out of main hours. The percentages are in many ways the wrong measure of downtime because hours aren't equal in impact to businesses.
Similar for LLM measures from an ideal 1.0 mark.