As mentioned in my earlier post, Project Kenai is the home for Sun’s Open Cloud APIs which is a single point of management for the Sun Cloud. Sun is releasing these APIs under a open source license. Sun is looking forward to receiving feedback on these APIs so as to improve it and make it as standard.

I attended the Birds-of-a-feather talk hosted by Tim Bray, Craig McClanahan and Lew Tucker where they presented the APIs and answered questions. Both Tim and Craig and their team have done an excellent job of coming up with these APIs that adhere so well to the REST principles. Kudos! Tim has blogged about the Sun Cloud APIs here. And so has Craig here.

During the session, one of the questions was

how do you upgrade middleware or applications or framework libraries (say, Hiberate) used by applications that are deployed in the cloud?

Answer: Use Cloud Application Platforms such as Appistry’s CloudIQ.

In my humble opinion, it would be great if the folks at Project Kenai designed the APIs with extensibility in mind to support Cloud Application Platform APIs such as Appistry’s CloudIQ APIs (which are also REST based) to deploy, install, update, uninstall applications and middleware. I say this because infrastructure level APIs are limiting.

With infrastructure level APIs you could create a VM, clone it with application servers/applications installed and go live. But what happens when you want to deploy a new version of say, GlassFish (perhaps with some critical updates) to your existing production cloud? Now suddenly you are back to home-grown scripting or creating additional VMs with the new updates. Now take it to the next level where you have to create and manage these scripts for various OS’s. Ewwwwww!

The solution is to use CloudIQ which abstracts out the virtual machines. Using CloudIQ you could easily deploy the new version of GlassFish to your existing production cloud without resorting to crazy, complex scripts. Save the time from creating additional VMs for every update and spend that time focusing on your business!

Another great example to drive home the importance of CloudIQ in the Cloud Computing arena:
Assume you are using Hibernate 2.x in a couple of your several web applications running on Tomcat in your production cloud. And now you want to upgrade to the 3.x version of Hibernate for only one of your web applications. So how would you do this easily using infrastructure?

  1. Clone a production VM
  2. Replace Hibernate 2.x with 3.x jars in the target web application
  3. Clone that VM
  4. Deploy the new VMs to the production cloud and delete the existing VMs


Using CloudIQ, you could do this in half the steps and so fast that it will make your VMs head spin.

  1. Replace Hibernate 2.x with 3.x jars in the target web application
  2. Deploy the web application using CloudIQ Manager.


The point I’m trying to make is that CloudIQ virtualizes virtualization :) It gives you more fine-grained control or application level control.

Therefore it would be great to have Project Kenai allow for extensibility to support popular Cloud Application Platforms APIs.

What do you think?