Why web hosting is hard.

Nate tries programming.

I am so jealous of Ebay.

Ebay is so easy.

Web hosting is hard!

At DreamHost, we average about 750 incoming support messages a day.

We also run DreamBook, a free online guestbook service with about 20 times the users as DreamHost, and it gets about one message a week. That’s five orders of magnitude less!

Why so few messages to DreamBook?

Well, apart from the fact that we make it kind of hard to find the support address, DreamBook is an entirely web-based application. That means we have full control over what our users are allowed to do, the interface they use to do it, and how the application interacts with our hardware configuration.

Since everything a user might possibly do with DreamBook was “invented here,” it’s always been pretty straightforward for us to fix problems, add requested features, make things easier to use, and generally keep things humming along. Every once in a while there’s a blip and some problems come up, but if it’s worth it we fix it, and then it never bothers us again. It’s nice to be an “Ebay” or a “SalesForce.com”, and to run just one web application (it’d also be nice to be making a fridgeload of money off it.)

Why so many messages to DreamHost?

Because web hosting is hard! It’s hard for customers and it’s hard for hosts. The web hosting business is essentially just renting out general computers to every Joe, Dave, and Sandy on the web for $7.95/month. Then, these shmoes and shmo-ettes try to install and run every application under the sun (not just Java).. not the least of which is their own custom stuff. I won’t even get into the fact that a good percentage of your own users are actively trying to crack the system!

Surprisingly often, these applications just don’t quite work. Or just don’t work with each other. Or just not with our setup. And since they’re not things “invented here”, we often have no idea what’s wrong or how to fix it. But our customers aren’t the half of it.. even our OWN system is made up of tons of different software packages we have very little control of. There’s MySQL, Squirrelmail, Postfix, Courier, Apache, Debian, PHP, Ruby (on Rails), Mailman, Jabber, SSL, EPP/RRP (domain registration protocols), Cybercash, Perl, Python, and all the various modules and libraries everybody needs installed for each of these.

Not to be brash, but the parts of the DreamHost system we have full control of generally work pretty well these days! The billing stuff, our web panel, our announcement lists, our rewards system, our one-click installs, our support system, all that garbage! Everything we’ve built from the ground up is pretty well understood and easily maintainable by us. And, like DreamBook, when bugs do pop up we can splat them quickly because they’re our bugs!

However, if pwcheck keeps dying on our mail machines because we’ve got 150,000 mailboxes in a cluster, there’s not much we can do other than rewriting the thing from scratch. As you can see above, Nate actually did re-write pwcheck from scratch.. that’s how critical it is to have a good understanding of components vital to your system!

As far as Internet businesses go, web hosting is hard.

(And as far as IDEs go, tablets suck.)