Feeds

Heroku: A development cloud for all seasons

Rails, Node, Clojure, and other hipness

3 Big data security analytics techniques

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

SANS - Survey on application security programs

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
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?
IT bods: How long does it take YOU to train up on new tech?
I'll leave my arrays to do the hard work, if you don't mind
Amazon reveals its Google-killing 'R3' server instances
A mega-memory instance that never forgets
Cisco reps flog Whiptail's Invicta arrays against EMC and Pure
Storage reseller report reveals who's selling what
prev story

Whitepapers

Designing a defence for mobile apps
In this whitepaper learn the various considerations for defending mobile applications; from the mobile application architecture itself to the myriad testing technologies needed to properly assess mobile applications risk.
3 Big data security analytics techniques
Applying these Big Data security analytics techniques can help you make your business safer by detecting attacks early, before significant damage is done.
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.
The benefits of software based PBX
Why you should break free from your proprietary PBX and how to leverage your existing server hardware.
Securing web applications made simple and scalable
In this whitepaper learn how automated security testing can provide a simple and scalable way to protect your web applications.