Heroku: A development cloud for all seasons

Rails, Node, Clojure, and other hipness

Top three mobile application threats

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

High performance access to file storage

More from The Register

next story
This time it's 'Personal': new Office 365 sub covers just two devices
Redmond also brings Office into Google's back yard
Kingston DataTraveler MicroDuo: Turn your phone into a 72GB beast
USB-usiness in the front, micro-USB party in the back
Dropbox defends fantastically badly timed Condoleezza Rice appointment
'Nothing is going to change with Dr. Rice's appointment,' file sharer promises
Inside the Hekaton: SQL Server 2014's database engine deconstructed
Nadella's database sqares the circle of cheap memory vs speed
BOFH: Oh DO tell us what you think. *CLICK*
$%%&amp Oh dear, we've been cut *CLICK* Well hello *CLICK* You're breaking up...
Just what could be inside Dropbox's new 'Home For Life'?
Biz apps, messaging, photos, email, more storage – sorry, did you think there would be cake?
AMD's 'Seattle' 64-bit ARM server chips now sampling, set to launch in late 2014
But they won't appear in SeaMicro Fabric Compute Systems anytime soon
Amazon reveals its Google-killing 'R3' server instances
A mega-memory instance that never forgets
prev story


Top three mobile application threats
Learn about three of the top mobile application security threats facing businesses today and recommendations on how to mitigate the risk.
Combat fraud and increase customer satisfaction
Based on their experience using HP ArcSight Enterprise Security Manager for IT security operations, Finansbank moved to HP ArcSight ESM for fraud management.
The benefits of software based PBX
Why you should break free from your proprietary PBX and how to leverage your existing server hardware.
Five 3D headsets to be won!
We were so impressed by the Durovis Dive headset we’ve asked the company to give some away to Reg readers.
SANS - Survey on application security programs
In this whitepaper learn about the state of application security programs and practices of 488 surveyed respondents, and discover how mature and effective these programs are.