this is mount fuji2009 was an awesome year. A lot of amazing things happened in the world of hosting (and a lot happened in the world of Harper too). Being a crazy hosting aficionado, I will summarize my thoughts on hosting in 2009 (I will leave the predictions for 2010).

Disclaimer: I am paid money by Rackspace to think about these things. However, I am an equal opportunity hosting consumer. I will try and be as open as possible (but probably a bit biased as well). This is on my personal blog and does not represent Rackspace in the least. These opinions are mine and do not represent Rackspace in anyway.

I guess I will go ahead and jump in. This is based on what I use and would most likely suggest if we were drinking beers and talking about hosting. Your mileage may vary. I am sorry if I end up causing a nuclear war based on these recommendations.

"Platforms"

Two platforms are really getting me going these days. Google's App Engine and Heroku.

App Engine is known by my close friends as my true love (haha. second only to my lovely wife). I spend almost 90% of my development time hacking on App Engine apps (Excla.im, CityPayments, ChicagoAlerts, Transitapi, AwesomeUpdater, and Harper's Friends). App Engine does a few things very well and allows the developer to do the rest. Quite a few of the lessons I learned while scaling out Threadless are baked into the app by default. You don't have to scale all the pieces independently and you can really take care of things all at once. I recommend it and use it for prototyping and building new apps.

Heroku! I go to Heroku.com I spend about 10 minutes playing with sliders, clicking on features and acting like I am going to deploy an app to their infrastructure. It's awesome. Heroku makes me want to learn ruby frameworks well and build applications fast. It seems that it might be expensive though. I would love to know if people have actually used it in paid production environments (i have only done hackings).

If you are interested in Django, Ruby/Rails or JVM languages (I am looking at you Scala!) - I highly recommend App Engine or Heroku.

"Cloud" Server Providers

Cloud Servers are amazing things. Usually they are XEN hosted and wrapped by an API or a nice pretty interface. I <3 them. If I would have had these server options in 2001 I would have been able to make the server kingdom I dreamt about. It would be awesome. Luckily, now in 2009/2010 I can build my server kingdom in the CLOUDS. Anyway....

Slicehost is my favorite. I really enjoy the user interface. I prefer websites with less buttons. Slicehost delivers. However, it doesn't explicitly have usage based billing (pay per hour) - which is why i am also excited about Rackspace Cloud Servers. Rackspace Cloud is everything you need to have fun with servers and host enterprise apps. My most recent Cloud server was used to pop up a VPN in Ubuntu so I could use public wifi without being frightened. It took about 10 minutes from deciding to do it, to connecting with my macbook pro. awesome.

EC2 is pretty sweet as well. It is the heavy duty infrastructure that powers so many awesome sites. I really like watching what Amazon is doing. Amazing stuff. I am super excited about booting from the EBS. However, I don't like the complexity that comes with EC2 by default. Which is why I only use EC2 if I need AWS specific utilities.

Sidenote: Linode is getting a lot of buzz based on their performance/cost ratio. I recommend you take a look at them and see if they will work for you.

If you do find yourself in the dark world of cloud servers, you should check out my favorite utility for managing all things servers: CloudKick. CloudKick is a pretty solid app that allows you manage your all your Rackspace and Amazon servers. You can do it very easily and with very few buttons (I love a small amount of buttons).

If you are looking for awesome easy servers - use Rackspace Cloud Servers. If you are looking for a full stack (load balancer, block storage and what not) - use Amazon. I use Rackspace Cloud Servers.

File Hosting and Serving.

File hosting is simple stuff. I follow this simple guideline:

If you want to host a file for everyone (i.e. a popular image, a iso, download etc) where performance is important - use Rackspace Cloud Files with limelight integration. This is the closest you will come to paying for enterprise CDN capabilities for a tiny amount of money. You can't beat the level of performance that limelight offers (unless you want to pay for Akamai).

If you need to put a BUNDLE of files somewhere that needs to be public or private - use Cloud Files or S3. Depending entirely on what vendor you like or what API you are most familiar with. I use both for backing up various data from my servers and home (I recommend s3sync, s3fs for S3 or MossoFS, CloudFiles/Duplicity for Cloud Files).

Multi Tenant/Shared Hosting.

Shared hosting is such a pain in the ass. ;) I really don't like it. However, I use it because of the price and because of how easy it is to host stuff for friends and others.

I use two providers regularly for shared hosting:

Webfaction is by far my favorite multi tenant hosting company. It is SUPER NERD. They have this unique approach to hosting based on proxying a bunch of servers through apache. This allows you to easily host a django app that has a rails component and a wordpress blog all at the same domain root. You can even compile your own build of whatever flavor of server you like best. Its a great place for prototyping servers and generally having a great time inlinux. Webfaction also has a developer community that offers great support. I host most of my personal stuff onWebfaction (this blog, harperreed.org, etc).

Rackspace Cloud Sites is a great multi tenant platform. I use it hosting various apps for your friends and family. It is a no brainer to light up a domain for my brother or friend and have them host it. The only problem I have with Cloud Sites is that sometimes you have to compromise your code to fit in their super scalable infrastructure. You will NEVER go down - but you might have to tweak your drupal or wordpress code to make it easy.

If file storage is just what you need - then check out Dreamhost. For the love of god they have cheap prices. I looked today and they were offering unlimited everything (that doesn't make sense). The only problem is that they don't allow you to use it as a backup service (you have to use the space in a very specific way).

Enterprise/Physical Servers.

Enterprise servers are easy. You use Rackspace. ;) Seriously though - while at Threadless, Rackspace saved our asses more than once. Using Rackspace allowed us to concentrate on our application rather than concentrate on our servers. Although they can be expensive - they offer so much that it is often worth it.

If you are looking for something a bit cheaper or a bit more hands on, I suggest my favorite chicago hosting company: FDCServers.net. They offer great support and cheap servers. You are not going to get near the support that Rackspace offers, but you are going to pay a LOT less. I host a couple big apps at FDC and have had no problems at all.

Conclusion.

This wraps up my hosting review. I recommend App Engine, Cloud Servers, Cloudfiles/S3 and Rackspace Managed hosting. heh. See - super easy. All your hosting questions are answered.

2010 is going to be an exciting year. I imagine that Rackspace and Amazon will continue to fight head to head. Which will only make us consumers have better options. I also am very excited to see what Google does with App Engine (I imagine that they will NOT be adding PHP support). I hope that 2010 is as productive as 2009 was for hosting, if so - then it will be an exciting, innovative time.

Leave your questions in the comments - I will attempt to answer them the best i can.