Dan Connolly's tinkering lab notebook

Exploring the Web Hosting Marketplace

The client I develop hh-office for is seeing poor performance, so I'm shopping for web hosting alternatives.

LAMP on Dreamhost: it's easier than thinking

The app is an ordinary PHP/MySQL app with a few python bits and bobs. When I originally deployed it in late 2011, I knew:

  1. Lots of people used dreamhost
  2. Lots of people complain about dreamhost.

But it's not clear that the complaints about dreamhost indicate anything other than popularity. After all, as the IndieWebCamp folks say, picking a web hosting service is in some ways like picking a cell phone provider, and we all complain about our cell phone providers, don't we?

Shared Hosting, VPS, and System Administration

The first performance remedy I tried was the dreamhost $15/month VPS hosting upgrade, but it made little difference. I didn't read the documentation carefully enough to notice that the database is on a separate server. I think I saw some database-related upgrade options, but in drupal performance discussion, dreamhost is notorious for poor MySQL architecture and hence performance. So I went shopping for alternatives.

I tried the LAMP Stack by bitnami on Amazon EC2, but the hourly fees stareted to add up. One VM is more than enough for this app and I guess I should have known that scalable cloud hosting isn't cost-effective if I'm not using the scalability.

So I returned to exploring the overcrowded shared hosting marketplace. justhost and site5 were nominated in the drupal discussion, as was arvixe. I looked to see if any of them had free trials, and I was reminded of ownCloud hosts with free plans, one of which was arvixe. I might have liked to chat with other KC PHP devs, but I was too impatient to wait for the next meeting, so based on arvixe's delightful sign-up experience its hostjury reviews, I went ahead and paid a few dollars to experiment with their shared hosting for a month.

What jumped out at me, after experimenting with a couple VPS platforms, is the economy of scale in system administration services with shared hosting. For just a few dollars a month, not only will they install wordpress or phpBB for a few clicks, but they will administer mailing lists, backups, log files, and databases.

I suppose I could have tried NearlyFreeSpeech.Net. For less than a dollar a month, it works fine for static sites like this blog. But while but while they support everything this app needs (PHP, MySQL and installing python from source), I don't wouldn't expect performance to be better than dreamhost on their shoestring budget.

Plus, I could see my boys making good use of the one-click phpBB installer and such.

In the long term, here's hoping docker drives the price of PAAS services like Heroku down to this price range and diversifies their feature set to include mailing lists.

Arvixe over Dreamhost?

As I explored arvixe, I had a little hiccup getting shell access, but live chat support took care of it fast enough that I didn't really lose stride.

After claims that they "provide the latest Python version," I was a little disappointed to see that this means they let you build it from source. Oh well; I had to do that on dreamhost too; it seems to be par for the course and it takes just a few minutes.

Bandwidth seemed OK, not that downloading on the server is relevant to my app:

[~]# wget
... 14,725,931  2.76M/s   in 9.5s 

After copying the ~120K records about ~10K clients, the app did seem to respond a little quicker on arvixe, though I don't have any hard data. I did see that PHP and the MySQL database were running on the same server.

A Summary of My Experience with Web Hosting Services

I missed out on the first ten or fifteen years of this marketplace, since I was in something of a bubble provided by the W3C systems team.

Since then, these are the services I have used, with the one I'd most likely use again on top:

  • domain registrar:
    • namecheap
      • A consequence of their transparent pricing model is deposit fees. Namecheap's scale seems to hide such things.
    • gandi
      • International credit card transactions are a little inconvenient.
  • DNS management (connecting domains to hosts)
    • namecheap
    • Amazon Route5
      • Was great when the only alternative was bind config files!
  • Shared hosting:
    • arvixe
    • NearlyFreeSpeech.Net
      • Image bandwidth seems limited, for understandable reasons.
    • dreamhost
      • Docs suggest a long, heavy legacy (reminds me of W3C in that way).
  • blogging SAS:
    • wordpress
    • blogger
      • Cheaper than blogger for bring-your-own-domain service, but you get what you pay for.
  • PAAS
  • VPS:
    • AWS EC2
    • dreamhost