Live data from Hacker News

Summary of the Amazon S3 Service Disruption

aws.amazon.com

201–210 of 535 posts

Re: Summary of the Amazon S3 Service Disruption

#201
post #43

Earlier quoted context omitted.

I think the article says he was authorized? Either way, at worst, he got fired.

I assume if they were unauthorized they would be fired, but since they were authorized shit happens. "Fire you? I just spent $10 million training you!"

Exactly - this person is now the expert on the error, and they can now impart this valuable knowledge to the organization.

Re: Summary of the Amazon S3 Service Disruption

#203

Earlier quoted context omitted.

You mean like range checking the input parameters to the command? =) SHUT DOWN S3? ARE YOU SURE? (y/N) :

Were it so easy. Likely more like "Shut down 73 servers? Are you sure? (y/N)": "Seventy-three? Wow, I hadn't realized our system grew that much. Probably a new backend dependency got added that I'm not familiar with yet; I'll look into it later." (Y)

Every sysadmin at my previous job (a Fortune 500) would stop the moment that number is off the expected by a few machines, just long enough to verify it's correct. That may be due to having made a mistake like this once. I know that's true in several other large shops, as well.

Source: I'm was the one the one they would call for our team... usually at 4:00 AM because one of our team members (which was also frequently me) didn't document something correctly.

Re: Summary of the Amazon S3 Service Disruption

#204

Earlier quoted context omitted.

Automation tends to make those kinds of errors worse rather than better. Perhaps more infrequent and of a different nature than before, but screwing up an automated action cascades much, much faster than a human initiated one. As a result, you have to watch things a good deal closer and build in more and tighter safe guards. For instance: https://thenextweb.com/shareables/2014/05/16/emory-universit... Note: Automatio…

> established playbook A playbook actually represents a lack of automation for a particular task. The playbook itself should be automated, with automated tests that validate its correctness.

I've heard (and sometimes pushed) this rhetoric before, but something should be well understood before it's automated. Things that happen very rarely should be backed with a playbook + well exercised general monitoring and tools. This puts human discretion in front of the tools' use and makes sure ops is watching for any secondary effects. Ops grimorae can gather disparate one offs into common and tested tools but they don't do anything to consolidate the reason the tools might be needed.

Re: Summary of the Amazon S3 Service Disruption

#206
post #167

Earlier quoted context omitted.

Or the root cause is a UI that allows mistakes like these.

If you have UI that allows to undeploy 10 servers, it will also allow to undeploy 100 servers. Unless you specifically thought about possibility that there might be lower bound of number of servers, which they obviously didn't before that. It's easy to talk about it after the fact, but nobody is able to predict all such scenarios in advance - there are just too many ways to mess up to have special code for all of the…

Or it makes you re-enter the quantity of affected targets as a confirmation, similar to the way GitHub requires a second entry of a repo name for deletion.

Re: Summary of the Amazon S3 Service Disruption

#208

Earlier quoted context omitted.

It's one of the reasons that silly guarantees like "twelve 9s of reliability" are meaningless. There are humans here. "Accidental human mishap" is gonna happen sometimes, and when it happens it's probably gonna affect a lot of data. Heck, at around 7 or 8 nines you have to account for the possibility that your operations team will decide that all your data is a vicious pack of timberwolves and needs to be defeated.

Note that's durability not reliability . You might not be able to get at it with every request (I think 99.99% is the target) but it'll still be there if you try again later.

The point is that at eleven nines, you're entering the realm of very rare/unlikely events that will also affect durability.

In other words, there's a lack of humility about "unknown unknowns".

Re: Summary of the Amazon S3 Service Disruption

#209
post #17

This part is also interesting: > While this is an operation that we have relied on to maintain our systems since the launch of S3, we have not completely restarted the index subsystem or the placement subsystem in our larger regions for many years. These sorts of things make me understand why the Netflix "Chaos Gorilla" style of operating is so important. As they say in this post: > We build our systems with the assu…

> Failure at every level has to be simulated pretty often to understand how to handle it, and it is a really difficult problem to solve well. Exactly. It seems likely that Amazon tests the restart operation, but it would be hard to test it at full us-east-1 scale. Running a full S3 test cluster at that scale would likely be a prohibitive expense. Perhaps the "index subsystem" and "placement subsystem" are small enoug…

> Perhaps the "index subsystem" and "placement subsystem" are small enough for full-scale tests to be tractable, but certainly not cheap, and how often do you run it?

Rough guide:

CT = cost of 1 full scale test with necessary infrastructure and labor costs added up

CF = amount of money paid out in SLA claims + subjective estimate of business lost due to reputation damage etc

PF = estimate of probability of this event happening in a given year

if PF * CF > CT, then you run such a test at least once a year. Think of such an expense as an insurance premium.

What Netflix does with their simian army is amortize the cost of doing the test across millions of tests per year and the extra design complications arising from having to deal with failures that often.

Re: Summary of the Amazon S3 Service Disruption

#210
post #153
post #8

> At 9:37AM PST, an authorized S3 team member using an established playbook executed a command which was intended to remove a small number of servers for one of the S3 subsystems that is used by the S3 billing process. Unfortunately, one of the inputs to the command was entered incorrectly and a larger set of servers was removed than intended. It remains amazing to me that even with all the layers of automation, the…

Look at the language used though. This is saying very loudly "Look, this isn't the engineer's fault here". It's one thing I miss about Amazon's culture- not blaming people when system's fail. The follow-up doesn't bullshit with "extra training to make sure no one does this again", it says (effectively) "we're going to make this impossible to happen again, even if someone makes a mistake".

Putting the capability to take down S3 in to the hands of a single engineer seems a bit much.

Is mere extra training the right solution here?

Maybe they need something like the procedure that's used in missile silos:

Not allowing the shutdown system to function at all without the explicit authorization of least two people.

Post reply on HN