Rails Console on Cloud Foundry: A Closer Look

Cloud FoundryCloud Foundry now offers a Platform as a Service that lets you choose the framework you want to use, the services that you want, and deploy them on AWS, Rackspace, etc.

It’s an open source product built on Ruby. That means that we can extend, change and  overwrite by just forking the project on Github and also–why not?–send a pull request for our awesome new feature.

The goal of Cloud Foundry is remove anyone between the developer and the production platform. The company calls it a “(f)riction-free way to develop, test and deploy applications”

Now, they’ve added a Rails Console to their Rails environment. Here’s some of what it offers:

What We Have There (for Ruby and Rails)

  • Ruby 1.9.2 (Ruby 1.9.3 not supported yet)
  • Ruby Web Frameworks: Rails 3.1, Sinatra

Services: RabbitMQ and vFabric PostgreSQL from VMware and MySQL, MongoDB and Redis are officially supported, plus third party services.

Production Instance, Executed in Your Computer

You can run the same code and environment in your local computer as you would in production. When you have a complex architecture, this is really helpful because you don’t have to set up the entire environment locally. Just run the instance and ta da! That can be done using Micro Cloud Foundry, which uses VMware Player (free) or VMware Workstation or Fusion (depending on OS)

Nothing is Cost Free

Although one of the leitmotifs of Cloud Foundry is “portability without changes,” you have a limited version of services, Ruby runtimes and frameworks. So, if you’re going with something special or working with the latest releases of Rails and Ruby, you have to work a lot or jump to another solution where you have more flexibility. If you want to add another service that’s not available, you can take a look on vcap-services to get an idea of how the services are exposed in the environment.

A Good Solution for Most Cases

If you’re not on the latest version of Rails or Ruby, and aren’t using a No-SQL db like Riak, this platform can provide a really agile and portable environment. That means you can focus on the application code. The rest is handled by VMC, the command line client for Cloud Foundry.