Cloud Foundry is an open Platform as a Service (PaaS), which is developed and operated by VMware. (VMware is also the company that operates the Spring Framework.) Cloud Foundry is an Open Source project available through a variety of private and public Cloud distributions. It's written in Ruby, but intended to host any language or any other component.
We are in the web/internet era and moving into the Cloud computing generation. In the Cloud generation, a new set of development tools and frameworks are required to make developers more productive. Cloud developers today are requiring platforms on which they write and run applications under a real Cloud environment. This platform, the engine of Cloud generation, is PaaS.
As PaaS offers developers a pre-integrated solution stack, developers really can focus on their code, their program and their business logic. They just push it to the Cloud and let the PaaS engine take care of the functions of the middleware and the infrastructure, as well as the scalability requirements – so, developers don't need to waste their time on all kinds of environment setups, which actually don't add a lot of value to their work.
This is good for all of us. There are many PaaS offerings in the market today, but they all lack some functionality. In consideration of this, VMware introduced their PaaS, Cloud Foundry, with an emphasis on making up for the shortcomings of other PaaS. They focused on three main categories: Clouds, Frameworks and Services.
Firstly, current Clouds in the market are tied to a single Cloud – one public Cloud or one Cloud managed by a single provider. Because Cloud Foundry is open PaaS, it supports an architecture that is extensible and collaborative, and has the ecosystem of technologies that lets developers have the choices they want. So, Cloud Foundry is going to solve the weaknesses and limitations of current PaaS offerings by supporting multiple public Clouds which run in Cloud Foundry as well as private Clouds. This enables developers to have a true kind of public, private and hybrid solution of Clouds running behind the firewall in a public Cloud partner.
Secondly, most Clouds are tied to a single framework and single language. For example, they are supporting only .Net applications, or only Java applications, or only Rails applications, etc. And they are tied to one framework, which is pretty limiting. Companies and developers want to mix and match different types of frameworks or different types of applications that all need to coexist. Cloud Foundry can use multiple frameworks, so it can support Java Spring applications and Ruby on Rails applications at the same time. And it is also extensible to a PaaS engine supporting future frameworks and future languages for developers. (The frameworks and languages currently supported by Cloud Foundry include Spring, Java, Ruby on Rails, Sinatra, Node, Grails and Play.)
Finally, most Clouds are tied to one set of application services, only allowing use of specific databases, specific service technology and management technologies. Again, people want as many choices as possible. Cloud Foundry supports multiple application services. So there are some base services shipped in Cloud Foundry like a relational database, key/value store, and an extensible API allowing more partner technologies to be added in the future. You can plug them into the API to work with Cloud Foundry. (The services currently supported by Cloud Foundry include Redis, MySQL, PostgreSQL, RabbitMQ and mongoDB.)
Now that you’ve been introduced to all of the Cloud Foundry's functionality, how can Cloud developers and customers try it out? Cloud Foundry is available in several comfortable formats.
First, it is available at http://cloudfoundry.com. This is a VMware hosted operating development Cloud. VMware is running this as developer servers to track developers’ build, run and deploy applications. VMware wants to use cloudfoundry.com to educate, evangelize and support developers. As Cloud Foundry is a standard and consistent platform across public, private and public Cloud partners, once you write an application in cloudfoundry.com, you can redeploy that application onto a private Cloud as well as to future Cloud foundry partners.
The second way to try Cloud Foundry is by downloading Micro Cloud. Micro Cloud is all of the open PaaS goodness, in which all Cloud Foundry is condensed down in a single VM and can be downloaded and run on any local computers. It gives many developers a Cloud instance that they can take with them offline, one locally behind a firewall that they can test out with open PaaS immediately. And it is available as a commercial product, with its private and public Cloud features.
Finally, it is available as an Open Source project. Cloud Foundry is Open Source because it has a collaborative environment with a community of developers to continuously improve it. Through this Open Source project, Cloud Foundry will be able to collaborate with the population of Cloud developers to add new languages and new frameworks. Developers and Cloud partners can work with its ecosystem really easily to add new technologies and services.
This blog is written mainly based on Cloud Foundry information supplied by VMware.
More resources and additional information can be found at http://cloudfoundry.com.