Brent Simmons had an ironic afternoon:
I posted about why I’m not running my own server — and then my site went down. …
The quick and obvious answer is that this site should be on my own server. But it’s more complicated than that.
Read both links.
Brent has run servers before, but mostly in the Bad Old Days when running servers was a lot more finicky. (Also, while I know Brent knows this, to be perfectly clear to everyone else: if you’re running a public-facing server in your house, office, or anywhere except a datacenter, you’re doing it wrong. Start over.)1
Modern Linux running on modern VPS services is a whole new world. People running servers just 10 years ago couldn’t even dream of how easy we have it today.
To answer some of Brent’s questions:
Or I could could get a VM — say the $5/month plan from Digital Ocean. For a static site I’d just need Apache or Nginx and a hard drive for my files. Sounds simple, and a gentle way to dip my toes into running my own server.
But would that actually be fast enough to handle a Marco-spike?
Definitely. This is a static site, and I host it with a basic, non-“tuned” Apache configuration on a 2 GB Linode. I bet I could get away with less.
There’s a limit to how much Apache can serve off a VPS, but I haven’t found it. Earlier this month, I had a traffic spike that brought about 55,000 pageviews in 24 hours and the server didn’t even blink. My highest-traffic day ever on this VPS was 113,000 pageviews, and again, no issues at all.
In fact, I’ve never heard of anyone’s static site being legitimately overloaded. But that wasn’t Brent’s problem, because I remember noticing a slow page-load when I first loaded the page, before I retweeted it. Dreamhost runs hundreds or thousands of sites on each server, so it’s anyone’s guess what else may have been happening on Brent’s server at the time.
And what happens if — again — I’m asleep, on a plane, or otherwise away from my computer?
The cheapest play, and best for me in terms of learning new things (which is not nothing), is the VM.
But could I sleep?
Mostly. And that’s the same answer I’d give for being the sole person responsible for any web service hosted on any platform.
Things go wrong on every platform. But the higher-level and more abstracted it is, the less you can do when things go wrong (which really annoys your customers), and the more you rely on opening support tickets and hoping the people on the other end do their job properly. (In my experience, across all hosts I’ve ever used, that happens about 50% of the time.)
For people venturing into VPSes or dedicated servers, use a decent external monitoring service that can alert you when your site is down (I use Pingdom). See how often it actually happens — it’s much less than you may assume.
If the reality of occasional freak downtime becomes bothersome, buy your host’s lowest monitoring plan that includes some kind of proactive response (e.g. they’ll reboot the server if it stops responding to HTTP checks). Find the level of host interaction that works for you. Their staff can’t scale your site for you if you’re growing like crazy, but the causes of most outages are much more boring and can be fixed with a reboot.
13 years ago, for a few months, Marco.org was hosted on an old computer with a Rubbermaid tub for a case (I had all of the parts necessary to build a second computer except a case), secretly running headless in my friend’s bedroom closet in his parents’ house while we were away at college. I don’t have a picture of the completed system, but this is how it looked running in a cardboard box before I got the Rubbermaid. I was an idiot. (Bet you haven’t seen another Pentium II motherboard with ISA slots.) ↩︎