Heroku: A development cloud for all seasons

Rails, Node, Clojure, and other hipness

Designing a Defense for Mobile Applications

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. ®

The Power of One eBook: Top reasons to choose HP BladeSystem

More from The Register

next story
Apple fanbois SCREAM as update BRICKS their Macbook Airs
Ragegasm spills over as firmware upgrade kills machines
Attack of the clones: Oracle's latest Red Hat Linux lookalike arrives
Oracle's Linux boss says Larry's Linux isn't just for Oracle apps anymore
THUD! WD plonks down SIX TERABYTE 'consumer NAS' fatboy
Now that's a LOT of porn or pirated movies. Or, you know, other consumer stuff
EU's top data cops to meet Google, Microsoft et al over 'right to be forgotten'
Plan to hammer out 'coherent' guidelines. Good luck chaps!
US judge: YES, cops or feds so can slurp an ENTIRE Gmail account
Crooks don't have folders labelled 'drug records', opines NY beak
Manic malware Mayhem spreads through Linux, FreeBSD web servers
And how Google could cripple infection rate in a second
FLAPE – the next BIG THING in storage
Find cold data with flash, transmit it from tape
prev story


Designing a Defense for Mobile Applications
Learn about the various considerations for defending mobile applications - from the application architecture itself to the myriad testing technologies.
How modern custom applications can spur business growth
Learn how to create, deploy and manage custom applications without consuming or expanding the need for scarce, expensive IT resources.
Reducing security risks from open source software
Follow a few strategies and your organization can gain the full benefits of open source and the cloud without compromising the security of your applications.
Boost IT visibility and business value
How building a great service catalog relieves pressure points and demonstrates the value of IT service management.
Consolidation: the foundation for IT and business transformation
In this whitepaper learn how effective consolidation of IT and business resources can enable multiple, meaningful business benefits.