Feeds

Heroku: A development cloud for all seasons

Rails, Node, Clojure, and other hipness

Secure remote control for conventional and virtual desktops

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

Secure remote control for conventional and virtual desktops

More from The Register

next story
Ellison: Sparc M7 is Oracle's most important silicon EVER
'Acceleration engines' key to performance, security, Larry says
Oracle SHELLSHOCKER - data titan lists unpatchables
Database kingpin lists 32 products that can't be patched (yet) as GNU fixes second vuln
Ello? ello? ello?: Facebook challenger in DDoS KNOCKOUT
Gets back up again after half an hour though
Hey, what's a STORAGE company doing working on Internet-of-Cars?
Boo - it's not a terabyte car, it's just predictive maintenance and that
Troll hunter Rackspace turns Rotatable's bizarro patent to stone
News of the Weird: Screen-rotating technology declared unpatentable
prev story

Whitepapers

A strategic approach to identity relationship management
ForgeRock commissioned Forrester to evaluate companies’ IAM practices and requirements when it comes to customer-facing scenarios versus employee-facing ones.
Storage capacity and performance optimization at Mizuno USA
Mizuno USA turn to Tegile storage technology to solve both their SAN and backup issues.
High Performance for All
While HPC is not new, it has traditionally been seen as a specialist area – is it now geared up to meet more mainstream requirements?
Beginner's guide to SSL certificates
De-mystify the technology involved and give you the information you need to make the best decision when considering your online security options.
Security for virtualized datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.