Market-leading software companies and start-ups alike are competing for the hearts and dollars of Java developers with Platform-as-a-Service (PaaS) offerings for Java cloud development. Competitors in the Java PaaS space include Amazon (with AWS Elastic Beanstalk), Google (with Google App Engine), and Red Hat (with OpenShift), with smaller players such as CloudBees (with RUN@Cloud) and Hivtext (with Jelastic) also bringing interesting products to the market.
This article presents quick snapshots of what the main Java cloud platforms offer, along with their strengths and weaknesses.
Amazon Elastic Beanstalk
Elastic Beanstalk supports a full Tomcat server running on an Amazon Elastic Computing Cloud (EC2) virtual server. It is a pure Java environment with access to the underlying file system. Because of Tomcat’s popularity, almost all enterprise Java frameworks support Tomcat deployment.
Strength: Beanstalk gives developers a wide variety of choices for database technologies — relational, NoSQL or a database of their own creation. Another strength is its excellent integration with all Amazon Web Services.
Weakness: Beanstalk’s standard pricing of around $35 per month is relatively expensive if you’re running a low-traffic website.
RUN@Cloud seeks to blend the best of managed scalability (as in GAE) and flexibility (as in Amazon’s Beanstalk) while adding its own special sauce, providing a complete develop-to-deploy lifecycle for Java Web applications in the cloud.
Makers of Run@Cloud CloudBees claim the platform delivers reliable and elastic on-demand resources, unlimited scalability, and a seamless transition from development to production.
Strength: Run@Cloud provides tight integration with DEV@Cloud, a cloud-based, continuous integration platform. DEV@Cloud consists of open source code, a version-control system, a build repository (Apache Maven) and a build server (Jenkins).
Weakness: Its focus on only Java may be a deal breaker for developers who need support for multiple languages.
Google App Engine (GAE)
GAE enables developers to build Web applications on the same scalable systems that power Google’s own applications. It virtualizes applications across multiple servers and offers automatic scaling.
Strength: GAE supports various programming languages, such as Go, Python and Java. Google has said that it plans to support more languages in the future and that the platform has been written to be language independent.
Weakness: GAE’s Java support is limited and not standards-compliant. For example, GAE doesn’t support important Java APIs such as file write I/O and many of the network I/O APIs. Java cloud applications deployed on GAE can use only a subset of the classes from the JRE standard edition, and they cannot create new threads.
The platform also imposes a number of restrictions on applications, although Google requires these restrictions mainly to ensure scalability and performance.
Jelastic, recently released in beta format, supports the development and hosting of any Java application. Hivtech Technologies, the creators of Jelastic, claim their platform enables developers to upload Java applications in minutes without changes to code or programming language and with no need to write for specific APIs.
Hivtech also claims the platform is the “the world’s first cloud platform to host and auto-scale any Java application.” Company CEO Ruslan Synytskyy has said Hivtech’s mission is “to make it easy to run Java code from the cloud, without locking customers into a single vendor.”
Strength: Jelastic supports any JVM-based application, including pure Java 6 or 7, JRuby, Scala and Groovy.
Weakness: Its Java-only focus is a turn off for developers who need multi-language support.
Red Hat OpenShift
OpenShift supports a variety of programming languages and frameworks, including Java EE 6, Ruby, PHP, and Python. Red Hat, the platform’s creator, says the technology includes both SQL and NoSQL data stores, and a distributed file system.
There are two versions of OpenShift, Express and Flex. Express is free and multi-tenant, and it supports Perl, PHP, Python and Ruby applications delivered in a shared hosting model. Flex is a hosting environment for Java EE and PHP. Applications can be deployed on middleware components such as JBoss and Tomcat.
Strength: By creating the first Java EE 6 implementation in a PaaS model, OpenShift delivers a simple way for developers to build and deploy Java in the cloud.
Weakness: OpenShift suffers from Red Hat’s traditional focus as a systems company, namely its limited history of engagement with developers of higher-level frameworks.