I chatted today about VMware’s Cloud Foundry with Roger Bodamer, the EVP of products and technology at 10Gen. 10Gen’s MongoDB is one of three back-ends (along with MySQL and Redis) supported from the start by Cloud Foundry.
If I understand Cloud Foundry and VMware’s declared “Open PaaS” strategy, it should fill a gap in services. Suppose you are a developer who wants to loosen the bonds between your programs and the hardware they run on, for the sake of flexibility, fast ramp-up, or cost savings. Your choices are:
An IaaS (Infrastructure as a Service) product, which hands you an emulation of bare metal where you run an appliance (which you may need to build up yourself) combining an operating system, application, and related services such as DNS, firewall, and a database.
You can implement IaaS on your own hardware using a virtualization solution such as VMware’s products, Azure, Eucalyptus, or RPM. Alternatively, you can rent space on a service such as Amazon’s EC2 or Rackspace.
A PaaS (Platform as a Service) product, which operates at a much higher level. A vendor such as <a href="http://code.google.com/appengine/"Google App Engine handles all the back-end services and just exposes an API to which you program.
By now, the popular APIs for IaaS have been satisfactorily emulated so that you can move your application fairly easily from one vendor to another. Some APIs, notably OpenStack, were designed explicitly to eliminate the friction of moving an app and increase the competition in the IaaS space.
Until now, the PaaS situation was much more closed. VMware claims to do for PaaS what Eucalyptus and OpenStack want to do for IaaS. VMWare has a conventional cloud service called Cloud Foundry, but they will offer the code under an open source license. Right Scale has already announced that you can use it to run a Cloud Foundry application on EC2. And a large site could run Cloud Foundry on its own hardware, just as it runs VMware.
Cloud Foundry is aggressively open middleware, offering a flexible way to administer applications with a variety of options on the top and bottom. As mentioned already, you can interact with MongoDB, MySQL, or Redis as your storage. (However, you have to use the particular API offered by each back-end; there is no common Cloud Foundry interface that can be translated to the chosen back end.) You can use Spring, Rails, or Node.js as your programming environment.
So open source Cloud Foundry may prove to be a step toward more openness in the cloud arena, as many people call for and I analyzed in a series of articles last year. VMware will, if the gamble pays off, gain more customers by hedging against lock-in and will sell its tools to those who host PaaS on their own servers. The success of the effort will depend on the robustness of the solution, ease of management, and the rate of adoption by programmers and sites.