best "Rails on the cloud" solution?

A search of this forum for "cloud" brought up a pretty anemic and mostly year or more old list of stuff. That was a bit of a surprise to me.

I'm interested in getting opinions on the easiest way to deploy a Rails app to a well known (S3 or similar) "cloud" server.

It should be something with little or no "installation" or "establishment" fees and no monthly fees...just the per/megabyte traffic fees.

Would be great if deployment was via capistrano, just like a VM or dedicated server would be.

Has anyone made this cheap and easy yet? Or do you still have to roll your own implementation using API's that were designed to be general in nature and thus requiring significant development effort to get it deployed?

thanks, jp

JP,

It's really simple but do you absolutely need to use a CDN? Amazon is one of the more popular ones but most of them are really the same. Brightbox is also very good.

The only thing you really need to know is to set the assets server in your production.rb file:

config.action_controller.asset_host = "somehost.com"

There's quite a few tutorials about this. However, you don't have to use a CDN unless you have a lot of content on your site that needs to be hosted. I personally feel that CDNs are a little overrated unless you meet the following criteria:

* Your content is going to be delivered to a world wide audience (multiple countries)

If you are providing a local service or something where you really are not going to reach a global area, there's no need to use a CDN.

A search of this forum for “cloud” brought up a pretty anemic and mostly

year or more old list of stuff. That was a bit of a surprise to me.

I’m interested in getting opinions on the easiest way to deploy a Rails

app to a well known (S3 or similar) “cloud” server.

It should be something with little or no “installation” or

“establishment” fees and no monthly fees…just the per/megabyte traffic

fees.

Would be great if deployment was via capistrano, just like a VM or

dedicated server would be.

Has anyone made this cheap and easy yet? Or do you still have to roll

your own implementation using API’s that were designed to be general in

nature and thus requiring significant development effort to get it

deployed?

thanks,

jp

Posted via http://www.ruby-forum.com/.

I am using Rightscale and I’m very happy with the Rails integration. BTW,

Rightscale is a front-end to Amazon Services (i.e. EC2, S3, Cloudfront, and

so on). Also, it costs a bit more for their service in addition to Amazon charges

but it was well worth it for our business. This will be common with the other

front-ends to Amazon.

Furthermore, I’m very pleased with the ability to have better control as to what’s

going on with my server instances. Also, if you’re publishing a lot of media assets

and the site has a great deal of traffic, then I would recommend having some

CDN functionality within your sites’ configuration. Hulu.com would be a very good

example of the use of a CDN and Rails.

When I was in Japan, I noticed that every Japanese site was extremely fast being

that my connection speed was 1 Giga bit per second. However, it was a sudden

drop-off when accessing sites in the US that didn’t have a local CDN. Thus, you should

use a CDN where it makes sense for creating the best user experience.

Next, I would first focus on building solid Rails website architecture before thinking about

scaling a site that doesn’t exist by using the cloud. Once the site has been built, then

you can make better decisions on how to properly scale your site. For examples, there are

tools that can easily allow one to simulate N concurrent users across multiple servers

Lastly, it doesn’t matter which option you select you’ll have to pay for any high-traffic site

that uses a lot of bandwidth. Thus, you may also want to take a look at Google App Engine.

Good luck,

-Conrad

Hulu was designed with rails?

I actually did not know this..

-Conrad

Not that this is actually contributing to the discussion in any sort of meaningful way, but I've yet to come across a site served by Nginx that didnt have Mongrel or Passenger behind it.

And I have this weird OCD thing about requesting dispatch.cgi for every site that *feels* like its powered by Rails (i'm usually right too, how does that even work)

last two years i am working on cloud by using amazon we use Capistrano for deployment. just one command cap deploy:cold and nothing else.

RightScale is good solution but very expensive, a cheaper alternative is using Scalr (scalr.net) and they have both a free version (open source) as well as a paid service (scalr.net being the paid service, only $50/month + Amazon fees). Both RightScale and Scalr are considered cloud management tools and they work very well with Amazon Web Services (EC2/S3/EBS...) RightScale feature set is richer than Scalr.

You should keep in mind that Amazon is not the only kid in the game (in the PaaS - platform as a Service). There is also GoGrid and Rackspace (with their cloud offering options).

Finally, there is a new breed of rails hosting solutions: Heroku and EngineYard (Solo/Flex). They provide free trials of their services and a wide range of plans. Heroku uses Amazon's servers while Engine Yard uses Joyent.

If you use Aptana's IDE for rails development, they also provide a cloud hosting offering (AptanaCloud).

So there are tons of options. The problem is that there is a wide range of expertise required for rails deployment. If you want to deal the least with server configuration, I would strongly suggest a service like Heroku (they even have github integration). I havent used EngineYard's but their Solo offering seems quite good for development/testing as well. The moment you need production-ready features then you have to start paying for more in both Heroku/ EngineYard's offerings.

- Ricardo

RightScale is good solution but very expensive, a cheaper alternative

is using Scalr (scalr.net)

and they have both a free version (open source) as well as a paid

service (scalr.net being

the paid service, only $50/month + Amazon fees).

Actually, the current charge for scalr.net is $99 per/month + Amazon charges. The $50 per/month

was before August 16th. Also, Rightscale has a developer edition that can give you the opportunity

to tryout their services.

Both RightScale and

Scalr are considered

cloud management tools and they work very well with Amazon Web

Services (EC2/S3/EBS…)

RightScale feature set is richer than Scalr.

Also, Scalr.net recently graduated from beta to production on August 1, 2009. Also, I wish that I would

have known that one of the founders members, Alexey Kovalyov, resides in the Ukraine because I was

there back in October 2008 and it would been a pleasure to meet him.

You should keep in mind that Amazon is not the only kid in the game

(in the PaaS - platform

as a Service). There is also GoGrid and Rackspace (with their cloud

offering options).

http://www.gogrid.com/pricing/compare-gogrid-to-amazon-ec2.php

Finally, there is a new breed of rails hosting solutions: Heroku and

EngineYard (Solo/Flex).

Heroku has some very excellent hosting solutions from what I have

heard from others and what appears on their site. Also, the hosting

from what I hear is dead simple.

They provide free trials of their services and a wide range of plans.

Heroku uses Amazon’s servers

while Engine Yard uses Joyent.

If you use Aptana’s IDE for rails development, they also provide a

cloud hosting offering (AptanaCloud).

So there are tons of options. The problem is that there is a wide

range of expertise required for

rails deployment. If you want to deal the least with server

configuration, I would strongly suggest

a service like Heroku (they even have github integration). I havent

used EngineYard’s but their

Solo offering seems quite good for development/testing as well. The

moment you need production-ready

features then you have to start paying for more in both Heroku/

EngineYard’s offerings.

  • Ricardo

Yes, I would agree with Ricardo in this regard but you want to limit your

developing/testing to the local platform because some of these services

have per/hour usage fees. The plan that I have with Rightscale has

15000 hours/per month for $500 which is great for deploying several

applications per month. Thus, when I test a new application or updat

an existing application, I tend to do the following:

a) start the instance

b) test the application

c) stop the instance

Note: The above doesn’t affect the following application because I tend

to create a staging instance for testing both new and updates to

existing applications.

Good luck,

-Conrad

[...]

You might be interested to check out Heroku. It doesn't work for every use case, but if it works for you it's lovely. It's cloud-based Rails deployment made *very* simple.

Best,