In the article he talks about living within a few minutes walk to work and telling too many people so they made him the emergency office guy. Same thing happened to me, foolishly told everyone hey I can see my apartment from here so I would get panicked calls to run in and shut down servers because the information security guy got a tip of an impending exploit about to be released on a holiday weekend with no way to do it remotely. Everyone else lived a ferry ride or commuter train away.
No because I imagined a future where instead of me being asked for emergency help I'd be expected to perform a list of tasks every weekend as the defacto facilities manager. They were already paying me a ridiculous salary at the time. I thought about bringing it up if they ever said no to any requests I had and they never did so simply accepted it was my mistake broadcasting too much information at work which I never repeated.
I received many strange requests like to come in Friday night while drinking at a concert and ransack the offices looking for a laptop or possible phone left behind that they suspected was triggering alerts by repeatedly trying to connect to a foreign server. "You want me to drunkenly rob the offices at night and walk out the lobby carrying a stack of laptops? Ok"
I lived in the building next door to my office, there was line of sight from the office into my apartment. I told all my colleagues which turned out to be a mistake because when I got bored of the job and started showing up late each day, I had no plausible deniability, my coworkers did not appreciate it.
Then the pandemic hit, entire city shut down, everyone ordered to stay at home but because my apartment building and the office were part of the same development, I could get into the office without going outside - technically not violating the “don’t go outside” orders.
The office building would have thousands of people occupying it on a normal pre-pandemic day and then suddenly it was just me (and a few security personnel). I went in each day, wandered the building, watered plants, shipped out equipment to people working from home, it was a fun time to be so close to the office. Everyone was stuck in their tiny apartments while I roamed half a million square feet.
I later found out that the security staff would watch me on CCTV day in day out, I was their entertainment. Eventually it started to feel like an extension of my home, infinite places to nap.
So, it’s not all bad, I highly recommend living next door to your office if there’s a pandemic.
If I would have 5min to work, I would probably be in the office most days. A 1 hour commute is something I want to avoid, not being in the office itself.
There's tons of substitutes, the ban on Halon wouldn't be why Jane St is using water.
Tons of people use "halon" when they are talking about general inert gas based fire suppression as there's not really a good short word for them otherwise.
The article reminds me of when Hurricane Sandy took out a bunch of New York DCs with 3+ feet of water and people were carrying diesel up stairs to keep generators running.
“The superhuman folks at the data center are hauling 55 gallon drums of diesel fuel up 17 flights of stairs. Assuming they're able to sustain a rate of transfer that exceeds the rate of consumption, the data center should run until electricity is restored. The latest estimate from Con Edison for lower Manhattan is 4 days. (The New York Stock Exchange will be open tomorrow, also running on generator power.)”
Probably on the 17th floor to put the generators closer to the loads and reduce transmission losses. Also reduces street level air and noise emissions (and avoids street level air intake)
With fuel storage on the same floor for a reasonable runtime, larger fuel storage in the basement and a pump (or two) to move fuel, you're well prepared for lots of things. As long as the fuel throughput on the stairs is better than the fuel use rate, then you're ok for as long as you've got people to move it. Which is ok for exceptional incidents.
Generators go on the 17th floor so they can vent out exhaust and heat. Pumps need to go in the basement because you can only suck a liquid up by one atmosphere, which is something like 30' for diesel, but you can push a liquid up basically as high as you want. This does, are you're pointing out, kinda stink if the pump itself is flooded, but the design's common and does make sense
In firefighting it is quite common to take in surface water using a submersible pump which is hydraulically driven by an engine on land - like the fire truck or a dedicated diesel. See for example [0][1]. Doing it this way means you aren't limited by elevation and don't need to carry special suction hoses for water intake.
It makes me wonder if anyone is paranoid enough to do the same for highrise fuel pumps: sure, the basement may flood, but when the pump in there is designed to flood it's a lot less of a problem! Place the actual power source several floors up, where flooding is impossible outside a The Day After Tomorrow-esque civilization-ending catastrophe and you should be fine.
I see. I thought it was an emergency power generator they brought in for this incident. When you see that sort of thing for buildings, usually it's just a big trailer on the sidewalk hooked up to the building mains.
More than likely that's where the available space was. Data centers many large generators and there may not always be space in the lower levels to fit them, especially if the data center was not one of the original tenants.
Sandy was wild. you couldn't get computers for love or money, everything was jammed up. we ended up with whatever hardware configs had been returned and sitting in a dell warehouse just to have enough machines so for a long time after you'd have a rack of the standard build and then a random machine with a fibre channel card.
shocking how much engineering you can get done when the normal process becomes impossible and waiting isn't an option.
Apparently it was a 30-person 5 gallon bucket brigade of customers, contractors, and volunteers all lining up to help fill tanks because of interconnection issues between the supplier they got and where they needed to fuel the tanks up with.
"... neither we nor the fuel company had the proper coupling to tie into that existing infrastructure."
Sometimes "DR" in your plans stands for "didn't realize".
I was working at a data center in the financial district during Sandy. That was quite the experience. For whatever reason, our building was one of the last to have power turned back on. We never had to move diesel by hand fortunately. We did have a fun moment early on where one of our generators needed to have most of its load reduced for a few minutes. There were a pair of external fuel filters that needed to be changed fairly frequently. They were meant to be redundant so you could change one at a time. By the time we were able to get a tech on site, they were so dirty that when we started switching to just one the generator came very close to stalling out. After some conversation we thought it was thought that if we could drop the load enough we should be able to get away with just one dirty filter for a short period of time. The only chance we had at that was to shut down all of our cooling units. The generator was on the roof, and I was coordinating the timing over radio. You could dedinitely hear the generator wasn’t happy, but it worked. As soon as the second filter was replaced I let everyone know it was time to turn all of the cooling units back on. No one responded, and after a pause I realized that meant that probably no one had heard me and things were getting hot fast. I sprinted back inside. On the way my radio dropped, so once inside I sprinted to all of the units to tell people to turn them back on. For some reason I didn’t think about grabbing someone else’s radio. That may have been a lucky mistake though, as I’m not sure what all of those compressors turning at at the same time would have done.
I had made sure to observe the filter replacement process in case we needed to do it again ourselves. We did, and the next time someone recorded me doing it so everyone could learn and we handled most I’d the rest of the swaps from then on.
There were a lot of memorable experiences that week or so.
I would have thought that backup generators would cumulatively run for maybe a few dozen days over their lifetime. How did the fuel filters get dirty so fast?
Diesel fuel has to be periodically filtered ("polished") by passing it through cans of dessicant. It removes accumulated water and prevents bacterial growth. There are also biocide additives but they just _extend_ the periods between maintenance.
That's also why it's not a great idea to use diesel for your backup home generator. It will go bad sooner than you expect, and then you're left with drums of gunk that you can't dispose and can't use.
And gasoline won't help you either. It goes bad even faster.
Propane tanks are the best option they can sit in storage indefinitely.
Or pull an AT&T in Nashville and depend on natural gas for your backup generators.
Which doesn’t quite work so well when an explosion cuts your electrics and the fire department cuts the gas.
If you do still decide to depend on another energy grid for an energy grid failure, at least have roll-up generator hookups so you’re not spending a few days figuring out how to wire that up…
The _fuel_ itself goes bad. Diesel will slowly accumulate dissolved water, and once it gets past a certain threshold, a lot of wonderful bacteria start to flourish in it.
So you get clumps of gunk in your fuel that rapidly clogs the filters.
Because a genset that runs once a month and has a fuel tank sized for days of wide open operations is a textbook recipe for asphaltane and other garbage build up. Which of course you won't notice until you actually run the thing for a day straight and the fuel filters start showing it.
We had the fuel filter issue at 55 Board street as well. After a few days we had to do a planned generator shutdown (the data center batteries could last a couple hours to give us coverage...) as a diesel mechanic flown in by Peer1 could service it. Props for handling that yourself!
Definitely a memorable week. I wonder just how many folks in Fidi were learning the finer points of emergency backup generators.
> “They had their brigade of people carrying five-gallon buckets up 18 flights of stairs or whatever it was to get to their auxiliary generator. Quite a task by those guys,” Orchard said.
5 gallons of fuel at a time (hopefully not in a literal bucket) is a lot easier than managing a big drum on stairs. Unless you have a powered stair dolly, but powering your stair dolly up 17 flights of stairs seems like a challenge too.
Carrying 5 gallons of fuel up a dozen or more flights of stairs is hard work on its own.
I've done this job. I only had to do it a few times per day, but it sucked each and every time.
(When I showed up due to a report of an outage for our client's gear at the top of the building, the street was flooded. Water was flowing into a giant metal grating in the sidewalk like something from a cartoon. This grating lead to the basement.
And that basement was where the electrical switchgear was.
Yes. And as someone who worked at Fog Creek at the time, that was a completely avoidable situation that should never have happened, and I'm absolutely gobsmacked we nearly had a repeat of it over a decade later.
Context: in 2012, I literally quit Fog Creek, largely over the fact that we had no backup strategy and I was told that a backup strategy was not feasible. I was "convinced" (paid a lot) to stay on for another two years to see if Kiln would succeed. On my way out of that meeting, I commented to a coworker, "I mean, what's the chance a hurricane hits Manhattan in the next 24 months?"
100%. The chance was 100%. And the only reason people had to haul open containers of diesel up 17 flights of stairs was because no one wanted to admit that the chance wasn't 0%.
Anyway, not sure what was going on with Jane Street here, but holding up that Fog Creek/Trello/SquareSpace story as a positive always drives me somewhat nuts. It lionizes a failure.
The story isn't as funny if I phrase it your way, but you are technically correct, which I'm aware is the best kind of correct. Although I suppose how wrong I am largely depends on how much you believe in the butterfly effect and free will
Probability is a way of expressing uncertainty. This is the core insight of Bayesian methods. That uncertainty is not an objective universal fact, though. It is specific to your state of knowledge.
If I flip a fair coin and don't look at it as it sits in my hand, the probability of heads is 50%. Your estimate should be the same. Before or after the flip doesn't matter because our state of knowledge is the same.
If I look (and you don't), the probability that it is heads from my state of knowledge is 100% or 0%. Your estimate would be unchanged because you didn't get any more information.
If somebody looks at the coin and tells you what they say, you estimate should be somewhat less than 100% or more than 0% depending on how much you trust them.
All of this is the long way around the barn to say that after the hurricane, the probability that Sandy hit Manhattan is definitely 100%. That's past tense probability, however. It is still also true that the best estimate a year before it hit would be much, much lower. Using words like "probably that a hurricane would hit Manhattan" makes interpretation much harder, of course, because of the uncertain time frame.
It seems to me you're conflating the probability of x happening in the future as assessed from some previous point in time versus the probability of x happening in the past as assessed from the present. Without clarification the wording is ambiguous but I think generally interpreted to mean the former. It would be quite odd to go with the latter as it's rather tautological.
I have never seen this definition used before. I was always taught that probability applies to future events. If I flip a coin the event has happened, me knowing or not knowing the outcome does not change it.
Now you can say after the coin is flipped and you still haven’t looked at the result that the probability of you guessing the correct outcome is 50%.
I don’t mean to glorify the poor planning or risk management, but still have a ton of respect for the people who organized the response and who did that hard work, just because it was what people needed.
My company during Sandy was operated in both NY and SF, and our experience was a bunch of us on the west coast filling in for those who were not only unable to get to the office, but without power themselves in NYC. It was all unfamiliar stuff for us (different business functions were done there, but the NYC office’s work was time critical) but did build camaraderie.
"Everyone coming together to solve a problem by any means necessary" still loses something if the problem is sufficiently imaginary.
Like, carrying fuel up 17 flights to keep a children's hospital powered on, or a MUD that's been running continuously since '93? Sure, inspiring as hell.
"Our company's product will be offline for a few days and we'll theoretically lose money/marketshare, but all our customers will be super understanding because they were all watching the news and, holy shit, did you see that tunnel get flooded, and then everything will turn back on and be fine with no extraordinary effort on our part...?"
> carrying fuel up 17 flights to keep a children's hospital powered on, or a MUD that's been running continuously since '93? Sure, inspiring as hell.
If MUD is the type of game you're falling into the same trap as the one you're signaling but worse. You're putting in the same sentence "saving kinds lives" and "the bragging rights for a game's uninterrupted session" on equal footing.
Before Jane Street I did more honest work helping gay men hook up as fast as possible via a proto-Grindr site. We were co-located downtown when 9/11 happened. They had diesel generators but they ran out of fuel after several days because the national guard wouldn't let the diesel supply trucks through.
When we went offline customers were super understanding!
Except one customer who was outraged and we felt totally comfortable banning their account.
"Our company's product will be offline for a few days and we'll theoretically lose money"
This was a startup. The company getting fucked could mean our jobs going away. It was our equity too.
Not everybody is just punching a clock, while resenting the owners of the company. In our case, we wanted our company to do well because we liked working together.
I think that's fair. I've been in situations where there are kind of "manufactured emergencies" which boil down to a sales conversation on a deadline which ends up getting rescheduled anyway. I have very little tolerance for that.
In the case of Fog Creek during Sandy, because the software we hosted provided planning and project management for a lot of people, going offline would have a pretty large ripple effect. Sure maybe 95% would've been fine, but I knew of customers who e.g. managed emergency services and crisis response, and so keeping them online was meaningful to me.
I'm surprised they didn't put a window washing crane on the roof as DR to simplify the raising of the diesel. The strange ass shit I've seen implemented to make the failure mode easier instead of eliminating the failure has limited my faith in our system as a whole.
None of us felt comfortable operating the crane or MacGyvering it to lift a barrel of diesel into the sky, and the building staff that could've done so was focused on bailing out the basement. It was something we talked about though :-)
That's fair, Rigging a barrel is a trick. It's actually pretty neat to watch an experienced rigger belt strap some oddly shaped item.
You can do a barrel knot, though with a modern metal barrel, you can also generally just do a hook on top an bottom and lift horizontally.
My comment was more about the goofy shit people do to make the failure mode simpler next time instead of eliminating the failure mode all together. Some of the places I've worked would probably have made one of us get trained on the lift or something instead of make sure we have the fittings on had or a fuel pump and hoses with 17 floors of head pressure. That would be the temporary fix and then when they got the quote for the pump it would become the fix.
I can understand your frustration, but let’s consider:
The chance of a hurricane within 24 months was never 100%. Looking back, it did happen, but you can’t judge future-facing decisions on post-hoc information that you didn’t have at the time.
There is a difference between “no one wanted to admit it wasn’t 0%” and “no one else thought the risk-adjusted return was positive.” When people decline to take some preventative measure, that’s usually what they’re saying implicitly.
I’ve been where you are—frustrated that you predicted and told people exactly what would happen, they didn’t listen, and you were right—many times in my career. It’s infuriating. Part of learning from it is figuring out how to get people to change, not merely figuring out how to be right.
My guess is that this kind of black/white Strong Opinions approach has bitten you throughout your career.
> in 2012, I literally quit Fog Creek, largely over the fact that we had no backup strategy and I was told that a backup strategy was not feasible
This anecdote hits differently for me. I grew up reading about Fog Creek and consuming all of their writings (and that one film) as an example of what a software development company should look like. It feels strange to have the curtain peeled back to reveal that something like backups, which would be considered basic requirements today, were not part of their early operations.
Fog Creek of 2012 was a pretty different company from the Fog Creek in the early 2000s. While Joel was still technically in charge he had mostly delegated responsibities and spent almost all of his time working on Stack Overflow.
But was "early Joel" FogBugz any good? I heard that it wasn't from somebody who tried it. That unsuccessful trial was also the only time I heard of anyone using it.
Waaay back in 2007ish I got Fogbugz for the small 3-man IT team that we were. As a small team hacking away on an internal ERP and minimal other apps, it was actually refreshing. In my prior role I'd used BugZilla and it was ok, but Fogbugz seemed pretty sweet for a small team. I've now been plodding away with Jira for many years and it's just feature-bloated slowness I'd go back to FogBugz in a jiffy.
It was sometime in the mid-2000s when I went from an admirer Joel's writings and what Fog Creek was doing to suddenly realizing it was all just very slick marketing on top of very mediocre stuff.
It really was a shocking wake up period for me in the realities of the real world vs. how we often perceive things.
IIRC it was the whole "Wasabi" thing that kind of opened up my eyes that there was a lot more smoke and mirrors involved than I had realized before.
As a long time Spolsky admirer, your post strikes me as true and makes me a little sad -- although I still benefited from the things he taught -- about specs, commoditizing your complement, hallway usability studies, schlemiel's algorithm. There was more than just fluff about fogbugz.
To play devil's advocate, paying some dudes to haul diesel for a few days every decade might be a lot cheaper than maintaining a fully redundant failover site 24/7.
A just a single day of labor would pay for a fuel pump and line so nobody has to carry fuel drums up a staircase.
Im all for doing some dirty work when needed, but if they expect 100% uptime they should be ready for something as common as a storm flood without risking injuries hauling fuel drums by hand.
Yeah but if there is an emergency you can buy a stand alone 60 PSI fuel pump for like $120 plus a roll of fuel line. That would get you half the height by itself if you put an empty barrel in between. And by either moving the pump or buying a second pump you could transfer it up to the top again in either a fuel barrel or straight into the generator tank. Probably 12V pumps because its an emergency and you need what is on the shelf, but that isn't any real obstacle for a temporary setup.
Hahaha, we tried! Aquarium pumps were all that we were able to source. "Serious" resources were being deployed (appropriately) to hospitals, etc., so we had to make due with what we already had on hand. Thankfully we had an office aquarium, so...
60PSI will raise diesel about 50m. That's less than 17th floor, but it's worse than that because at the top of that 50m pipe, you get zero flow.
If you drop back to 30m of lift, you get still have 36PSI which is enough to get some flow. But that means that you need a holding tank (or lots of buckets) and another pump for another 30m of lift. That gets you to the 16th floor so you need another holding tank and a another pump.
That's a lot of complication. And getting those pumps to sit still can be a challenge.
I don't think these buildings were storing fuel in the cellar with no plan to get it up to the generators. That would obviously make no sense. I believe the problem was that the pumps were, like much of the area, under a significant amount of water, and no longer worked.
I can appreciate that this is a fairly crazy-one off situation. But, I have seen similar decisions made and always appreciate when the "do nothing" course of action is objectively the right thing to do, and try to savor it, because it's such a rare thing these days.
A $previous_job, we had a large computing lab in the building which supported maybe 100 developers and QA folks, both in the office and remote. Power to the building frequently went out during storms, which we get a lot of in the midwest. We got _very_ good at making sure everything came back up more or less automatically after a power blip. Over the course of roughly a decade, there were two or three severe weather events that knocked out power over a wide area for days at a time.
Engineers kept clamoring for backup power. I.e., batteries and a generator. However, due to the layout of the building and the land it sat upon, installing a generator that could actually power the lab indefinitely was extremely expensive. When management ran the numbers, the engineering time lost (in dollars) over a year was significantly lower the cost to install the generator.
(Note that I'm being particularly vague on details here to ward off HN armchair analysts who will try to argue an opposing point with extremely incomplete data.)
In the end, we did end up installing a battery system that could run the lab for 15 minutes to survive power blips. But that was more about protecting the equipment (many millions of dollars) than saving engineering time.
> holding up that Fog Creek/Trello/SquareSpace story as a positive always drives me somewhat nuts. It lionizes a failure.
Firefighters are heroes who bravely enter burning buildings, beloved by children and adults alike, muscular figures who get pictured on sexy calendars and thanked by tearful families.
Officious paper-pushers who make a fuss about a few cardboard boxes stored under the fire escape stairs (like me!) seldom get pictured on sexy calendars.
A firefighter entering a burning building is literally risking his or her life at that moment. A paper pusher who works on preventing the fire in the first place is normally very far from danger.
Volcanic eruptions have an unpleasant tendency to be episodic, and onset can be far faster than hurricanes or wildfires. Best to minimize how much of your infra has even a (supposed) 0.001% annual chance of being affected.
> holding up that Fog Creek/Trello/SquareSpace story as a positive always drives me somewhat nuts. It lionizes a failure.
That's a common bias in management. Heroic fire fighting gets rewarded while silently preventing a crisis with proper planning isn't. Nobody ever gets credit for fixing problems that never happened.
That feels like Amazon's entire management philosophy. Always drop the most important thing to work on at a moment's notice because we need to put out the fires caused by not prioritizing the most important things to work on.
At one point we had 2 2pts in our group and the other manager’s performance for that year was based on operational excellence (is that no longer a thing)? We hadn’t grind ticket root causes for months, but on call went from being woken up multiple times a night to possibly never getting paged the whole week.
Unfortunately, that typically meant when you were paged, the problem was probably significant, hard, or it was another team and you were just being triaged in because you were affected or might be able to help root cause.
Anyway, I was the first Fog Creek employee on site at 55 broadway (one of our founders got their first, and two peer1 employees were also on site) and also part of the first wave of the "bucket brigade". Another dozen of us showed up over the coming hours as we assessed and fixed things.
The media coverage on this was never super accurate-- we were carrying (and later, relaying) 5 gallon covered plastic buckets (like the home depot buckets with sealed lids) up to the landing where the generator was to top up its reserve tank. At one point SquareSpace (who was also running exclusively out of this DC) hired a group of muscle to bring a 55 gallon drum up, but that wasn't us.
I don't view this as lionizing failure, though I can see your perspective. Across our products (then FogBugz, Kiln, Trello) we had different backup strategies in play, but we were definitely putting a lot of eggs in the local-datacenter-that-claimed-to-have-resilient-power basket. Kiln in particular had decided to use SANs for data resilience, and that proved particularly troublesome for trying to find a workaround once the storm hit-- FogBugz on the other hand was able to spin up an EC2 version and start a slow-but-would-have-worked-eventually migration (and we even had an employee hit the road for us-east-1 location with a bunch of encrypted backups so that we could get a fast data restore online), and Trello fast-tracked-and-completed its local-to-cloud migration. While it was true that the DC had a backup generator, the fuel tanks for the generator being in the basement and becoming unavailable was not part of their resiliency plan. I don't fault us for not catching that.
...although I did have to later write the dreaded "I'm sorry, we've been hacked" blog post as a direct consequence of us not properly deprovisioning a "temporary" AWS credential that we created during that sprint. I will fault us for not catching that.
Shortly after Sandy, I switched my role from core dev on FogBugz over to DevOps, and I built out the backup and restore resiliency we had been missing. It wouldn't have kept us online during Sandy, though.
It was dangerous, and a couple folks slipped and fell. That's not a good thing and I won't celebrate that. Many employees opted out of the bucket brigade for family, safety, or personal reasons. I threw out all the clothes I wore that week as they reeked of diesel... not great.
I wouldn't wish that experience on anyone, but having come through it with fortune and no slip-and-falls, I still think about:
- Walking around FiDi post storm and seeing the flooded tunnels, clogged with cars that had been washed into them from the street parking.
- Dropping off big armfuls of coffee and bagels in the lobby for the building work crews. The folks who were essentially dredging out the basement and getting the building back online did much harder work than us.
- Going shopping for aquarium supplies in order to best jerry-rig the pump that our founder has repurposed from the office fish tank in order to transfer diesel from the drums on the curb into our 5g buckets.
Something that kept me going was that I knew that one of our FogBugz customers was the emergency response service in Haiti, and they got absolutely walloped by the storm. They were using FogBugz to coordinate relief, so there wasn't any way I was going to let FogBugz go offline if I could help it. Turns out that meant climbing a lot of stairs.
> Across our products (then FogBugz, Kiln, Trello) we had different backup strategies in play, but we were definitely putting a lot of eggs in the local-datacenter-that-claimed-to-have-resilient-power basket. Kiln in particular had decided to use SANs for data resilience, and that proved particularly troublesome for trying to find a workaround once the storm hit-- FogBugz on the other hand was able to spin up an EC2 version and start a slow-but-would-have-worked-eventually migration
The issue that I remember was that we had so many SQL Server databases that it was impossible to keep anything vaguely approaching a sane backup strategy; SQL Server just isn't designed to handle as many as we had. (I in fact remember talking to a famous SQL Server consultant [edit: this was likely Brent Ozar] we were using who said "that won't work," and then I or someone else was tasked with talking to a SQL Server dev at Microsoft about it and they ALSO said that it couldn't work, and when I brought this up, I was told that Microsoft was wrong. IIRC, the implication was that it would take an extremely long time (many days) to restore, and that the snapshots would likely be days old. I don't think any of that contradicts your memory about the very a slow restore going on, but might add some color.
(Likewise, Kiln supported multiple backend instances and had admin commands to copy and move repos between them, so it the SAN had specifically been the issue, we had workarounds that would've been fine with whatever EBS was up to those days. But I remember the databases being the blocker.)
It was indeed Brent Ozar! Yes, that's all right, though a huge amount of the bottleneck was the off-the-shelf backup tooling we were using. In particular we couldn't move a database between servers without minutes-to-hours of downtime per one database, _and_ as our database count grew our time-to-take-a-backup grew _faster_ eventually meaning that by the time we did a full backup run, we'd be due to run another full backup run.
Our "One database per tenant" model was also the reason we were so slow to go to AWS-- the MSSQLServer licensing terms were cost-prohibitive.
However recognizing that around 90% of the FogBugz databases were free-tier and didn't get daily changes meant that teaching the backup scripts to skip creating redundant backups solved most of the issue.
Post-Sandy, I was able to solve most of this by:
1) Shipping full, diff, and incremental backups at different schedules
2) Scripting the ability to create warm standby servers powered by the latest fulls, then diffs as they come online, then the logs at the cutover time. (so you can provision a new server and seamlessly cut over to it)
3) Using our own scripts instead of the RedGate tool (which was _fine_ just not equipped to handle as many DBs as we had) to orchestrate the backups and restores. This in particular was needed for the "only back up modified dbs" fix.
This got us to most of what we wanted-- 0-downtown transitions of databases across servers, nightly offsite backups, fast backup runs. The final problem-- if our datacenter evaporated and we had to reprovision everything from scratch -- was left as an acceptable risk of "we'll fetch the nightlies from s3/Glacier while we do the slower part of rebuilding our servers."
But to your point, during Sandy, none of the above had been fixed yet. I think our sysadmin team was very strong, but they weren't programmers (and/or didn't have enough time to step back and program), and I was able to pick a lot of low hanging fruit in DevOps
I mean this with love, but dude, you put your health (short term and long term) at risk over a web app? I think you need to reassess your life priorities. You work so that you can live and enjoy life. You don’t live just to be a worker.
There is no reason that they couldn’t have had more than 1 DC when Sandy hit.
I hear you, and agree with your spirit. I never felt in danger and was choosing my risks throughout the day. I'd also see folks working much more dangerous jobs than me all throughout FiDi trying to handle cleanup.
I guess it helps that I grew up in a rural place and did construction for a while, so lugging gas to a generator wasn't a new thing for me.
Also I was... 25? I'd be more cautious today, I think.
Life priorities are not static, when faced with once in a lifetime scenarios they will change very quickly. Rational thought during emergencies often goes out the door.
Seems to me it is more likely that someone did the calculations and figured it is cheaper to send a bunch of unlucky morons up the stairs with jerrycans in case of flooding.
Unlucky moron here... eh, it's like the 5th order effect of the planning. Somebody definitely calculated it wasn't worth the money to maintain a hot offsite data center, and for the most part that felt ok because we had a profit sharing component to our salaries. But I don't think anyone could have drawn a line from that to the fact that Peer1 wasn't resilient to flooding.
It's such a familiar engineering story. Heroic effort means someone, somewhere, screwed up.
I aim for boring competence so nobody has to plugs gaps in systems and processes with their literal body sometimes.
> The article reminds me of when Hurricane Sandy took out a bunch of New York DCs with 3+ feet of water and people were carrying diesel up stairs to keep generators running.
Awesome, story time! I was working at a not brand new but still relatively small tech company (~$100m yearly revenue) and we were in two major datacenters, one in Las Vegas, and another in Manhattan. We were essentially telephony in the cloud, back when that was still fairly novel. At the time, most of our revenue came from handling various 1-800 campaigns, like "Ronco Knives" if you remember that, and also big money raising telethons. Our platform was active/active between the two datacenters. Of course not for a given phone call, but we could pretty easily balance traffic between both datacenters, even fully away from one of them, though as we'll see later, at some peril.
Our main networking guy was also the main datacenter person, and he'd been in NY to help set us up there. I can't remember which datacenter it was, but we had like half of a floor well above the street.
I was watching Sandy carefully, and once the odds of it hitting Manhattan were substantial, I started to press for plans to move all traffic out of the NY datacenter no less than 24 hours before landfall.
The network guy disagreed; he said that he'd been there, on site. He saw the redundant generators. The redundant network ingress and egress. The site people joked that if somehow the first floor ever flooded, the the rest of the datacenter would continue operating normally.
I noted that while all that might be true, we don't have any such assurances for all of the other equipment that'll be underwater needed to support the network.
I ended up escalating to our boss, the head of operations. He was one cube over. :) We had a vigorous discussion, and the VP agreed to pull our traffic out of NY. So we did.
Probably 75% of our capacity at the time was in LV and 25% in NY. We were running pretty hot utilization wise, but LV could, under normal circumstances, handle the whole platform by itself.
Sandy came and flooded. Generators kicked on. The network stayed up. Then the DC/networking guy got an emergency call from the datacenter.
They had plenty of fuel on site, but it turns out that the fuel inlets for the generators were...under water and could not be reached. So everything was going to go down in a couple of hours.
And it surely did, for reasons I've forgotten, in a very crappy way. Our logs indicated that power hard flapped for all of our equipment quite a few times.
We lost quite a few PSUs due to that. Yes, we definitely should have shut our equipment down cleanly. Oops.
That one tested a lot of assumptions in planning for sure. I recall that we had a sound DR strategy, however it turns out, our main site was in Newyork and the DR site was in New Jersey to save costs and still be compliant. Good learning for sure.
>The article reminds me of when Hurricane Sandy took out a bunch of New York DCs with 3+ feet of water and people were carrying diesel up stairs to keep generators running.
Sandy power disruption always reminds me of this photo - burned into my brain - https://archive.is/DoZsr
I'm surprised they located their datacenter in NYC.
The NYSE, NASDAQ, and most other exchanges and brokerages run in datacenters in Cartaret, NJ and Mahwah, NJ. I can't think of a good reason why anyone would put a datacenter in Manhattan.
It was another time. Only big companies had dedicated data centers; the rest had an air-conditioned room in the office. That was before the "cattle, not pets" era, too: they would have a database server called "Debbie", a DNS server called "Denise", a file server called "Felix", etc.
100% this. It was almost weekly that we had to go to the DC to do something hands-on with the equipment, so having that be a 5 minute walk from our office was a huge benefit.
I remembered going to our data center in Long Island City and labeling all drives and pulling them from the servers and putting them in a box and took them home.
One of the best decisions I made around that time was installing two backup Towerstream lines. When everyone else was out for weeks we were up and running, full operation.
The IT person for McKinsey & Company said water came within feet of destroying all of the data for the firm and its clients. That led them to stand up a second DC.
Odd that they didn't have at minimum 1) a physical Emergency Power Off (EPO) button inside the datacenter, such that one button could de-energize everything -- usually required as part of building a datacenter due to code variance for the "low voltage" (<4000V in this context...) wiring. 2) EPO interlink to the smoke alarms, such that it would de-energize equipment automatically (maybe with delay) if smoke detected.
You'd generally not want to have the sprinklers go off while things were energized, but there could be a mechanism to monitor flow, and only cut power if sprinklers were actually sending out water. But even if this was present, your first priority would be for the sprinklers to not go off as there would be a lot of clean-up / drying needed after the fact.
Unless you have a mist system (NFPA 750), sprinklers put out a lot of water.
I wonder why the answer was to turn off the servers instead of turn their cooling back on. Would it not be able to stabilize the temperature fast enough?
The real answer is probably lost in the sands of time but even at 200 people we still had different teams with overlapping responsibilities. It's possible I was the only person reachable and close enough after hours, and while I didn't know where the CRAC unit controls were I did know how to rip power cords out.
The gas is used first, then water as a fallback. I'm not sure if sprinklers are required by code in all data centers, but they would be in an office building setup like Jane Street's.
> every minute, ask every server in each location directly for the temperature from its onboard sensors, take the average, and if it’s elevated, blast an alert out to everyone on the systems team to check for datacenter overheat.
I've once done the opposite: the office "server room" (a small room with three racks, two of them for the patch panels, one for the servers and switches) was cooled by a mini-split which was prone to locking up with the compressor enabled (the relay which controls the compressor got stuck) and freezing, which then stopped the air from circulating due to all the ice. I wrote a script which ran on one of the servers which read the ambient temperature through IPMI to detect when the room was too cold, email a warning, and power off (using ssh) the neighboring servers and then itself.
He had to deal with so much absolute bullshit to get the diesel generator I mentioned in the story done, and then Hurricane Sandy destroyed it instantly a few years later.
I specifically remember a TV commercial many years ago (15-20 maybe) that was trying to show the sophistication of the company with an anecdote of how when looking at some other company as a potential investment, considered if they used sprinklers in their data centers and determined that they did not. I could have sworn the company advertising was Jane Street.
Interesting. The Sequence of Operations we write for the data halls I work on specifically do not shut down the CRACs on smoke alarm for this reason. The International Mechanical Code (IMC) specifically allows this where a air handler over 2000 cfm serves only one space because it's recognized that it will not spread smoke around a building. 2000 cfm is the threshold where you typically have to install smoke detectors, and typically they do shut down on smoke detection.
The CRAC won't feed a fire oxygen as it's just recirculating the same oxygen depleted air.
While CRACs won't recirculate oxygen, they can move air past sprinklers faster than they can handle which can delay operation, typically 5 fps. Although that's only if you are using sprinklers, clean agent is a different matter.
Yep, it is part of the design. The sprinklers are sometimes pre-action like described in the article, and sometimes clean agents. The only time we shutdown CRACs is if we EPO the whole room because otherwise some variant of this article happens.
They'd be shutdown by a dry contact that may variously be coming from the VESDA (Very Early Smoke Detection Apparatus), or an internal smoke detector, or a duct mounted smoke detector. Not as simple as flipping an obvious switch on a front panel.
First, the guy probably wouldn't have keycard access to whatever room contained such a switch. Second, it's highly unlikely that the system would be able to cool the room fast enough to avoid hitting the temperature limit.
Incidentally, we actually had a fire in the office building I worked in long ago. The HVAC didn't shut down, and smoke started to come out of random vents throughout the building. It was chaos. And yet, plenty of workers wanted to finish and send that email they were working on, commit code and push it to the remote server, etc. What sticks with me most is the one guy, a very senior manager, running around yelling at people to get off their computers and get out of the building, because no job is ever worth your life.
I’m surprised by the pulling cords by hand part. Did they really not have an emergency power off wired up to a shunt trip or some other device to efficiently cut the power? Isn’t this mandatory, even? Especially in a datacenter in an office building?
Having been in a situation where I had to emergency shutdown a (small) data-center in an office building, the person doing this is not necessarily an electrician or someone who knows where the breakers are, and if they do find them, if it's safe to mess around with them.
This would be the one time I get to hit the EPO button (which this DC seemed shockingly too ghetto to have) for our breakers and it not being a resume-generating event.
193 comments
[ 1.6 ms ] story [ 12.2 ms ] threadI received many strange requests like to come in Friday night while drinking at a concert and ransack the offices looking for a laptop or possible phone left behind that they suspected was triggering alerts by repeatedly trying to connect to a foreign server. "You want me to drunkenly rob the offices at night and walk out the lobby carrying a stack of laptops? Ok"
Then the pandemic hit, entire city shut down, everyone ordered to stay at home but because my apartment building and the office were part of the same development, I could get into the office without going outside - technically not violating the “don’t go outside” orders.
The office building would have thousands of people occupying it on a normal pre-pandemic day and then suddenly it was just me (and a few security personnel). I went in each day, wandered the building, watered plants, shipped out equipment to people working from home, it was a fun time to be so close to the office. Everyone was stuck in their tiny apartments while I roamed half a million square feet.
I later found out that the security staff would watch me on CCTV day in day out, I was their entertainment. Eventually it started to feel like an extension of my home, infinite places to nap.
So, it’s not all bad, I highly recommend living next door to your office if there’s a pandemic.
[1] - https://en.wikipedia.org/wiki/Bromotrifluoromethane
So fire suppression and data centers don't mix too well
Tons of people use "halon" when they are talking about general inert gas based fire suppression as there's not really a good short word for them otherwise.
33 Thomas St is basically one huge datacenter, that's why it doesn't have any windows. https://en.wikipedia.org/wiki/33_Thomas_Street
“The superhuman folks at the data center are hauling 55 gallon drums of diesel fuel up 17 flights of stairs. Assuming they're able to sustain a rate of transfer that exceeds the rate of consumption, the data center should run until electricity is restored. The latest estimate from Con Edison for lower Manhattan is 4 days. (The New York Stock Exchange will be open tomorrow, also running on generator power.)”
https://news.ycombinator.com/item?id=4720388 (https://web.archive.org/web/20121101194314/http://status.fog...)
https://arstechnica.com/information-technology/2012/11/how-o...
With fuel storage on the same floor for a reasonable runtime, larger fuel storage in the basement and a pump (or two) to move fuel, you're well prepared for lots of things. As long as the fuel throughput on the stairs is better than the fuel use rate, then you're ok for as long as you've got people to move it. Which is ok for exceptional incidents.
It makes me wonder if anyone is paranoid enough to do the same for highrise fuel pumps: sure, the basement may flood, but when the pump in there is designed to flood it's a lot less of a problem! Place the actual power source several floors up, where flooding is impossible outside a The Day After Tomorrow-esque civilization-ending catastrophe and you should be fine.
[0]: https://hytrans.com/product/hydrosub-150/
[1]: https://www.youtube.com/watch?v=pLJT4On5naA
https://x.com/BrettHarrison/status/2117636364304892206
shocking how much engineering you can get done when the normal process becomes impossible and waiting isn't an option.
This was in 2012, not 2002. Not having your DC in your office was well known by then to be a bad model especially for a DMM, NYSE itself knew this.
I worked for a MM, we were ready to open the next day because we were in actual datacenters.
Apparently it was a 30-person 5 gallon bucket brigade of customers, contractors, and volunteers all lining up to help fill tanks because of interconnection issues between the supplier they got and where they needed to fuel the tanks up with.
"... neither we nor the fuel company had the proper coupling to tie into that existing infrastructure."
Sometimes "DR" in your plans stands for "didn't realize".
I had made sure to observe the filter replacement process in case we needed to do it again ourselves. We did, and the next time someone recorded me doing it so everyone could learn and we handled most I’d the rest of the swaps from then on.
There were a lot of memorable experiences that week or so.
That's also why it's not a great idea to use diesel for your backup home generator. It will go bad sooner than you expect, and then you're left with drums of gunk that you can't dispose and can't use.
And gasoline won't help you either. It goes bad even faster.
Propane tanks are the best option they can sit in storage indefinitely.
Which doesn’t quite work so well when an explosion cuts your electrics and the fire department cuts the gas.
If you do still decide to depend on another energy grid for an energy grid failure, at least have roll-up generator hookups so you’re not spending a few days figuring out how to wire that up…
Best info I found was on Reddit: https://www.reddit.com/r/sysadmin/comments/kk3j0m/nashville_...
So you get clumps of gunk in your fuel that rapidly clogs the filters.
Definitely a memorable week. I wonder just how many folks in Fidi were learning the finer points of emergency backup generators.
> “They had their brigade of people carrying five-gallon buckets up 18 flights of stairs or whatever it was to get to their auxiliary generator. Quite a task by those guys,” Orchard said.
5 gallons of fuel at a time (hopefully not in a literal bucket) is a lot easier than managing a big drum on stairs. Unless you have a powered stair dolly, but powering your stair dolly up 17 flights of stairs seems like a challenge too.
I've done this job. I only had to do it a few times per day, but it sucked each and every time.
(When I showed up due to a report of an outage for our client's gear at the top of the building, the street was flooded. Water was flowing into a giant metal grating in the sidewalk like something from a cartoon. This grating lead to the basement.
And that basement was where the electrical switchgear was.
It was bad. It stayed bad for a long time.)
Context: in 2012, I literally quit Fog Creek, largely over the fact that we had no backup strategy and I was told that a backup strategy was not feasible. I was "convinced" (paid a lot) to stay on for another two years to see if Kiln would succeed. On my way out of that meeting, I commented to a coworker, "I mean, what's the chance a hurricane hits Manhattan in the next 24 months?"
100%. The chance was 100%. And the only reason people had to haul open containers of diesel up 17 flights of stairs was because no one wanted to admit that the chance wasn't 0%.
Anyway, not sure what was going on with Jane Street here, but holding up that Fog Creek/Trello/SquareSpace story as a positive always drives me somewhat nuts. It lionizes a failure.
If I flip a fair coin and don't look at it as it sits in my hand, the probability of heads is 50%. Your estimate should be the same. Before or after the flip doesn't matter because our state of knowledge is the same.
If I look (and you don't), the probability that it is heads from my state of knowledge is 100% or 0%. Your estimate would be unchanged because you didn't get any more information.
If somebody looks at the coin and tells you what they say, you estimate should be somewhat less than 100% or more than 0% depending on how much you trust them.
All of this is the long way around the barn to say that after the hurricane, the probability that Sandy hit Manhattan is definitely 100%. That's past tense probability, however. It is still also true that the best estimate a year before it hit would be much, much lower. Using words like "probably that a hurricane would hit Manhattan" makes interpretation much harder, of course, because of the uncertain time frame.
Nobody talks like this in real life. I can't even believe someone bothered to write multiple sentences to try and justify it.
Now you can say after the coin is flipped and you still haven’t looked at the result that the probability of you guessing the correct outcome is 50%.
My company during Sandy was operated in both NY and SF, and our experience was a bunch of us on the west coast filling in for those who were not only unable to get to the office, but without power themselves in NYC. It was all unfamiliar stuff for us (different business functions were done there, but the NYC office’s work was time critical) but did build camaraderie.
"Everyone coming together to solve a problem by any means necessary" still loses something if the problem is sufficiently imaginary.
Like, carrying fuel up 17 flights to keep a children's hospital powered on, or a MUD that's been running continuously since '93? Sure, inspiring as hell.
"Our company's product will be offline for a few days and we'll theoretically lose money/marketshare, but all our customers will be super understanding because they were all watching the news and, holy shit, did you see that tunnel get flooded, and then everything will turn back on and be fine with no extraordinary effort on our part...?"
If MUD is the type of game you're falling into the same trap as the one you're signaling but worse. You're putting in the same sentence "saving kinds lives" and "the bragging rights for a game's uninterrupted session" on equal footing.
When we went offline customers were super understanding!
Except one customer who was outraged and we felt totally comfortable banning their account.
This was a startup. The company getting fucked could mean our jobs going away. It was our equity too.
Not everybody is just punching a clock, while resenting the owners of the company. In our case, we wanted our company to do well because we liked working together.
In the case of Fog Creek during Sandy, because the software we hosted provided planning and project management for a lot of people, going offline would have a pretty large ripple effect. Sure maybe 95% would've been fine, but I knew of customers who e.g. managed emergency services and crisis response, and so keeping them online was meaningful to me.
Quitting a job because of this is so funny to me. 2012 was truly a different time.
If there was electricity to run the window washing crane, they wouldn't need to haul diesel.
You can do a barrel knot, though with a modern metal barrel, you can also generally just do a hook on top an bottom and lift horizontally.
My comment was more about the goofy shit people do to make the failure mode simpler next time instead of eliminating the failure mode all together. Some of the places I've worked would probably have made one of us get trained on the lift or something instead of make sure we have the fittings on had or a fuel pump and hoses with 17 floors of head pressure. That would be the temporary fix and then when they got the quote for the pump it would become the fix.
For once , the name fits lol
The chance of a hurricane within 24 months was never 100%. Looking back, it did happen, but you can’t judge future-facing decisions on post-hoc information that you didn’t have at the time.
There is a difference between “no one wanted to admit it wasn’t 0%” and “no one else thought the risk-adjusted return was positive.” When people decline to take some preventative measure, that’s usually what they’re saying implicitly.
I’ve been where you are—frustrated that you predicted and told people exactly what would happen, they didn’t listen, and you were right—many times in my career. It’s infuriating. Part of learning from it is figuring out how to get people to change, not merely figuring out how to be right.
My guess is that this kind of black/white Strong Opinions approach has bitten you throughout your career.
This anecdote hits differently for me. I grew up reading about Fog Creek and consuming all of their writings (and that one film) as an example of what a software development company should look like. It feels strange to have the curtain peeled back to reveal that something like backups, which would be considered basic requirements today, were not part of their early operations.
It really was a shocking wake up period for me in the realities of the real world vs. how we often perceive things.
IIRC it was the whole "Wasabi" thing that kind of opened up my eyes that there was a lot more smoke and mirrors involved than I had realized before.
Or you could label it Hyrox/Crossfit/$FITNESSTREND and charge people money to do it. #barrelpump #verticalmarathon #fitnessgoals #blessed
Im all for doing some dirty work when needed, but if they expect 100% uptime they should be ready for something as common as a storm flood without risking injuries hauling fuel drums by hand.
If you drop back to 30m of lift, you get still have 36PSI which is enough to get some flow. But that means that you need a holding tank (or lots of buckets) and another pump for another 30m of lift. That gets you to the 16th floor so you need another holding tank and a another pump.
That's a lot of complication. And getting those pumps to sit still can be a challenge.
A $previous_job, we had a large computing lab in the building which supported maybe 100 developers and QA folks, both in the office and remote. Power to the building frequently went out during storms, which we get a lot of in the midwest. We got _very_ good at making sure everything came back up more or less automatically after a power blip. Over the course of roughly a decade, there were two or three severe weather events that knocked out power over a wide area for days at a time.
Engineers kept clamoring for backup power. I.e., batteries and a generator. However, due to the layout of the building and the land it sat upon, installing a generator that could actually power the lab indefinitely was extremely expensive. When management ran the numbers, the engineering time lost (in dollars) over a year was significantly lower the cost to install the generator.
(Note that I'm being particularly vague on details here to ward off HN armchair analysts who will try to argue an opposing point with extremely incomplete data.)
In the end, we did end up installing a battery system that could run the lab for 15 minutes to survive power blips. But that was more about protecting the equipment (many millions of dollars) than saving engineering time.
Firefighters are heroes who bravely enter burning buildings, beloved by children and adults alike, muscular figures who get pictured on sexy calendars and thanked by tearful families.
Officious paper-pushers who make a fuss about a few cardboard boxes stored under the fire escape stairs (like me!) seldom get pictured on sexy calendars.
A firefighter entering a burning building is literally risking his or her life at that moment. A paper pusher who works on preventing the fire in the first place is normally very far from danger.
That's a common bias in management. Heroic fire fighting gets rewarded while silently preventing a crisis with proper planning isn't. Nobody ever gets credit for fixing problems that never happened.
Unfortunately, that typically meant when you were paged, the problem was probably significant, hard, or it was another team and you were just being triaged in because you were affected or might be able to help root cause.
Anyway, I was the first Fog Creek employee on site at 55 broadway (one of our founders got their first, and two peer1 employees were also on site) and also part of the first wave of the "bucket brigade". Another dozen of us showed up over the coming hours as we assessed and fixed things.
The media coverage on this was never super accurate-- we were carrying (and later, relaying) 5 gallon covered plastic buckets (like the home depot buckets with sealed lids) up to the landing where the generator was to top up its reserve tank. At one point SquareSpace (who was also running exclusively out of this DC) hired a group of muscle to bring a 55 gallon drum up, but that wasn't us.
I don't view this as lionizing failure, though I can see your perspective. Across our products (then FogBugz, Kiln, Trello) we had different backup strategies in play, but we were definitely putting a lot of eggs in the local-datacenter-that-claimed-to-have-resilient-power basket. Kiln in particular had decided to use SANs for data resilience, and that proved particularly troublesome for trying to find a workaround once the storm hit-- FogBugz on the other hand was able to spin up an EC2 version and start a slow-but-would-have-worked-eventually migration (and we even had an employee hit the road for us-east-1 location with a bunch of encrypted backups so that we could get a fast data restore online), and Trello fast-tracked-and-completed its local-to-cloud migration. While it was true that the DC had a backup generator, the fuel tanks for the generator being in the basement and becoming unavailable was not part of their resiliency plan. I don't fault us for not catching that.
...although I did have to later write the dreaded "I'm sorry, we've been hacked" blog post as a direct consequence of us not properly deprovisioning a "temporary" AWS credential that we created during that sprint. I will fault us for not catching that.
Shortly after Sandy, I switched my role from core dev on FogBugz over to DevOps, and I built out the backup and restore resiliency we had been missing. It wouldn't have kept us online during Sandy, though.
It was dangerous, and a couple folks slipped and fell. That's not a good thing and I won't celebrate that. Many employees opted out of the bucket brigade for family, safety, or personal reasons. I threw out all the clothes I wore that week as they reeked of diesel... not great.
I wouldn't wish that experience on anyone, but having come through it with fortune and no slip-and-falls, I still think about:
- Walking around FiDi post storm and seeing the flooded tunnels, clogged with cars that had been washed into them from the street parking.
- Dropping off big armfuls of coffee and bagels in the lobby for the building work crews. The folks who were essentially dredging out the basement and getting the building back online did much harder work than us.
- Going shopping for aquarium supplies in order to best jerry-rig the pump that our founder has repurposed from the office fish tank in order to transfer diesel from the drums on the curb into our 5g buckets.
Something that kept me going was that I knew that one of our FogBugz customers was the emergency response service in Haiti, and they got absolutely walloped by the storm. They were using FogBugz to coordinate relief, so there wasn't any way I was going to let FogBugz go offline if I could help it. Turns out that meant climbing a lot of stairs.
The issue that I remember was that we had so many SQL Server databases that it was impossible to keep anything vaguely approaching a sane backup strategy; SQL Server just isn't designed to handle as many as we had. (I in fact remember talking to a famous SQL Server consultant [edit: this was likely Brent Ozar] we were using who said "that won't work," and then I or someone else was tasked with talking to a SQL Server dev at Microsoft about it and they ALSO said that it couldn't work, and when I brought this up, I was told that Microsoft was wrong. IIRC, the implication was that it would take an extremely long time (many days) to restore, and that the snapshots would likely be days old. I don't think any of that contradicts your memory about the very a slow restore going on, but might add some color.
(Likewise, Kiln supported multiple backend instances and had admin commands to copy and move repos between them, so it the SAN had specifically been the issue, we had workarounds that would've been fine with whatever EBS was up to those days. But I remember the databases being the blocker.)
Our "One database per tenant" model was also the reason we were so slow to go to AWS-- the MSSQLServer licensing terms were cost-prohibitive.
However recognizing that around 90% of the FogBugz databases were free-tier and didn't get daily changes meant that teaching the backup scripts to skip creating redundant backups solved most of the issue.
Post-Sandy, I was able to solve most of this by:
1) Shipping full, diff, and incremental backups at different schedules
2) Scripting the ability to create warm standby servers powered by the latest fulls, then diffs as they come online, then the logs at the cutover time. (so you can provision a new server and seamlessly cut over to it)
3) Using our own scripts instead of the RedGate tool (which was _fine_ just not equipped to handle as many DBs as we had) to orchestrate the backups and restores. This in particular was needed for the "only back up modified dbs" fix.
This got us to most of what we wanted-- 0-downtown transitions of databases across servers, nightly offsite backups, fast backup runs. The final problem-- if our datacenter evaporated and we had to reprovision everything from scratch -- was left as an acceptable risk of "we'll fetch the nightlies from s3/Glacier while we do the slower part of rebuilding our servers."
But to your point, during Sandy, none of the above had been fixed yet. I think our sysadmin team was very strong, but they weren't programmers (and/or didn't have enough time to step back and program), and I was able to pick a lot of low hanging fruit in DevOps
There is no reason that they couldn’t have had more than 1 DC when Sandy hit.
I guess it helps that I grew up in a rural place and did construction for a while, so lugging gas to a generator wasn't a new thing for me.
Also I was... 25? I'd be more cautious today, I think.
Not everyone is built the same, thankfully.
Awesome, story time! I was working at a not brand new but still relatively small tech company (~$100m yearly revenue) and we were in two major datacenters, one in Las Vegas, and another in Manhattan. We were essentially telephony in the cloud, back when that was still fairly novel. At the time, most of our revenue came from handling various 1-800 campaigns, like "Ronco Knives" if you remember that, and also big money raising telethons. Our platform was active/active between the two datacenters. Of course not for a given phone call, but we could pretty easily balance traffic between both datacenters, even fully away from one of them, though as we'll see later, at some peril.
Our main networking guy was also the main datacenter person, and he'd been in NY to help set us up there. I can't remember which datacenter it was, but we had like half of a floor well above the street.
I was watching Sandy carefully, and once the odds of it hitting Manhattan were substantial, I started to press for plans to move all traffic out of the NY datacenter no less than 24 hours before landfall.
The network guy disagreed; he said that he'd been there, on site. He saw the redundant generators. The redundant network ingress and egress. The site people joked that if somehow the first floor ever flooded, the the rest of the datacenter would continue operating normally.
I noted that while all that might be true, we don't have any such assurances for all of the other equipment that'll be underwater needed to support the network.
I ended up escalating to our boss, the head of operations. He was one cube over. :) We had a vigorous discussion, and the VP agreed to pull our traffic out of NY. So we did.
Probably 75% of our capacity at the time was in LV and 25% in NY. We were running pretty hot utilization wise, but LV could, under normal circumstances, handle the whole platform by itself.
Sandy came and flooded. Generators kicked on. The network stayed up. Then the DC/networking guy got an emergency call from the datacenter.
They had plenty of fuel on site, but it turns out that the fuel inlets for the generators were...under water and could not be reached. So everything was going to go down in a couple of hours.
And it surely did, for reasons I've forgotten, in a very crappy way. Our logs indicated that power hard flapped for all of our equipment quite a few times.
We lost quite a few PSUs due to that. Yes, we definitely should have shut our equipment down cleanly. Oops.
Sandy power disruption always reminds me of this photo - burned into my brain - https://archive.is/DoZsr
sandy was a wreck
the only time i remember executing on DR plans (which went well!)
(i became a consultant by the time covid hit, so i didn't get to do the whole covid scramble every sysadmin did)
The NYSE, NASDAQ, and most other exchanges and brokerages run in datacenters in Cartaret, NJ and Mahwah, NJ. I can't think of a good reason why anyone would put a datacenter in Manhattan.
This is the actual NYSE datacenter https://maps.app.goo.gl/Da1E6Je9eJAGA1RK8
This is the actual NASDAQ datacenter https://maps.app.goo.gl/ZS9VJcZmf8VtvWEd6
One of the best decisions I made around that time was installing two backup Towerstream lines. When everyone else was out for weeks we were up and running, full operation.
You should have billed as an emergency courier for $50k.
Having moved 55 gallon drums around with a hand cart I don't think anyone is carrying them up stairs. They weigh 400 pounds!
* https://www.f-t.com/post/emergency-power-off-in-data-centers
EPO disconnects for generators was around earlier than the above:
* https://www.mgiepss.com/blog/emergency-power-off-epo
You'd generally not want to have the sprinklers go off while things were energized, but there could be a mechanism to monitor flow, and only cut power if sprinklers were actually sending out water. But even if this was present, your first priority would be for the sprinklers to not go off as there would be a lot of clean-up / drying needed after the fact.
Unless you have a mist system (NFPA 750), sprinklers put out a lot of water.
I smell AI
I've once done the opposite: the office "server room" (a small room with three racks, two of them for the patch panels, one for the servers and switches) was cooled by a mini-split which was prone to locking up with the compressor enabled (the relay which controls the compressor got stuck) and freezing, which then stopped the air from circulating due to all the ice. I wrote a script which ran on one of the servers which read the ambient temperature through IPMI to detect when the room was too cold, email a warning, and power off (using ssh) the neighboring servers and then itself.
https://signalsandthreads.com/the-thermodynamics-of-trading/
He had to deal with so much absolute bullshit to get the diesel generator I mentioned in the story done, and then Hurricane Sandy destroyed it instantly a few years later.
https://youtu.be/EYJLeuUjMlU?is=lzmEC-Q_bJ93FTgG
The CRAC won't feed a fire oxygen as it's just recirculating the same oxygen depleted air.
Why not just turn the CRAC back on?
> you don’t trust the automation unless there’s a big red-painted, mechanically connected lever you can pull to turn it off
Seems like this is one of those cases where you want to override the automation.
Incidentally, we actually had a fire in the office building I worked in long ago. The HVAC didn't shut down, and smoke started to come out of random vents throughout the building. It was chaos. And yet, plenty of workers wanted to finish and send that email they were working on, commit code and push it to the remote server, etc. What sticks with me most is the one guy, a very senior manager, running around yelling at people to get off their computers and get out of the building, because no job is ever worth your life.
Building fires are no joke. Get the F out.