标题：Cloud Foundry
Cloud Foundry云平台特点
  Cloud Foundry云平台灵活的选择性Cloud Foundry为开发者构建了具有足够选择性的PaaS云平台，它同时支持多种开发框架、编程语言、应用服务以及多种云部署环境的灵活选择，其主要特点如右图所示：[1]开发框架的选择性当前大多数PaaS云平台只支持特定的开发框架，开发者只能部署平台支持的框架类型的应用程序。Cloud Foundry云平台支持各种框架的灵活选择，这些框架包括Spring for Java，.NET，Ruby on Rails，Node.js，Grails，Scala on Lift以及更多合作伙伴提供的框架（如Python，PHP等)，大大提高了平台的灵活性。应用服务的选择性CloudFoundry云平台将应用和应用依赖的服务相分开，通过在部署时将应用和应用依赖的服务相绑定的机制使应用和应用服务相对对立，增加了在PaaS平台上部署应用的灵活性。这些应用服务包括PostgreSQL，MySQL，SQL Server，MongoDB，Redis以及更多来自第三方和开源社区的应用服务。部署云环境的选择性灵活性是云计算的重要特点，而部署云环境的灵活性是PaaS云平台被广泛接受的重要前提。用户需要在不同的云服务器之间切换，而不是被某家厂商锁定。Cloud Foundry可以灵活的部署在公有云、私有云或者混合云之上，如vSphere/vCloud，AWS，OpenStack，Rackspace等多种云环境中。
通过以上三个维度的开放架构，Cloud Foundry克服了多数PaaS平台限制在非标准框架下且缺乏多种应用服务支持能力的缺点，尤其是不能将应用跨越私有云和公有云进行部署等不足，使得Cloud Foundry相比其他PaaS平台具有巨大的优势和特色。
Cloud Foundry云平台组成及架构
Cloud Foundry是由相对独立的多个模块构成的分布式系统，每个模块单独存在和运行，各模块之间通过消息机制进行通信。Cloud Foundry各模块本身是基于Ruby语言开发的，每个部分可以认为拿来即可运行，不存在编译等过程。Cloud Foundry云平台整体逻辑组成如右下图所示：
  Cloud Foundry云平台逻辑视图从图中可以看到，Cloud Foundry云平台是完全模块化的分布式系统，各个模块之间是相互独立的，通过消息总线进行相互连接和通信，这种结构不仅使系统各模块之间的耦合度降低，而且使系统功能容易扩充。此外，开发人员可以通过VMC命令行工具或STS插件方便的部署应用程序到Cloud Foundry云平台上，最终用户可以通过浏览器访问运行在Cloud Foundry云平台上的应用。所有的访问请求都通过Router进行转发，分别由云控制器Cloud Controller和应用运行代理DEA模块进行请求响应，应用生命周期管理Health Manager模块负责监控和管理整个应用在云平台上的正常运行，云平台的各种应用服务由Services模块提供，可以灵活扩展。Cloud Foundry云平台整体架构如右下图所示：[2]
  Cloud Foundry云平台整体架构
从图中可以看到，Cloud Foundry云平台主要有Router、Cloud Controller、Health Manager、DEA、NFS、NATS、Cloud Controller Database以及Service等模块组成。这些模块协同合作，通过特定的消息传输机制和API接口进行通信，就可以使整个云平台正常运行。由于在集群环境下每个模块都有多个部署节点，从而保证了云平台的可靠性和弹性动态扩展的需求，使得应用程序可以稳定可靠的运行在Cloud Foundry云平台上。[2]
CloudFoundry云平台运行类型
Cloud Foundry能够部署在私有云或公有云环境中，既可以运行在vSphere/vCloud架构之上，也可以运行在其他云基础设施（IaaS）之上。例如，Cloud Foundry可以部署在AWS之上，还可以部署在Eucalyptus和OpenStack等开源平台技术之上。也就是说，Cloud Foundry可以运行在多种IaaS之上，与IaaS的耦合性很低。目前，Cloud Foundry的运营方式主要有以下三类：公有云服务平台  CLoudFoundry.com整体架构
公有云服务平台是指目前VMware公司自己运营的一个免费公有云平台及其合作伙伴的PaaS云平台。当前VMware公司自己运维着一个公有PaaS云服务平台，该平台为开发者提供了一个简单的途径来试用Cloud Foundry云平台，并为新的服务和软件的运维优化提供一个测试平台。该平台现在是Beta版，开发者可以注册并部署自己的应用到该云平台上。该公有云平台的总体架构如右图所示：[3]私有云服务平台私有云服务平台是指在企业内部构建的云服务平台。VMware也提供商业版本的Cloud Foundry给想部署PaaS平台的企业，帮助他们在自己的云中构建企业PaaS云平台。企业PaaS云平台在技术本质上是构建统一的企业IT基础架构，也就是将企业IT资源整合为服务，以供企业各部门和其他企业共享使用，从而提高企业IT资源的使用率。具体而言，构建企业私有云服务平台的总体架构如右下图所示：
  Cloud Foundry企业私有云整体架构Cloud Foundry提供了一个完整的PaaS平台，他包含了PaaS平台所应具有的全部特性，其所有的代码都在Github里统一维护和管理，在Cloud Foundry主代码库vcap里面有一个叫做dev_setup的目录，其中包含了用于Cloud Foundry平台部署的脚本代码，通过Chef方式可以根据这些脚本代码方便的将Cloud Foundry云平台部署到企业私有数据中心中。在私有云环境中部署多节点Cloud Foundry的参考部署方案如右下图所示：[4]
  Cloud Foundry企业私有云部署图
