Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deploying rails: What to choose?

I have just finished a Rails-application that I now want to upload to the web. It is a re-write of an existing application and I expect some 4 000 visitors a day with peaks to 10 000 a day at times.

  • I know Windows fairly well (have not used Windows server though).
  • I hardly know anything about Ubuntu or Linux
  • I want things nice and easy and don't want to spend too much of my time "hacking the server". I want to spend my time developing, not maintaining.
  • My budget is ~50$ a month at most for this project.
  • The database for the project is quite static (hardly any user generated data)
  • I am currently using WAMP & Mysql with Rails 3.0.3 on my local installation and it works fine most of the time but crashes quite often as well.

I am considering three ways of doing that:

  1. Using Heroku

    • Seems quite easy (even though I haven't gotten it to work yet)
    • Also seems expensive, if I need more nodes. How many nodes should I expect to need?
  2. Using a VPS Windows server

    • I know Windows and it would be fairly easy to install and get it set up
    • My friend (who is more of a Rails expert) says that Windows and Rails is not a good match.
    • My crashes on my local environment makes me nervous about this option
  3. Using a VPS Ubuntu server

    • Seems to be the cheapest option (in terms of paying up-front)
    • Seems to be the most stable option
    • I don't know Ubuntu and I am not too eager to learn a whole new OS to get this set up.

Could you help me with directions? Is Windows server really bad for Rails?

like image 226
Christoffer Avatar asked Dec 07 '22 19:12

Christoffer


1 Answers

Quite honestly, I think Windows would be the worst choice for you. The problem with Windows and Rails is that most of the gems are never designed to work with Windows, or the versions that do work with Windows are far outdated.

Using an Ubuntu VPS is a very viable option, would be your cheapest and most stable option. We use Amazon S3 services to run most of our web servers in the cloud. Like you said, it does require you to know and understand a *nix operating system to maintain.

Maybe for you, Heroku may be the best option. Heroku is super simple to setup your project on and then deploy. There are also pages of documentation to help you along the way. In a few basic commands from the terminal, your application is running. I often use Heroku as a 'staging' server to test application updates among beta users before pushing to production on S3. You also are not required to learn a new operating system to use it.

If you are running into problems with deploying to Heroku, please post the issues and we will gladly help you.

like image 125
janders223 Avatar answered Dec 15 '22 00:12

janders223