When I started hosting websites for clients, I hosted them in-house, literally, in my house. This was nice because I had direct control over the servers and could quickly fix them or migrate data if there were hardware failures. But obviously, it does not scale very well when it comes to bandwidth, and if you need many servers, the power and cooling requirements can get out of hand.
GoDaddy
At the point when I felt my home setup was “obsolete”, I then took the plunge onto GoDaddy dedicated servers, 2 of them at the time. One was for websites and ran Windows 2003 Server with IIS. The other was a mail server and each had DNS running on them so I didn’t have to depend on/pay for a third-party DNS provider.
GoDaddy dedicated servers ended up being the biggest mistake I ever made. They ran well for a while, but then a worm of some kind crawled around their internal network and came in through some backend they use to manage the servers. I had everything well locked down, all Windows sharing turned off, including unneeded admin shares (C$, etc.) and had the firewall pretty tight. It took around 3 days to recover fully from the crash and even though the machines were virtually “destroyed”, I was fortunately able to FTP out all my customer data.
Crystaltech
I moved most of my ASP & .NET sites over to a Windows 2008 Server at CrystalTech. Including email (SmarterMail), which I love, but with the limited space on a Windows VPS, it is quickly filling up with email (people rarely delete things when using IMAP). I still use Crystaltech and they’ve been very stable, but their cost is quite a bit higher than other virtual solutions.
Slicehost
After the GoDaddy crash, all my PHP sites moved to virtual servers running Ubuntu with a standard LAMP stack. Apache got old real quick. It required constant tuning. I explored many web servers to find one with better performance, at one time, I had three setup for ALL my virtualhosts where all I had to do was stop all the web daemons, change the config of the one I wanted to use to 80 and just start that one, bring up all my sites on a different daemon. I finally settled on Cherokee and have NEVER looked back.
Slicehost, in my opinion, had HUGE potential at one time (pre-Rackspace buyout). The support was phenomenal, everyone in the company was open and reachable. I many times talked to the founder via chat and email. But all of that went down the drain with Rackspace and all Slicehost’s offerings and prices went stagnant.
I recently cancelled Slicehost completely after getting a hard to access domain, whose DNS was hosted with Slicehost, to change their nameservers to Linode’s.
Others
I’ve used a number of other minor providers from time to time that I won’t get too much into here. None of them seemed to be as “turnkey” as places like Linode and Slicehost when it came to the admin backend experience. They were either too complicated or did not even have some of the basics required for “full service” hosting.
Linode
Linode, so far (knock on wood), has been the best company I’ve ever done business with. Rock solid, great support at all hours, fast host servers, lots of datacenter locations, excellent control panel, iPhone app, etc. I can’t say enough to express my happiness with the service.
I currently host a number of VPS servers with them and have brought over a few clients onto their own server(s). We host everything from test servers to full production and even PBXs. All runs perfectly.
It will be a sad day in VPS hosting land if Linode ever gets bought out by some mega hosting company like Rackspace.
To end this up, decentralization has been the best thing I have done and it is multi-faceted. I separated websites onto multiple, less expensive virtual servers, which prevent ALL my sites from going down when something happens to one of them. I’ve moved most of my clients to Google Apps for Domains, both business and standard, for email.
My uptime has dramatically improved, my customers are happier and that’s what matters.
Dennis, are you still liking Linode better than GoDaddy? I'm trying to decide between the two =)