Looks like the flow of PaaS news coming out this week is not stopping anytime soon. Today Heroku (previous CloudAve coverage), the original PaaS poster kid, announced the support for Java, the fourth language they are supporting on their platform. With this move, Heroku is looking to tap into one of the largest developer pools (approximately 6 Million developers) and, also, make their platform attractive to enterprises. Developers can now easily deploy any Java app on the Heroku platform including JVM based languages. With this release, deployment, restart, logging, service binding (config), and clustering (horizontal scaling) of Java applications, all the tasks managed by J2EE application container in the traditional era, are taken care of by the Heroku platform. In short, Heroku is coming out with a powerful and robust Java platform.
Heroku was a single trick pony when Salesforce.com acquired them last year but with the emergence of multi-language PaaS, there was tremendous pressure on Heroku to support languages beyond Ruby. This resulted in their Polygot Mantra. Before they added Java to their platform today, they were supporting Ruby, Node.JS and Clojure. With Java, they are ramping up the competition against players like CloudFoundry, OpenShift, etc.. It looks like they are going to add a few more languages to the mix before the end of this year. It will be interesting to see if they will also jump into the PHP and Python game. Recently, Engine Yard acquired Orchestra to offer PHP PaaS and CloudFoundry partnered with AppFog and ActiveState to offer PHP and Python.
Even though Heroku and CloudFoundry take different approaches to PaaS, I thought I will do a quick comparison (please note, it is not a thorough comparison) between these two PaaS players:
- Heroku is a hosted PaaS model whereas CloudFoundry offers both hosted solution and an option to host on other public clouds and/or on-premise. Heroku is following the footsteps of their parent company, Salesforce.com. Like Salesforce.com during the legacy CRM days, Heroku also feel that eventually hosted PaaS will gain good traction. Even though I expect such a trend to happen in the future, I also want to point out that, unlike Salesforce.com going against legacy CRM applications, Heroku is competing with modern day PaaS players than any legacy middleware players. With the emergence of a federated ecosystem, it is a tough path ahead for Heroku. But, there is no doubt that they will be one of the strong players in the space.
- Heroku offers support for all Java applications whereas CloudFoundry, at this point in time, supports only Spring Framework.
- Heroku uses a something like a plugin type of architecture to support third party services. Adding these services to the apps is just a code embed away. CloudFoundry, at least at this point in time, takes a more integrated packaging approach to third party services. Since CloudFoundry is newer than Heroku, they still cannot match Heroku on large selection of third party add ons.
- Heroku right now runs on AWS and may move to Salesforce infrastructure later. Customers don’t get a choice to select the underlying infrastructure. Looking at it from another way, it is Heroku’s philosophy that the underlying infrastructure should not matter to the users of the platform. CloudFoundry takes an entirely opposite approach in this philosophy and wants to offer their users a choice on the underlying infrastructure. I see both these approaches as two different choices in front of the developers.
The competition in the PaaS space is heating up big time and all the players are rushing to offer multi-language platforms. I am not seeing any differentiation between them except on certain philosophical aspects. If a new player ever enter this space, I would expect them to offer something completely different from what the existing players are offering now. It will be interesting to see how this space develops in the next 2 years.
- Java developers, meet Heroku (gigaom.com)
- Heroku Branches out to Include Java Apps (pcworld.com)
- Heroku for Java (heroku.com)