从图中可以看到，我们采用一个服务器作为负载均衡节点，由他来转发所有的用户请求给路由器，使用四台服务器安装路由器模块，接收由负载均衡服务器转发过来的请求，使用三台服务器作为Cloud Controller服务器，另外使用一台服务器安装Cloud Controller Database，采用的数据库是PostgreSQL数据库，使用五台服务器作为HealthManager服务器负载平台的监控和管理，使用五台服务器安装DEA模块，最后用五台服务器安装各种服务Services，为云平台提供各种服务。整平台的通信模块NATS使用一台服务器，他使整个集群的各模块相互通信并正常运行。[5]本地微云平台  Micro Cloud Foundry本地微云
本地微云Micro Cloud Foundry是指可以压缩云到开发者的笔记本上单个虚拟机里运行的测试Cloud Foundry云平台环境。通过微云，VMware提供了运行在单个虚拟机里的Cloud Foundry版本，这可以帮助开发者在自己的机器上建立和测试他们的应用，确保开发环境和生产环境的一致性。[6]
Cloud Foundry云平台开源和社区支持
  Cloud Foundry社区支持
当今云计算时代，开源技术是必不可少的。Cloud Foundry的开源架构和社区进程将会为开发人员带来高效简洁的PaaS服务，加速应用交付的速度。Cloud Foundry源代码可从Github中获得，这提供了很好的扩展能力，允许社区扩展和集成其他的框架、应用服务或架构到Cloud Foundry云平台。基于Apache 2的许可证下可以获得，该自由的许可证模式可以激励广泛的社区贡献者。尽管它不属于Spring项目，Cloud Foundry也将像Spring项目一样，被长期监管的同时确保开源。利用PaaS云平台，开发者可以避免更新机器、配置中间件的很多麻烦，从而专注于应用程序的交付。Cloud Foundry的开源模式如右图所示：[7]
Cloud Foundry拓展了VMware对于开放PaaS的承诺，能够广泛支持各种开发框架和编程语言以及多样的应用服务和云部署环境。Cloud Foundry鼓励其合作伙伴对平台的框架、编程语言及应用服务进行扩展，以支持更加完善的应用类型。
Cloud Foundry开源社区及合作伙伴(4张)如果开发者有兴趣为Cloud Foundry开源云平台添砖加瓦，扩展平台功能，可以访问CloudFoundry社区支持和Cloud Foundry平台的Github源代码库，了解代码库的结构和社区贡献的流程。现在，VMware更新了社区代码管理的工具，使得社区开发者可以和VMware内部团队共享同样的代码审核、发布流程和工具，以让更多的开发者和合作伙伴为Cloud Foundry平台开发扩展功能，提供更加完善的平台应用支持环境。[8]
作为业界第一个开源PaaS平台，Cloud Foundry由于在诸多方面优于当前其他PaaS平台，并且在快速的成长和发展。随着第一个正式版的推出和用户的不断增长以及开源社区的不断壮大，相信Cloud Foundry云平台将彻底改变业界PaaS的格局，逐渐发展为业界PaaS平台的标准，成为云计算时代的Linux操作系统。[9]