We will start with an introdcution of VMware’s cloud solutions vFabric and Cloud Foundry. After that, the further evolution of these PaaS platforms will be discussed.
VMware offers his PaaS cloud solution vFabric Cloud Application Platform for some time. This platform basically consists of these components:
- apache ERS (Webserver / Load Balancer)
- tcServer (Tomcat as an lightweight container)
- RabbitMQ (Message Broker)
- GemFire (NoSQL Datastore)
- Hyperic (Management und Monitoring)
Beside that, there is said to be a tool named Napa for automated provisioning of vFabric systems.
Spring is the prefered programming model. It is no accident that the Spring projects
were pushed lately, so there are the first release versions ready now. This blog post shows the usage of Spring AMQP in detail.
Basically, other frameworks may be used as long as they run in the Tomcat container.
On April 12th, 2011 VMware launched Cloud Foundry. It is an open source PaaS. The launch is decribed in detail by Rod Johnson in this blog post.
With Cloud Foundry, one has to distinguish between the software itself and a public available instance of the system.
- The open source solution can be downloaded at Cloudfoundry.org and can be used within your private oder public cloud (let’s say inside an Amazon EC2 AMI).
- VMware offers a public Cloud Foundry at CloudFoundry.com. After registering, you can use this platform to deploy your applications to. At this point of time, it’s a free service in beta phase.
Cloud Foundry offers out-of-the-box support for Java/Spring, Ruby/Rails & Sinatra and Node.js. There will be support for further JVM language in the future. Recently support for Scala was added.
To persist your data, you can choose between MySQL, Redis and MongoDB. For an easy access to the NoSQL databses Redis und MongoDB there are APIs inside the Spring Data project.
You can deploy your applications quite easily with the command line tool vmc (coming as a Ruby Gem) or with a plug-in for the Spring ToolSuite (STS). Being a Ruby rookie, I was able to install Ruby und vmc and deploy my first although trivial Ruby program to Cloud Foundry within minutes.
A very important aspect of cloud solutions is the automated load dependent scaling of the system.
Cloud Foundry offers this elastic scaling. There is webinar discussing this in detail: Cloud Foundry Live Webinar – Part 6 (Scale Out). The API used by vmc can also by utilized by monitoring solutions like Hyperic or AppDynamics to perform a load based scaling of your applications. Auto scaling is not offered out-of-the-box by the vFabric platform.
Can Cloud Foundry be seen as a supplement for vFabric or is a competitor? Will we see parts of the vFabric stack on CloudFoundry.com, e.g. RabbitMQ as a message broker? Can the auto scaling of Cloud Foundry be incorporated into vFabric to close a gap in that platform, the missing of a real elasticity?
Did you make first experiences with scaling down, i.e. to decrease the number of running server instances? What happens to the user sessions on the nodes to be removed?
I’m looking forward to your contributions to this discussion.