Multiple Ruby Version Support on Heroku

Maximizing parity between development and production environments is a best practice for minimizing surprises at deployment time. The version of language VM you're using is no exception. One approach to this is to specify it using the same dependency management tool used to specify the versions of libraries your app uses. Clojure uses this technique with Leinigen, Scala with SBT, and Node.js with NPM. In each case, Heroku reads the dependency file during slug compile and uses the version of the language that you specify.

Today, we're pleased to announce that we've added support for specifying a Ruby version to Gem Bundler, the dependency management tool for Ruby. This will allow you to specify a version of Ruby to be used in your Ruby app on Heroku.

Try it out:

$ gem install bundler --pre

In your Gemfile:

source 'http://rubygems.org'

ruby '1.9.3'
gem  'rails', '3.2.3'

Then:

$ bundle install
$ git add Gemfile
$ git commit -m 'use Ruby 1.9.3'
$ git push heroku master

Prove that you're running 1.9.3:

$ heroku run 'ruby -v'
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

$ heroku run 'ruby -e "puts RUBY_VERSION"'
1.9.3

Patch Versions

While you can specify the version of Ruby for you app, you can't specify a patch version, such as Ruby 1.9.2-p290. Ruby patches often include important bug and security fixes and are extremely compatible. Heroku will provide the most secure patch level of whatever minor version number you request.

Thanks

Thanks to Terence Lee Heroku Ruby team member and bundler maintainer for the additional support of ruby versions to the Heroku Ruby Buildpack and orchestrated the release of Bundler 1.2.0. Also thanks to Yehuda Katz and the entire Bundler team for helping get this release out the door.

Crane: Heroku's new $50 per month production database

From the Heroku Postgres Blog:

"Last week we launched our dev plan, a free database designed for development and testing. Today, we are launching into public beta two new plans: Crane and Kappa. These plans are part of our production tier, offering the same monitoring, operations, support, and data protection features as our more expensive plans.

Crane is available for $50 per month and features a 400 mb cache. Kappa is $100 per month and features a 800 mb cache. "

→ Read More

Crane and Kappa can be provisioned immediately via the Heroku Postgres website or via our command line tool:

$ heroku addons:add heroku-postgresql:crane

Crane: Heroku's new $50 per month production database

Last week we launched our dev plan, a free database designed for development and testing. Today, we are launching into public beta two new plans: Crane and Kappa. These plans are part of our production tier, offering the same monitoring, operations, support, and data protection features as our more expensive plans.

Crane is available for $50 per month and features a 400 mb cache. Kappa is $100 per month and features a 800 mb cache. They can be provisioned immediately via the Heroku Postgres website or via our command line tool:

$ heroku addons:add heroku-postgresql:crane

Use Cases

Crane and Kappa make Heroku Postgres' fully managed database service available to a much wider audience. They deliver on the promise of cloud-services, allowing apps to start small and scale-up when necessary. They benefit from the same underlying durability, monitoring, and productivity features available to every production database.

What's Included

Crane and Kappa support all of the features of our existing production plans:

Beta Period

As beta services, Crane and Kappa are subject to decreased stability and unexpected problems. Caution should be exercised when using them for important applications. While in beta there is no charge for the plans, however they will incur charges as soon as they are released into general availability (notice will be provided to all beta users prior to GA release).

Try crane or kappa out today:

$ heroku addons:add heroku-postgresql:crane

And please send any feedback on the plans to dod-feedback@heroku.com, @herokupostgres or file a support ticket if you encounter any difficulties.

Announcing Better SSL For Your App

SSL is a crucial part of any web app with a login session. As Firesheep demonstrated, HTTPS everywhere is the path forward for modern web apps. Heroku follows this with our own login-protected apps, from the management interface to the Dev Center to the Toolbelt.

Announcing Better SSL For Your App

Today, we're announcing two new features to make it as easy as possible for you to secure your app running on Heroku with SSL.

First, all apps now have piggyback SSL by default. Prepend https to the hostname for any Heroku app (https://yourapp.herokuapp.com for Cedar and https://yourapp.heroku.com for Aspen/Bamboo) and you'll piggyback on the *.herokuapp.com SSL certificate. No special configuration is needed, just access the app with https and you're secure by default.

Then, for apps running on custom domains, we have a new SSL product that unifies and simplifies our SSL add-on lineup: SSL Endpoint.

SSL Endpoint is priced identically to SSL Hostname ($20/mo) but offers these additional benefits:

  • Instant provisioning
  • Client IP address is forwarded to application as X-Forwarded-For
  • Better validation of certificate files
  • Rollback of certificate changes

Try It Out

SSL Endpoint is easy to use: add the add-on to your app, then upload your certificate and private key.

$ heroku addons:add ssl:endpoint
-----> Adding SSL endpoint to myapp... done, v20 ($20/mo)

$ heroku certs:add final.crt site.key
-----> Adding certificate to myapp... done. 
       myapp now served by tokyo-2121.herokussl.com.

You'll get a unique endpoint hostname, such as tokyo-2121.herokussl.com. Create a CNAME record to this hostname for your domain, and you're done.

In setting up SSL for your custom domain you'll still need to purchase an SSL certificate from a provider elsewhere, and configure your DNS. The Dev Center now provides guidance on each of these steps:

SSL Endpoint, like SSL Hostname, will not support naked domains. More detail on issues presented with naked domains can be found here.

Conclusion

With security and privacy as top concerns in this era of digital communication, Heroku wants to make it as easy as possible for your app to be secure and trusted for your users. The internet is increasingly embracing HTTPS everywhere, and HTTPS on Heroku has never been easier.

Heroku's new, free PostgreSQL 9.1 development database

Today Heroku is launching a new version of our free Postgres database service. This new dev plan offers increased parity between our free database service and our paid, production plans. New features include:

This plan is available immediately in public beta and can be provisioned through the Heroku add-ons catalog or command line tool:

$ heroku addons:add heroku-postgresql:dev

Check out the Heroku Postgres Blog to read more.

Browse the blog archives or subscribe to the full-text feed.