At the Silicon Valley Cloud Computing meet-up this past weekend, Ezra Zygmuntowicz, a co-creator of Cloud Foundry at VMware, stood before a white board and walked the group through the Cloud Foundry architecture. And while it’s fresh in my mind, I thought I’d briefly describe my understanding of how it works.
VMware created Cloud Foundry as an open-source PaaS (Platform-as-a-Service). Written in Ruby, Cloud Foundry runs on any hypervisor (or a physical server) and uses Ubuntu as the base operating system.
Cloud Foundry is designed fundamentally for extensibility. It is multi-cloud, running at VMware, at third-party service providers, or in the enterprise data center. It is multi-service, providing a framework for plugging in additional services such as databases and messaging. It is multi-language, providing plug-in support for adding additional languages and frameworks. Currently, Cloud Foundry supports several languages—Rails, Sinatra, Grails, node—and the team expects the community to add their favorites to the mix.
Through these three planes of extensibility, VMware hopes to keep the cloud open. Zygmuntowicz described it as the Linux kernel for the cloud.
Cloud Foundry includes the following loosely-coupled components, each of which scales horizontally.
Droplet Execution Agent (DEA): The DEAs are the containers that run applications. These form a grid that spans many servers.
Cloud Controller: The controller distributes applications to DEAs in the grid. It does so by broadcasting a message for nodes with availability and choosing the first nodes that respond.
Routers: The routers distribute incoming requests to the appropriate application by keeping track of the nodes that host each application.
Services: Services such as databases are made available to applications running in the DEAs.
Health Manager: The health manages keeps an eye out for failed DEAs and informs the controller to create new instances of applications to replace any that fail.
VMC: A command line tool for deploying applications. To deploy, just type vmc push foo.
Cloud Foundry makes a lot of sense for VMware and the industry as a whole. VMware is not traditionally an application server vendor, so Cloud Foundry does not cannibalize existing business. Through its extensibility, Cloud Foundry makes sure the cloud remains a friendly place for VMware’s virtualization software, much more so than it would be in the hands of Microsoft and Google (neither Azure nor Google Apps Engine utilizes VMware.) The extensibility of Cloud Foundry ensures a diverse and competitive landscape in cloud computing.
Cloud Foundry a Developer’s Perspective: http://www.slideshare.net/mccrory-me/cloud-foundry-a-developers-perspective
Cloud Foundry site: http://www.cloudfoundry.com/
Team blog: http://blog.cloudfoundry.com
Ezra Zygmuntowicz ‘s personal blog: http://brainspl.at