How I picked RailsPlayground
After using Dreamhost for two years, I decided to find a new host this year. I had a good deal on the Dreamhost hosting since I signed up for two year term using one of the coupons floating around on the web. However, they got pricey after the two year deal expired. They charge $11/month for their month to month option which for me is not worth it since I mostly used the web space to share files and host the occasional page. In addtion, I was worried they may kick me off if I exceeded their unpublished real limits (see No overselling below). So, I started shopping around. This was the criteria I was looking for:
No overselling: I was wary of hosts that were obviously overselling. Especially those offering you 500GB of disk space and 5TB of bandwidth for $11/month. Or, 1500GB of disk space and 15TB of bandwidth for $10.50/month. Such hosts are known for kicking users off for using too much disk space or bandwidth even though the users are within the limits of their plan. My main concern with overselling is that I will lose my files if I exceeded some arbitrary limit. Overselling is also an indication that the host is overloading their servers. A overloaded server will perform poorly even when your site is lightly accessed, this will turn away your users even before you have a chance to be popular.
SSH access: SSH stands for Secure SHell. It is a method to securely access files on a remote machine. SSH makes it easy to manage and configure files for your website. Since you can directly access your files, you can add, delete, and modify files without going through the control panel. For example, I was able to download, unzip, configure, and install this blog directly through SSH. Doing the same though a control panel like cpanel takes a lot of tedious steps. Some hosts disable SSH access since this can be a security risk. However, SSH is not a security risk if the host machine is properly configured. So, a host offering SSH access is an indication that the hosting company is competent and able to properly set up servers.
Documentation: There are many ways to set up a server and the documentation offered by a host is a kind of instruction manual on how to use their systems. I have a script that queries a database and send me an e-mail every day. In order to set up the e-mail, I need to be able to use the host’s systems to automate the job and use their e-mail servers to send out the e-mail. Of course it is possible to figure out how to do it by trial and error, but having a guide saves a lot of time and frustration. A host can have a wiki, a forum where you can ask questions, or have very responsive techs. No matter the method, ensure that you can get help when you run into a dead end.
Language and Framework Support: You want to pick a host that supports the languages that you want. For example, I am interested in learning Ruby on Rails (RoR) and so I looked for a host that primarily supported Ruby and RoR. Others may be interested in languages like PHP, Perl, Python or frameworks like Django or Catalyst. Check that the host has the latest stable version installed and supports it. Use google to find users that are successful with that language on that host, you will also find people that are dissatisfied with that host. This is an indication that this may not be the place for you.
After picking out your requirements, it is time to go shopping. I knew of a few big companies and a few small ones. I also used Google to check out their reputation and find reports from their users. Of course, you have to be careful with user reviews since competitors can also put out false information. But, generally if there are more bad reports than good then it is time to drop that host from consideration.
Dreamhost: I used Dreamhost for two years and I was happy with their service. Of course I never did anything to tax their servers so I was below their radar. The fact that they oversell and that the machine I was on always had a load of 4-5 indicated that they had too many customers on each server is primarily the reason why I dropped them from consideration. A load of less than 1 is generally considered acceptable.
GoDaddy: GoDaddy is the domain registrar I use for my domains and their service has been good, although they try to sell you their services at every opportunity. They are a new contender in the hosting space, having only added their hosting business in the past year [Edit 6/20/2008: I guess they have been hosting for almost 10 years, although I just noticed it last year. Corrected by Alicia of GoDaddy] . They appear to do some overselling, but not as much as Dreamhost. I dropped them from consideration because they did not allow more than one domain or have RoR support on their cheapest plan. In addition, the version of rails they offered was 1.1.2 whereas the must current version at the time of writing was 2.0.2. Otherwise, they were very attractive. Their cheapest plan only cost $4.29/month and came with 10GB of disk space.
Slicehost: Slicehost offers the most bang for your buck. They sell ‘slices’ or virtual server instances. These instances act like individual machines and you can set up them up any way you wish. WIth Slicehost I could set up all the applications I wanted and modify them to my hearts content. In addition, I would be able to run other applications and have a real UNIX machine to play around with. However, the main problem was that I would be responsible for setting everything up and keeping it up to date. In addition, there would be no one to turn to if I couldn’t configure an application the way I wanted it or if I mis-configured an application into a big security hole. As long as it is legal, you can host whatever you please and you can easily scale your server up or down as demand changes. They even pro-rate charges to the day so you never pay for more than you use. I signed up for a slice to play around with (review coming soon) but I decided not to do any hosting on that slice.
MediaTemple: MediaTemple is a hosting provider who provides a twist on the traditional hosting model – they host you on a grid where additonal CPU power is given to your application as it is needed. They sound ideal until I read their terms of service and found that at least 75% of the content stored on the server had to be linked to via HTML or PHP. This mean’t that I couldn’t use the hosting to share files or backup my files unless I provided the public with links to my personal data. I know I could create password protected HTML files with links to my files to get around MediaTemple’s 75% linked data requirement. However, I’m sure they would see around that ruse and kick me off. I feel that if I’m paying money for disk space then I should be able to do with it as I please.
RailsPlayground: RailsPlayground was the host that I finally settled with. They were cheap, only $5 month for Developer hosting with 3GB of disk space and 30GB of bandwidth. According to Google they have excellent Rails support. By browsing their wiki and found answers to all my questions including how to set up this blog, how to send out e-mails, and how to configure my DNS settings to point my domain name to their servers. They also had SSH support right out of the box and they obviously are not overselling and best of all their terms of service don’t have any restriction on storing personal files. So, I decided to go ahead and sign up. I signed up via their web form and I recieved an email with a hostname, instructions on how to SSH into my account, and the nameservers to use within a couple hours.
They use jailshell to keep me from causing damage and the load average has so far been below 1. I have CPanel for server configuration, the CPanel has the snappiest response I’ve ever seen in a control panel, faster than the custom control panel offered by Dreamhost. I ran my standard download test which consists of using wget to pull the latest 360GB HD version of diggnation from Revision3:
Rails Playground: 00:13:04 (2.31 MB/s)
Slicehost: 04:12:00 (5.45 MB/s)
Home (Verizon FIOS): 12:46:06 (605.91 KB/s)
Dreamhost: 700-800K/second (from memory)
So, based on this RailsPlayground’s download was much faster than Dreamhost. I imagine that RailsPlayground does some thottling to ensure that all users on the server get equal bandwidth which is why their speed is slower than Slicehost. Slicehost is the fastest, but I expect it since they are a premier service. I’ve been with RailsPlayground for a month now and I’ve been extremely pleased with the service. I’ll post further updates as I spend more time using their services.