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?
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.