InfoQ

News

Ruby and Rails Software Stacks Overview

Posted by Mirko Stocker on Aug 21, 2008

Community
Ruby
Topics
Deployment / Datacenter ,
Runtimes ,
Ruby on Rails ,
Platforms
Tags
Rails ,
Ruby on Rails ,
EC2 ,
JRuby
While programming in Ruby is fun most of the times, setting up and configuring all the needed software components usually isn't. Fortunately, there exist an increasing number of Ruby software stacks in various flavors: Amazon EC2 images, virtual machine images, or simple installers for an existing system.

This list is by no means comprehensive, but should give an overview of the different kinds of Ruby software stacks available.

RubyWorks

The RubyWorks Production Stack is an offering from ThoughtWorks and consists of a several open source products, already configured to work together and easily installable and updateable via your Linux distribution's regular tools. It is offered for RedHat Enterprise Linux 4 and 5, CentOS, Debian Etch, and Ubuntu Feisty. Once you've installed the rubyworks package, you'll have a cluster of Mongrels behind HAProxy and monitored using monit. ThoughtWorks also offers paid support for this software stack.

EC2 on Rails

As the name gives away, EC2 on Rails is an image for Amazon's Elastic Computing Cloud EC2. It's an Ubuntu Linux server image and will run a Mongrel cluster behind Apache 2.2, mysql, memcached, monit, and much more for you. It also creates a backup of your data to Amazon S3. The management is done with Capistrano; you'll get all that's needed with the ec2onrails gem.

Elastic Server On-Demand

Elastic Server On-Demand, from CohesiveFT, lets you customize your own server before you can download an image for VMWare, Parallels, Xen, or EC2. You can also download images from other users and rate their images. Certainly a very interesting solution if you want to get a customized system quickly, without the need to install everything by hand.

Bitnami RubyStack and JRubyStack

Bitnami offers a whole range of software stacks, including one for Ruby with Rails, MySQL, Subversion and several gems. The JRuby stack includes JRuby, Rails, Java, Tomcat, GlassFish gem, MySQL and Subversion. Bitnami's stacks are based on an installer and work with Linux, OS X, and Windows, so you don't need a virtual machine to run them.

Engine Yard Express

If you're interested in Engine Yard's hosting services and want to know how one of their slices works, then you should try the Engine Yard Express VMWare image. It starts four mongrels, two of them Rails instances and the other two Merb.

What's your opinion of such software stacks? Are they a good thing or is it better to install or configure everything yourself? Do you know of other stacks?

FiveRuns Install by Dean Cruse Posted Aug 21, 2008 2:02 PM
Ruby build tools? by Kevin Teague Posted Aug 21, 2008 3:13 PM
Heroku?? by Kurt Christensen Posted Aug 22, 2008 11:59 AM
Stacks are a good thing, yes by Douwe Vonk Posted Aug 26, 2008 9:58 AM
  1. Back to top

    FiveRuns Install

    Aug 21, 2008 2:02 PM by Dean Cruse

    And, the FiveRuns Install stack, available at fiveruns.com/products/install.

  2. Back to top

    Ruby build tools?

    Aug 21, 2008 3:13 PM by Kevin Teague

    For Python projects/web apps I use zc.buildout, which is a build tool that allows you to specify all of the parts of a project in a config file(s). You can include everything that makes up your app in a single config file: database, web framework, libraries, web server, http cache, process manager, ldap, even the Python interpreter. Typically the recipes to install these parts build from source, the advantage of this approach is you can check into version control a complete description of the exact parts (and versions) required to run your app - and developers can match their dev and test environments up exactly with what's in production by simply checking out the project and running the build.


    For a Rails app that I support, our devs put together a simple bash script, since we couldn't find any Ruby equivalents to this approach. Installing from source is a bit more of a hassle than a pre-packaged stack, but in the long run it can pay off since it can suck to be too closely tied to a particular platform, especially when working w/ distributed teams where the developers may be running a variety of operating systems and you want them to easily reproduce all of the parts of the stack on their system.

  3. Back to top

    Heroku??

    Aug 22, 2008 11:59 AM by Kurt Christensen

    Heroku, anyone?? I've heard nothing but nice things about their service.

  4. Back to top

    Stacks are a good thing, yes

    Aug 26, 2008 9:58 AM by Douwe Vonk

    As you mentioned it lets you try out software much faster without first delving into all the component downloads/setups. Also in a corporate environment managing and testing all software components can be a hassle - e.g. when upgrading (you can't fool around here). I can imagine that a stack can be of help here also: 1) you probably (hopefully) get a stack where the versions of all components work together OK and 2) if the stack also delivers some migration tool for your current applications you will be very happy.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.