Tuesday, October 16, 2007

Start-up Chores: Getting a Reliable, Scalable Web Host

Our last chores post gained some unexpected assistance getting us into the Grand Central beta. Thanks Ginene for sending us the invites! We will think of you every time we get a call that forwards straight to the voice mail. =)

Okay... so we're now in month 2, starting month 3 of the project. One of the things that should be easy but for our somewhat unique situation isn't, is web hosting.

I've done a few ventures before where hosting was a cinch! We pick a random web host, ran with it for awhile and when the time and/or traffic came to a point where moving was necessary, we simply packed up our files and DB and moved. Having setup both on shared hosting and dedicated hosting, I really, REALLY can not recommend shared hosting. If you're looking to code a brochure site or having a blog on your own domain, that would probably work great for you. The price is great and using admin software makes setup a breeze. However, if you are starting a serious business, it's hard to justify all the risks that come with shared hosting.

- If someone writes inefficient code on your server, WHAM! Your service can slow to a crawl or worse, go down.

- If someone SPAMs from your server, your site/IP could potentially get blacklisted if sharing the same IP. On another note, if you don't have your own unique IP for your mail server, chances are you can't even send mass mail to a majority of your customers.

- If someone on your server gets the DIGG effect, you too may suffer as a result.

- If you need to install something that isn't already provisioned on the server, depending on who you're with you may get a yay or nay; which could severely affect your services.

Basically all of the above are things I don't want to worry about when I should be focusing on growing the business. I've actually hopped about 10 hosting providers in a span of 6 months before so I do have some experience in this field.

"If you are serious about running a marathon, get the right shoes."

So what's so special with what we're doing that this is now a topic for discussion? Well, being that we're an autos website, we do plan on having a huge inventory of cars on the site some day. (That some day being sooner than later.) If you think about it... storing multiple images for hundreds, thousands, millions of cars can take up quite a bit of space. While we were playing around with some preliminary numbers yesterday during our meeting, we worked it out to about 300 gigs worth of thumbnails and about a terabyte worth of full sized images. That's pretty funny because I think all the actual code for the site will probably be about two megs or less. (Maybe it's easier if we just ran a porn site.)

So when we're talking about these kinds of storage numbers... Uh... first off, no company I know offers a terabyte of storage on one drive on one dedicated server. The reason I'm even using that criteria is because anything beyond one drive will require special coding that I don't understand. Anything beyond one server will probably drain our wallets faster than Paris can shop in 3 minutes. So for our sake, I'm trying to keep this as simple as possible. (On another note, if you have the money, you can opt for NAS storage.)

So what to do? What to do?

Well, there's been a lot of talk about Amazon's amazing, web 2.0, startup friendly web services that can help businesses scale from zero to infinity and beyond in terms of storage, processing power and etc. The Amazon S3 (Simple Storage Solution) is of particular interest to me because of its capacity and the fact the data is saved redundantly. If we use it, we *may* save thousands a month by not buying three dedicated servers to start to anticipate traffic. Then again, if they are ever to change their pricing again, we may potentially be screwed.

In terms of raw processing power, Amazon also offers the EC2 (Elastic Computing Cloud) service. Like asp.net, elastic computing is beyond my understanding... especially since neither EC2 or S3 solution provides a simple way to setup a domain, emails and databases. I guess if we ever need to pull extended queries, maybe we can make use of EC2 separately from our servers but right now it's in beta and it's still a bit scary for me to commit to using the service.

So what else is out there? Well, The Planet, Rackspace, ServerBeach all offer great dedicated hosting with great support, but if we want to do one or two machine and do it right, we would most likely need RAID's, backups, etc. all of which will eat into our bottom line. Hrmm, still no good.

During my research, a guy had also recommended hosting in a VPS like environment, except on a Grid. A grid? Grid computing - marketed to me as a elastic computing cloud but spread across different machines with true IP's and the ability to setup databases w/o it disappearing into thin air if the server crashes. It sounds great and all, but is this really just a souped up shared hosting? Upon further research, it doesn't appear that way, though, until (IF) we use it, I'm really not sure if it will provide all that much more benefits than just having a few dedicated servers.

That's where we are for now... if any one has any hosting hookups or recommendations, we would love to hear from you. The goal of course, is to launch the business and not get stuck in an infinite loop trying to figure out how to change our code to work with various hosting environments. It'd be nice if there's a hosting environment that'll change to work with our code.

No comments: