Earlier quoted context omitted.
Agreed. How could a company with "millions in revenue" not backup critical databases? Not only were they exposed to the threat of human error, but hardware failures, hackers, etc. When he submitted his resignation, the company should have encouraged him to stay. Instead, anyone at the company that had anything to do with the failure to implement regular database backups and the use of redundant databases should have…
It's the difference between understanding the incident (programmer makes mistake) and the root cause (failing at data integrity 101). Not just no backups, but no audit log of what's happened in the game - I'd expect an MMO to have an append-only event history quite apart from their state information.
How I Fired Myself
381–390 of 424 posts
Re: How I Fired Myself
#382Earlier quoted context omitted.
At one job I went with this scheme for terminal background color: green screen for development, blue for testing, yellow for stage / system test, and red for production. This saved a lot of problems because I knew to be very careful when typing in the red.
Interessting, I have been the only guy in my team who had the exact opposite colours. Green was production and red was testing (i didn't do any dev work, so). I guess that came from me being from produciton. But I should have payed more attention when working with other people on my machine, in hindsight... Luckily, nothing bad ever happened!
Re: How I Fired Myself
#383It certainly was -- on multiple levels, but ultimately up at the C-level. Blaming a single person (let a lone a junior engineer) for it just perpetuates the inbred culture of clusterfuckitude and cover-ass-ery which no doubt was the true root cause of the fuck-up in the first place.
Re: How I Fired Myself
#384Earlier quoted context omitted.
And worse, they had a backup service, and then dropped it to save money.
This sounds so unreal that I am having doubts about the veracity of the story and would defer any judgement before hearing from the "other side".
Re: How I Fired Myself
#385Earlier quoted context omitted.
I'll add another one: * No Foreign Keys Attempting to clear the table should have just thrown a constraint violation error.
Well, depending how you configure your cascade clearing the user table could have cleared all the other tables also :) "on delete cascade"!
You'd have to use TRUNCATE CASCADE on postgres to avoid the foreign key error.
Re: How I Fired Myself
#386Earlier quoted context omitted.
To say nothing of running development code against a production database. If there were only two junior folks, what were the senior folks doing?
The author makes mention of using a UI to connect to their db. If i was in a position over there i can see myself writing a script to clear out the tables i wanted. This reduces errors, but not the risk.
Re: How I Fired Myself
#387Earlier quoted context omitted.
I wish I could upvote this more. Production database? Seriously, they were one copy away from avoiding this whole outcome. CEO sounds incompetent as hell.
Hindsight is 20/20.
Re: How I Fired Myself
#388When I was 18 I took out half my towns power for 30 minutes with a bad scada command. It was my summer job before college and I went from cleaning the warehouse to programming the main SCADA control system in a couple weeks. Alarms went off, people came running in freaking out, trucks started rolling out to survey the damage, hospitals started calling about people on life support and how the backup generators were no…
I'm interested in knowing some more details regarding the architectural setup and organizational structure that would allow something like this to happen.
Re: How I Fired Myself
#389Earlier quoted context omitted.
Doing this kind of testing in a gold-plated, heavily-engineered way is hard. But that's not an excuse for not doing it at all. Just walking into your closet and pulling a cable gets you 80-95% of the testing you need, and is free. Setting up a sandbox and "restoring" a backup onto it and then doing some quick queries is likewise easy to do and eliminates huge chunks of the failure space of "bad backups". Really, this…
"walking into your closet and pulling a cable" is not free, if your planned disaster recovery is not a seamless failover, but a process to recover data with some work and limited (nonzero) downtime/cost to business. For example, our recovery plan for a financial mainframe in case of most major disasters was to restore the daily backup to off-site hardware identical to production hw; however, the (expensive) hardware…
How is this distinct from "Don't hack your systems to make them work. Absolutely do hack at them to test."? I don't see it.
This just sounds like "my business doesn't have the financial capacity to engineer data recovery processes". Well, OK then. Just don't claim to be doing it.