Heroku: A development cloud for all seasons

Rails, Node, Clojure, and other hipness

Build a business case: developing custom apps

Heroku began life as an online service for building, hosting, and readily scaling Ruby on Rails applications. But the "platform cloud" has since expanded beyond the decidedly hip net programming language, embracing two other decidedly hip options: Node.js and Clojure.

In May, the Salesforce.com-owned Heroku rolled out a new service stack. Unlike previous stacks, this one wasn't explicitly tied to Rails. "There is a huge amount of parallel between how you deploy applications written in different languages," Heroku cofounder Adam Wiggins tells The Register. "There are certain patterns in how you deploy a modern cloud platform that can map to almost any modern language."

In addition to handling Ruby, the new "Celadon Cedar" stack runs Node.js, the event-driven server-side platform based on Google's V8 JavaScript engine, and Clojure, the Lisp dialect that's designed explicitly for multi-threaded programming. And, yes, the plan is to eventually expand to platforms beyond. "We'll continue to add languages as appropriate," Wiggins says. "The addition of Clojure in particular shows that Cedar is a general-purpose stack. And if you can do three languages, it's quite feasible to do others."

“There are certain patterns in how you deploy a modern cloud platform that can map to almost any modern language.”

Wiggins and his fellow cofounders – Orion Henry and James Lindenbaum – built the first Heroku stack in 2007. Running a consulting shop in Los Angeles, the trio were designing applications for various and sundry enterprises, and they soon came to the realization that they needed a much better way of deploying these applications.

"We would have a new customer every month. We would build an application in a month or two and go to deploy it, and then there was this very long cycle of purchasing a server and getting an operating system installed and putting it into co-location and that kind of thing," Wiggins says. "After about a year of this ... we envisioned a product that would solve the problem."

The project was heavily influenced by the use of Rails itself. The language had significantly reduced the amount of time Wiggins and crew needed to build applications, and they wanted a platform that could do much the same for deployment. "Discovering Rails was one of the big motivators for us – it really sped up development compared to other languages. At one point, the average project took us maybe two months to crank out, but when we switched to Rails, the time dropped to two or three weeks," he says.

"But the time to deploy didn't change. It's one thing when you spend two months building an app and a month getting it deployed into production. But when you speed three week building it and a month getting it into production, things seemed completely out of whack."

The resulting service is analogous to Microsoft Azure and Google App Engine – though the idea predates these big-name platform clouds. App Engine runs Python, Java, and Google's own Go language atop the company's famously distributed infrastructure, and while Azure focuses on .NET, it can also run Java, Ruby, PHP, and Python.

The initial Heroku stack, codenamed Argent Aspen, was built atop Amazon EC2, which had just gone into beta, and it was specifically designed for Rails. But from the very beginning, Wiggins says, coders would howl for additional languages. The service's second release, codenamed Badious Bamboo, was also specific to Rails, but along the way, the company unveiled a separate beta service for Node. About a year ago, it began work on Celadon Cedar, which can – at least in theory – be tweaked for almost any language.

The Cedar-stack beta debuted in late May, offering support for Rails and Node, and last week, the company announced support for Clojure as well. Clojure is so far removed from Rails and Node, Wiggins says, it proves that the stack is suited to almost any "modern" language.

Why Clojure? "The short answer is: we like Clojure," Wiggins says. "A lot of times your reason for picking a language is just a gut sense." Heroku itself uses Cedar to run a Clojure application called Pulse, which is used for internal metrics. "We could have written it in just about any language. But Clojure felt right," he says. "To me that's the real reason you ever choose a programming language."

But he adds that Clojure is suited to building application components that must be eminently predictable, and he points to the "youthful community" behind the language. In others words, it's a hip platform. "We've had great interactions with a lot of folks in the community in terms of what is the best way to handle deployment," he says. "Younger languages make it easier to have that kind of interaction, as opposed to the more fractured communities you get with more mature languages."

Clojure also taps into the Java ecosystem, as it runs atop the JVM.

Officially, the Cedar stack is still in beta, but Heroku has used it internally for "months". The default stack is still Bamboo, and that's where most users are running their apps. Heroku as a whole currently runs about 156,000 applications of various sizes. ®

Build a business case: developing custom apps

More from The Register

next story
Sysadmin Day 2014: Quick, there's still time to get the beers in
He walked over the broken glass, killed the thugs... and er... reconnected the cables*
Auntie remains MYSTIFIED by that weekend BBC iPlayer and website outage
Still doing 'forensics' on the caching layer – Beeb digi wonk
VVOL update: Are any vendors NOT leaping into bed with VMware?
It's not yet been released but everyone thinks it's the dog's danglies
BlackBerry: Toss the server, mate... BES is in the CLOUD now
BlackBerry Enterprise Services takes aim at SMEs - but there's a catch
SHOCK and AWS: The fall of Amazon's deflationary cloud
Just as Jeff Bezos did to books and CDs, Amazon's rivals are now doing to it
prev story


Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Consolidation: The Foundation for IT Business Transformation
In this whitepaper learn how effective consolidation of IT and business resources can enable multiple, meaningful business benefits.
Backing up Big Data
Solving backup challenges and “protect everything from everywhere,” as we move into the era of big data management and the adoption of BYOD.
Boost IT visibility and business value
How building a great service catalog relieves pressure points and demonstrates the value of IT service management.
Why and how to choose the right cloud vendor
The benefits of cloud-based storage in your processes. Eliminate onsite, disk-based backup and archiving in favor of cloud-based data protection.