At this year's VMworld, Red Hat conducted a survey of over 1,200 attendees on their cloud plans. One of the questions was, "What primary development framework are you planning to use in the cloud?" The results were as follows:
- Java EE 32%
- .NET 29%
- PHP 14%
- Perl 8%
- Python 6%
- Spring 6%
- Ruby/Rails 5%
Whilst the survey doesn't allow responders to distinguish between "Java with a framework other than Spring", and "Java EE", and the results should therefore be treated with some scepticism, they do chime with other research. Many enterprises have made a considerable investment in Java - a recent Forrester survey suggested that around 64% of businesses use the platform - and a Java EE PaaS would provide a straightforward way for these enterprises to transition their existing Java EE applications to the cloud.
However Java EE compliant PaaS products are thin on the ground. Red Hat's OpenShift, which follows Red Hat's acquisition of Makara in November of 2010, is one of the first. The product is currently in free developer preview, running on top of Amazon's EC2. It comes in two versions – Express and Flex. Express is a free multi-tenant offering that supports the Java EE 6 Web Profile. The Flex platform offers the dedicated application servers (JBoss, Tomcat) shell access, and dedicated hosting. Since JBoss AS 7 isn't certified against Java EE 6, the product doesn't quite support the full Java EE 6 standard, but it will do once JBoss AS 7.1 is released.
One of the problems for vendors wishing to offer a Java EE PaaS is that the platform has substantial memory demands, an issue which Oracle is looking to address through the Jigsaw modularity solution, and other changes planned for Java EE 7 and SE 8. However, many Java EE vendors have introduced modularity to their application servers based on OSGi, allowing them to circumvent the problem to a certain extent. Issac Roth, formerly of Makara and now PaaS Master at Red Hat, told InfoQ
The issue is that the JVM is not really set up to run multi-tenant, and to get it that way would require a very fancy implementation of the JVM, or ideally some adjustments to the language spec. We are indeed running Java EE in a multi-tenant environment which gives us terrific density for JEE workloads. We've done this by creating the slimmest Java container out there - JBoss AS 7 - and using the OS-level virtualisation in Red Hat Enterprise Linux.
Since some of the code in OpenShift has come through acquisition, Red Hat hasn't yet released it as open source, though it has signaled its intention to do so. The company is also yet to publish pricing information, though Roth told us that it expects it to be in line with other providers.
Roth also told us that the company is actively involved in the Java EE 7 expert groups, and will be using some of the knowledge it acquires from running OpenShift to feed into the Java EE 7 design process.
Another firm with plans to support Java EE 6 using JBoss is Platform as a Service startup CloudBees. At present CloudBees, which launched in November 2010, includes DEV@cloud, a service that lets developers take their build and test environments to the cloud, and RUN@cloud, which lets teams deploy these apps to production on the cloud.
The RUN@cloud product is based on Tomcat, with a JBoss version announced but not yet released. It is offered both hosted atop Amazon EC2, and is working on a private offering that lets users run the PaaS on-premises.
Whilst the PaaS space is still quite young and fragmented, there are some obvious front runners, with firms like Amazon, Google, and Microsoft already well established. Thus any company wishing to enter the space needs a strong market differentiator.
For CloudBees one key differentiator is continuous delivery. Last year the firm, led by former JBoss CTO Sacha Labourey, acquired InfraDNA, and its founder Kohsuke Kawaguchi who created Hudson and now leads the Jenkins fork of the Hudson CI server. CloudBees' first PaaS product was Jenkins as a Service under its DEV@cloud branding. DEV@cloud allows developers to build their code using Git, Subversion, and/or Maven, test it using Jenkins, and then deploy it into the RUN@cloud service. Labourey told InfoQ
We care about the complete application lifecycle. You will see a bunch of PaaSs out there which define a PaaS as being "how to deploy an existing application into the cloud". So there is a focus on this production/runtime aspect only. We think that is just part of the picture, and that for the cloud to make sense you need to provide a solution that helps developers along the entire application lifecycle, from development to production.
A second differentiator is the firm's concentration on the JVM. Whilst many PaaS vendors are aiming to be language agnostic, CloudBees solely supports the JVM. Of course the JVM is polyglot by its nature, and CloudBees applications can be written in Java, Scala, Clojure or any other JVM-based language, but this concentration, the firm argues, allows it to have greater depth of coverage for developers targeting the JVM.
Pricing for the JBoss product is yet to be announced, but is expected to be around 50% more then the existing Tomcat offerings.
CloudBees employees around 30 people. It is VC funded, most recently raising $10.5 million in Series B funding. The round was led by Lightspeed Venture Partners and joined by Matrix Partners, the latter of whom also provided the Series A funding.