Analyzing the PaaS Landscape - VMware Cloud Foundry
Cloud Foundry originally started as a platform to deploy Java Spring applications on Amazon Web Services. In April 2011, VMware acquired Cloud Foundry and made that it into an open source, multi-language and multi-framework PaaS offering. Cloud Foundry supports multiple languages and multiple runtimes such as Java, Spring, Ruby, Scala and Node.js. VMware calls this an Open PaaS as Cloud Foundry can run on anything from a notebook PC to a Public Cloud.
Cloud Foundry has three dimensions to the platform. The first one is all about the choice of frameworks while the second is choice of application services and the final dimension is the deployment choice.Framework Choice
Cloud Foundry supports Spring for Java, Rails and Sinatra for Ruby, Node.js and JVM languages like Groovy, Grails and Scala. It also supports Microsoft .NET Framework and became the first non-Microsoft platform to support .NET. This makes Cloud Foundry one of the first Polyglot PaaS.
The Cloud-era developers need support of a reliable messaging system, NoSQL databases along with relational databases. Cloud Foundry includes support for RabbitMQ for messaging, MongoDB and Redis for NoSQL and PostgreSQL, MySQL as the relational database. The list of supported services is growing and recently PostgreSQL support was added to the platform.
Cloud Foundry can be deployed on notebook PCs through Micro Cloud Foundry. Micro Cloud Foundry is the complete version of Cloud Foundry designed to run in a virtual machine on a developer’s PC or Mac. It can also be deployed on Private Cloud running within an enterprise or on a Public Cloud like Amazon Web Services. This makes Cloud Foundry an extremely flexible PaaS.
Deploying applications on Cloud Foundry
Developers can choose to deploy applications either through the SpringSource Tool Suite (STS) or through the Command line Ruby Gem called VMC.
Cloud Foundry - The Big Picture
Messaging is the nervous system of Cloud Foundry. It is the central communication system that enables all the components to talk to each other.Routers handle all HTTP the traffic targeting the applications. They route URLs to applications and also does load balancing of the traffic across instances.
Cloud Controllers are the key components that handle packaging and staging of the applications. They bind various services to applications. The external REST API is exposed through them.
Health Manager monitors the health of all running applications. In case of a failure of an application, it informs the Cloud Controllers to take action.
DEA stands for Droplet Execution Agent. Every unit of executable code in packaged as a Droplet in Cloud Foundry. These Droplets abstracts the underlying code and exposes a generic executable code unit. DEA is responsible for executing the code within each Droplet. They provide the OS and the runtime environment.
Cloud Foundry is quickly gaining ground as an Open PaaS. Many vendors are announcing their support and bringing newer platforms and services into the stack. It may provide tough competition to commercial PaaS vendors like Microsoft and Google.
- Janakiram MSV, Chief Editor, CloudStory.in