Deploying Ruby on Rails Applications

One of the major barriers in deploying Ruby on Rails applications on a wide scale is the fact that so many potential prerequisites might be expected of a target system. Never mind Rails itself, you’ll also need to install Ruby, Ruby Gems, packages designed specifically for the host operating system, and possibly GCC if any of your dependent gems require native compilation (and they often do). What I have just described is the case in almost all but the most trivial of Rails deployments.

Obviously these issues present a major challenge when you’ve developed your Rails application on Linux and you’re attempting to make it available to users who might well be attempting to deploy your application on Windows. The situation becomes even more complex when your users are non-technical people who’ve never had to install Ruby, much less Cygwin and the many packages that it may or may not provide. And why should your users have to be technical? They just want to get your shiny new CRM system up and running in the amount of time it might take to install any other application.

So how do developers address this problem? Well, many of them simply avoid distributing their applications, instead opting to host them as services, and in doing so, they target the operating system and configuration that they know works. Even this approach can be problematic in that finding a hosting provider that supports the exact operating system and configuration one might require, often resulting in the developer being forced to colocate hardware rather than leverage a hosting provider’s internal facilities.

Enter JumpBox

The mission of JumpBox is to develop software solutions that almost entirely eliminate the problems of deploying software in heterogenous environments. It accomplishes this via the use of virtual appliances that are capable of running on nearly any operating system and on all of the major virtualization platforms.

So now, instead of banging your head against the wall attempting to configure a server with the many dependencies and settings it will require to host the application you’re attempting to utilize, you need only launch one of our appliances, answer a few basic setup questions, and your new application is up and running.

The JumpBox for Ruby on Rails

Our latest appliance is the JumpBox for Ruby on Rails. The purpose of this JumpBox is to serve as a deployment system for your Rails applications. We understand that developers prefer to use their own tools for developing and deploying their applications, and so our JumpBox for Ruby on Rails politely remains out of your way until you’ve decided that it’s time to deploy your application.

We feel that the proposition of significantly reducing installation and configuration support issues will be compelling enough of a reason to consider deploying your Rails application with the JumpBox for Ruby on Rails. Now, instead of being required to install Ruby, MySQL, Apache, and a potentially vast array of dependencies, your end user need only install a virtualization platform such as VMWare, Parallels, or Xen. If they so desire, they can also easily host your application in a Cloud Computing environment such as Amazon EC2.

How Does it Work?

Technically, it’s rather simple. The JumpBox for Ruby on Rails is a self-contained Ubuntu Linux environment that, upon startup, immediately hosts fully functioning Apache, Ruby, MySQL, and Ruby On Rails environments. With only a minimal amount of preparation, you can use your favorite deployment method to install and host your Rails application on the JumpBox.

Once your Rails application has been successfully deployed onto the JumpBox, bundling it for redistribution is as simple as performing a backup in the JumpBox administration portal. The contents of this backup can be used to install your application, its databases, and its gem dependencies on another JumpBox for Ruby on Rails simply by performing a restore operation.

Note that as this is a beta release of the JumpBox for Ruby on Rails, the deployment process will likely change in the future, becoming more flexible and streamlined. We are approaching our JumpBox for Ruby on Rails with an eye toward the overall needs of the Rails developer community, and in doing so, welcome any and all feedback that you may have for us.