CloudFoundry由VMware开发,初衷是为广大应用开发者、应用运营商和云运营商简化部署。随后在2011年4月,CloudFoundry宣布成为开源项目,采用Apache2.0许可,声称开发者可以用自己选择的语言和web框架编写代码,无需担心具体的IT环境。2014年2月,从VMware分拆出来的Pivotal宣布成立CloudFoundryFoundation。Pivotal、EMC、IBM、Rackspace和VMware都是白金赞助商。该基金会的队伍已经扩大到33个成员和42个捐赠代码的公司。CloudFoundry的差异化优势之一是它支持PivotalHDHadoopMapReduce、HAWQSQLforHadoop和GemFireXD分析平台。Pivotal的大数据服务和移动服务现在都与该公司的CloudFoundry企业版PivotalCF集成。CloudFoundryFoundation的几个成员已经发布了他们自己的CloudFoundry发行版,包括ActiveState的Stackato产品。免费的StackatoMicroCloud可用于VirtualBox、VMwareFusion/Player、VMwarevSphere和KVM。虽然开源的MicroCloudFoundryVM还没有更新到CloudFoundryv2,但是你可以使用bosh-lite或者cf_nise_installer在本地安装CloudFoundry开源产品。bosh-lite支持VMwareFusion/Player、VirtualBox和AmazonWebServices(AWS),而cf_nise_installer仅支持VirtualBox。我问为什么Pivotal缺少MicroCloudFoundryv2VM,PivotalCE社区工程师JamieO'Meara回答如下:我们的重点是为CloudFoundry提供企业级的PaaS体验,这包括安装到大量的云服务提供商平台例如vSphere/vCHS、OpenStack、AWS和GoogleComputeEngine。作为这种体验的一部分,我们发现开发人员愿意构建和使用他们的本地工具,或推送到CloudFoundry的私有和公共实例。bosh-lite工具为CFv2的一部分提供支持以执行特定任务,例如构建BOSH可部署服务,例如数据库。它不是MicroCloudFoundry的替代品,MicroCloudFoundry仍在我们的路线图上。Stackato的Micro基于CFv2,添加了一些专有组件。Pivotal本身有两个CloudFoundryPaaS解决方案:在线版PivotalWebServices和PivotalCFforenterprises。补充这些解决方案的是PivotalHD和相关的云服务解决方案,以及其他专门构建的数据解决方案,例如PivotalGreenplumRDBMS、Pivo??talGemFire和PivotalSQLFire。此外,Pivotal在前一年收购了XtremeLabs,为其带来了一套与其PaaS和大数据服务集成的移动服务。正如JamieO'Meara在声明中提到的,PivotalCF可以在VMware、OpenStack、AmazonWebServices和GoogleCloudPlatform上运行。CloudFoundry的架构和特性CloudFoundry弹性运行时系统运行一个打包的应用程序,在DEA(DropletExecutionAgent)中称为droplet,droplet是一个打包文件,包含了你的应用程序的所有代码和依赖。DEA由CloudController管理,由HealthManager监控,Routers负责管理应用程序流量、负载均衡和合并日志。反过来,DEA调用服务代理节点,这些节点通过消息总线进行通信。云控制器可以访问二进制大对象(blob)存储和包含应用程序元数据和服务凭证的数据库。要部署应用程序,开发人员基本上会上传应用程序代码和元数据,使用CloudFoundry命令行,或使用来自Eclipse、Maven或Gradle的插件。此外,开发人员需要创建和绑定服务。这一切都归结为构建WAR档案,并上传该WAR。云控制器自动检测并加载任何必要的系统构建包、创建一个Droplet、将应用程序Droplet部署到DEA、注册路由和转发端口。一旦DEA处于活动状态,健康管理器就会将来自云控制器的DEA预期状态与来自DEA的实际状态进行比较。如果健康管理器检测到偏差,它将要求云控制器重新启动任何未处于预期状态的DEA。管理员使用BOSH而不是Puppet或Chef等其他IT自动化工具来管理CloudFoundry的底层基础设施。作为大规模分布式服务的版本设计、部署和生命周期管理的开源工具链,BOSH有自己的命令行,这与cf命令行不同,但你不需要它来部署应用程序。BOSH是用来部署虚拟机的,不是用来部署droplet的。基本上,BOSH通过虚拟机模板“stemcell”克隆新的虚拟机,以创建部署的应用程序所需的虚拟机。stemcell包括操作系统和一个嵌入式BOSH代理,它允许BOSH控制通过stemcell克隆的虚拟机。BOSH版本是源代码、配置文件和启动脚本的集合,版本号可以识别这些组件。BOSH部署清单文件是一个YAML文件,用于定义部署的布局和属性。CloudFoundry包括UAA(用户帐户和授权)和登录服务器。UAA是CloudFoundry的身份管理服务。它的主要作用是充当OAuth2提供者,在代表CloudFoundry用户运行时颁发客户端应用程序使用的令牌。但是,它还通过用户的CloudFoundry凭据对用户进行身份验证,并充当SSO(单点登录)服务。登录服务器为UAA执行身份验证任务,并充当后端服务。CloudFoundry管理员可以在登录服务器上设置身份验证源,例如LDAP/AD、SAML、OpenID(Google、Yahoo等)或社交网站。对于应用程序执行,DEA使用WardenLinux容器。Warden提供了一组简单的API,用于管理孤立的、短暂的、资源受控的环境或容器。未来,CloudFoundry将支持Docker容器。CloudFoundry架构框图。#p#使用Buildpacks部署应用程序Buildpacks为您的应用程序提供框架和运行时环境支持。CloudFoundry和PivotalCF中有四种标准构建包:Java、Node.js、Ruby和Go。(Stackato使用Python而不是Go。)好消息是构建包很容易获得,易于安装,甚至易于构建,假设您可以用Ruby或其他编程语言编写几行代码。在大多数情况下,您需要的开源语言和框架将以构建包的形式提供;如果您需要加载它,只需在推送应用程序时在cf命令行中提及Git存储库:$cfpushmy-new-app-bgit://github.com/johndoe/my-buildpack.git另外,在中提及buildpack你的清单文件。例如,在这个由DanielMikusa创建的存储库(https://github.com/dmikusa-pivotal/cf-ex-worpress)中可以找到适用于CloudFoundry的工作WordPress。要安装它,您只需克隆存储库,它并不大;在您的CloudFoundry实例中创建一个MySQL服务,在您的本地机器上编辑清单和配置文件;并使用cfpush命令推送应用程序。在编辑之前,manifest.yml文件如下所示:---applications:-name:mywordpressmemory:128Minstances:1host:mywordpressdomain:cfapps.iopath:.buildpack:https://github.com/dmikusa-pivotal/cf-php-build-pack.gitservices:-mysql-db您可能猜到了,清单文件中的buildpack(buildpack)行引用了PHPGit存储库和Apachebuildpack。CloudFoundry使用NATS在其环境的各个部分之间进行消息传递,NATS是一种用Ruby编写的轻量级分布式发布/订阅消息传递系统。CloudFoundry服务API定义了云控制器和服务代理之间的契约。代理需要在URI前缀下实现多个HTTP(或HTTPS)端点,这可能会实现负载均衡机制。用户提供的服务实例是一种机制,可为在CloudFoundry外部预配置的服务实例(例如Oracle集群)的应用程序提供凭证。Pivotal有一个大数据产品,PivotalHD,它与PivotalCF集成在一起。该产品包括Hadoop、Pivo??tal的HadoopHAWKSQL查询引擎、GemFireXD分析平台和SpringforApacheHadoopJava框架。PivotalBigDataSuite是一款企业数据仓库产品,其中包含无限量的PivotalHD。PivotalWebServices市场中的服务通常有多种计划,从免费到每月不少于100美元不等。据Pivotal称,在实践中,管理员定义了HDFS和MapReduce实例的服务池,这些实例可以在大约五分钟内在PivotalCF上从头开始配置。之后,开发者或应用可以向服务池请求实例,2秒左右即可获取到实例,然后可以在后台为资源池创建新的实例。当不再需要请求的实例时,可以将其释放。Pivotal还提供与PivotalCF和PivotalHD集成的移动服务套件(MobileServicesSuite)。该套件汇集了去年收购的XtremeLabs七年的开发和技术专业知识。说白了就是Pivotal的PaaS上的一种MBaaS(MobileBackendasaService),集成的范围已经扩展到了移动应用层面。CloudFoundry的安装和使用PivotalWebServices注册是一个非常简单的过程。我使用开发者控制台没有问题,下载和安装cf命令行只需要一两分钟。该文档非常清楚地说明了使用cf部署应用程序所需的几个步骤。如前所述,MicroCloudFoundryVM尚未更新到CloudFoundryv2。虽然我找到了两种将当前CloudFoundry开源产品安装到本地虚拟机的方法,但每种方法都需要几个小时才能完成。下载StackatoMicroCloudVM(下载10分钟)然后将其安装到我的MacBookPro上的VMwareFusion(安装2分钟)对我来说要容易得多。我还安装了Stackato命令行,它是cf的超集。事实证明,在浏览器中使用StackatoDeveloperConsole与使用PivotalWebServicesDeveloperConsole非常相似。除了目前缺少MicroCloudFoundryVM(这有点烦人)之外,CloudFoundry非常易于安装和设置。您需要的一切都可以下载;安装过程很简单。您可以从在线或内部小规模开始,然后在短短几分钟内逐步扩展您的云环境;您还可以花几个小时在合适的虚拟机主机上安装企业云。对于开发人员来说,从命令行、Eclipse、SpringToolsSuite、Maven或Gradle部署Droplet非常简单,只要您构建一个包含任何必要构建包的有效清单文件即可。Droplets和DEA管理起来简单直观,但我希望应用程序的自动缩放得到完全支持,而不是作为PivotalCF中仅针对大型企业的Beta功能。StackatoMicroCloudVM适用于VirtualBox、VMwareFusion、VMwarevSphere和KVM,是目前将CloudFoundry引入开发人员桌面的最快方式。在图中,Stackato管理控制台在StackatoMicroCloud窗口后面运行。管理CloudFoundry云并不难,但BOSH是一个强大而复杂的工具,学习起来并不容易。如果管理员熟悉Puppet和其他流行的配置管理和编排工具,他们学习BOSH没有问题,但他们需要一点时间才能上手。总的来说,CloudFoundry是一个强大的PaaS。除了开源版本之外,Pivotal还有两个专有版本:在线版PivotalWebServices和内部部署版PivotalCF。虽然我没有评估基金会成员提供的所有基于CloudFoundry的专有PaaS解决方案,但在评估ActiveState的Stackato后,我发现它简化了开源版本中尚未固化的几个方面,由于云管理和语言支持增加了价值。#p#CloudFoundry简介优势拥有并支持大量的语言、Web框架和数据库为开发者和云运维人员提供简单快捷的自助式部署 应用容器、服务、节点的健康状态尽在掌握监控并在未处于预期状态时自动重启PaaS支持大数据和移动服务可以从命令行、Eclipse、SpringToolsSuite、Maven和Gradle部署缺点自动水平扩展仍处于测试阶段CloudFoundry的PaaS:ActiveState的Stackato已经有这个功能。目前还没有CloudFoundryv2的“微型”VM可供下载,但您可以下载StackatoMicro,或使用两个CloudFoundry安装工具之一,将CloudFoundry安装到本地虚拟机中。仅限于在UbuntuLinux上运行的应用程序,除非您使用的是Uhuru的Windows版本的CloudFoundry,我们尚未对其进行审查。平台VMwarevSphere、OpenStack、AmazonWebServices和GoogleCloudPlatformCostCloudFoundry,免费开源;PivotalWebServices,两个月免费试用后每小时每GB3美分,应用程序内存高达2GB,10个免费市场服务;PivotalCF,价格基于运行的应用程序实例数和运行的OperationsManager实例数,90天免费评估许可证。英文原文链接:http://www.infoworld.com/article/2608299/cloud-computing/review--cloud-foundry-brings-power-and-polish-to-paas.html
