Review: 4 Java clouds face off
CloudBees, Google App Engine, Red Hat OpenShift, and VMware Cloud Foundry reveal the pleasures and perils of coding on a public cloud platformFollow @peterwayner
VMware has kept mum about the pricing. The product is still in beta, and VMware has been kind enough not to charge for it. Will the rates be too high? How can you plan? You can't, but the Cloud Foundry virtual machine is fairly open. You can download the Micro Cloud Foundry -- a portable virtual machine image of the Cloud Foundry environment -- and run it on your own system with VMware Player. The core code is open sourced at cloudfoundry.org and largely covered by the Apache license.
Java clouds: CloudBees
One joke floating around the Net is a list of lies that companies tell potential hires to seem more with it. Running a continuous integration server is near the top. Everyone likes the idea of constantly checking the code to make sure it works, but no one wants to do all of the work required to both maintain the code and keep the continuous integration server up and running.
CloudBees would like to change this. Not only does the company offer a cloud for deploying your applications, but it provides a cloud to build them too. Your account is more than just a way to serve your data to the masses. There's a code repository (Git or Subversion) and a Jenkins server watching every piece of code you check in.
After a bit of fiddling, I was able to check in code and wait for Jenkins to build it, test it, compile the documentation, and deploy it to the server. If I needed more, there were plenty of other services, plug-ins, and switches to flip.
The theory is that CloudBees has plenty of high-end boxes working in parallel to build your huge pile of code. Instead of waiting for your desktop machine to page in the right libraries, you can let Jenkins parcel out your build to the racks at CloudBees.
I didn't see this advantage, but my Web application had just one class and one JSP. The Web interface to Jenkins comes with a neat progress bar and a flashing blue ball that made it clear that my local machine could build these few files faster than the leviathan in CloudBees' data center.
Even if small projects won't tap the power of the cloud, they'll still be able to use the discipline of Jenkins. It took me a few minutes of poking and prodding to get the code to flow all the way through the build pipeline, but after that I was golden. It's nice to let someone else worry about keeping Jenkins running.
The CloudBees cloud is essentially Tomcat and MySQL, but other databases are available, including some from third parties with tight integration. Cloudant, for instance, offers CouchDB services, and MongoHQ serves up MongoDB.
CloudBees offers servers as "app cells," a unit of power that's roughly one-eighth of a standard Amazon EC2 server. The memory and compute cycles are tied together, so you essentially buy the servers by the eighth.
CloudBees offers a generous set of free services, but the constraints are tight. Only the casual developers will be happy within them. Anyone engaged in serious work will quickly need to upgrade to a paying service.
Java clouds: Red Hat OpenShift
Red Hat was never content to be just a collection of Linux tools. Its new foray into the cloud, called OpenShift, offers a quick way to deploy Java, Python, PHP, or Ruby apps to a collection of machines waiting to accept them. When you're done developing, the Red Hat cloud offers a collection of tools for deploying your app on Amazon EC2.
OpenShift is not Java-centric by any means. Whether you create a Java app or another kind, it handles much of the deployment issues. The standard Java application is a JBoss Application Server 7 stack built by Maven. This is a fairly new option, and I didn't find it listed in the fancy HTML documentation. Instead, I stumbled on it by hitting
-h on the command line.