I recently posted about a project I am working on that will use cloud computing, and in particular a Java-based Platform as a Service (PaaS). The choice of platform came down to three providers:
Based on our requirements, each of the above platforms can be summarised as follows:
Google App Engine
This platform has many nice features, but does not support full Java. The lack of relational database support is also not ideal, but support for JPA is provided. Spring Framework applications can be deployed seamlessly. For our applications, where we wish to connect to Web services, the restricted I/O library support, coupled with the fact the outbound connections are forced to close after 10 seconds is not acceptable. The cost model is clear and attractive with a high free CPU and storage quota. Another factor for our application is the fact that SSL on customer domains is not supported.
Amazon’s offering is attractive in that it offers the elegance of PaaS, but also the control of IaaS if required with support for full Java. Whilst still in beta, this service offers everything we require. The usage cost is clearly defined. A downside maybe is that the service is still in beta.
This service from VMWare, is very similar to Elastic Beanstalk without the lower level (IaaS type) control. The toolset is elegant and simple. The feature set is not quiet as rich as Beanstalk, for instance there is no email service as is available from Amazon AWS. However, the downside for this service is that it is in beta and currently free to use, but there is no indication as yet as to what the pricing model maybe.
We have decided to use Amazon Elastic Beanstalk, as it offers all the features we require with a clearly defined cost model. In addition, it offers the control at the level of IaaS if required. CloudFoundry is elegant too but with no pricing model available, and we cannot launch a live system on this. Google App Engine is elegant but suffers because of the lack of full Java support required for out application. We have in the background also began examining CloudBees. I will let you know about that in a future post. I will also keep you updated with out progress using Elastic Beanstalk. What is nice for Java developers is that there are many excellent choices available for PaaS.