Which OS is best to Deploy to?

My Rails app is almost finished, and it's time to deploy. This is an area where I'm completely clueless. In the past, I've always developed .NET windows desktop apps. I know next to nothing about web servers, apache non-Windows operating systems. (Yeah, it's pathetic, I know). To add to the complication, the website I built is for a college in China (I'm a part-time Oral English teacher, and the rest of the time I'm spending building them a website). They are currently using a windows server with IIS for the main website (my web app is just for the department of foreign affairs). They've offered to get a new computer setup for this, but I'm not really sure what the ideal setup is.

Can someone help me out? Bear in mind that this is never going to be a high volume website.

- What OS should I use? The AWDWR book suggests Linux, FreeBSD, Solaris or Mac OS X. The only one I have any experience with is Mac OS X. - Would a better option be to just use a web hosting service?

Thanks! Myron

I've done some comparisons for my app, and found that Linux (Ubuntu and Debian) were way faster than Windows.

Also, the MySql bindings in C make a difference of about 40% for my app.

For Deployment, I'm using Pen + Mongrel_cluster (Mongrel_Cluster is always a good idea, since Rails is single-threaded out of the box). My tests suggest that my app can take about 50 - 100 simultaneous people with a decent response time (tested with Siege) with this config.

For the server, the most important component is the hard disk. This is off course logical, since most Rails apps are data-driven. The calculations in my app could only be sped up 10% by using an AMD64 3800+ (originally an Intel Centrino 1.5Ghz). But by using a very fast SATA HD, the app was sped up by more than 80%.

Hope it helped you a bit, remember, above remarks are specific for the app I tested, it can be seriously different for you.


my suggestion would be to install Ubuntu, or get access to a VPS that has some linux variant. Then have a look at the deprec gem. It will setup MySQL, Apache2, Rails, and as many mongrel clusters as you want painlessly.