First things first: The Cloud Foundry Platform as a Service (PaaS) offering is not exclusively Java-based. The vision behind the platform, a VMware-led project, is larger than that. Cloud Foundry aspires to support multiple development frameworks and cloud infrastructures. Aside from the standard PaaS value proposition -- freeing developers from having to worry about the underlying infrastructure that powers their apps and allowing them to deploy and scale apps in seconds -- Cloud Foundry aims to allow developers to deploy their apps to the cloud using their existing tools and without any modification to their code.
With Cloud Foundry, developers can build, deploy and run cloud apps using a number of languages and frameworks, including Spring for Java and Rails and Sinatra for Ruby. Completed apps can run on a public cloud, a private cloud, and offline on a desktop or laptop. Similar to Spring, Cloud Foundry is published under the Apache License, version 2.0 -- a widely adopted license that helps to create strong, diverse communities.
Cloud Foundry provides a particularly convenient platform for Java applications on public and private clouds. The idea is that Java developers don't need to architect their applications in a special way or work with a restricted subset of language or framework features, nor do they need to call APIs specific to Cloud Foundry.
What Does Cloud Foundry Include?
When VMware launched the product earlier this year, it "modestly" proclaimed that Cloud Foundry breaks new ground in PaaS by supporting choice for programming models, services (from VMware and third parties), and deployment clouds. The product also was delivered in open source.
Cloud Foundry is available as:
- CloudFoundry.com -- a complete hosted PaaS environment
- CloudFoundry.org -- an open-source project where developers and community members can collaborate and contribute to the project
- Micro Cloud Foundry -- a complete version of Cloud Foundry that runs in a virtual machine on a developer's Mac or PC.
CloudFoundry.com is a multi-tenant PaaS that runs on vSphere and is hosted, managed and supported by VMware. This flavor of Cloud Foundry supports Spring for Java apps, Rails and Sinatra for Ruby apps, Node.js apps and apps for other JVM languages/frameworks including Groovy, Grails and Scala. Cloud Foundry also offers MySQL, Redis, and MongoDB data services, as well as the RabbitMQ messaging service.
Micro Cloud Foundry is a micro-PaaS that is available as a free download for personal use. It provides the flexibility of local development while preserving a developer's options for future app deployment and scaling.
At its core, Cloud Foundry includes a self-service application execution engine, an automation engine for application deployment and lifecycle management, and a scriptable command line interface (CLI). It also comes with an application services interface, a cloud provider interface, an open architecture for quick development, and a set of development and deployment tools.