Heroku

How It Works

Stacks

Last Updated: 03 February 2012

architecture stack

Table of Contents

Bamboo is the default stack. Cedar, the most recent stack, is in public beta and offers significant enhancements and new features.

A stack is a complete deployment environment including the base operating system, the language runtime and associated libraries. As a result, different stacks support different runtime environments.

Stack summary

  Base Technology MRI 1.8.6 REE 1.8.7 MRI 1.9.2 Node.js Clojure Java Python Scala
Argent Aspen Debian Etch 4.0              
Badious Bamboo Debian Lenny 5.0            
Celadon Cedar Ubuntu 10.04    

The current default stack is bamboo-mri-1.9.2. You may target a different stack when creating an app or change stacks on an existing app via a stack migration.

You can see what stack your app is on, and all available stacks, using the heroku CLI:

$ heroku stack
  aspen-mri-1.8.6
  bamboo-ree-1.8.7
* bamboo-mri-1.9.2
  cedar (beta)

Here, the app is running on Badious Bamboo, using MRI 1.9.2. The Argent Aspen stack and the Celadon Cedar are also available to this app.

Using a specific stack

You may specify a non-default stack during app creation with the --stack (or -s) flag:

$ heroku create --stack cedar
Creating glowing-mist-330... done, stack is cedar
http://glowing-mist-330.heroku.com/ | git@heroku.com:glowing-mist-330.git

This app is now automatically setup to use the Cedar stack, which supports several languages and frameworks.

Migrating to Bamboo

Migrating to Bamboo is a simple and automated process. Detailed instructions can be found on the “About Bamboo” page.

Migrating to Cedar

Migrating from Bamboo to Cedar allows an application to take advantage of a much more flexible and powerful stack. Because the significant architectural differences, migrating to Cedar is a largely manual process.

You can find instructions for migrating to Cedar here.