Web applications 云铸造解释

Web applications 云铸造解释,web-applications,service,cloud,cloud-foundry,paas,Web Applications,Service,Cloud,Cloud Foundry,Paas,所以我一直在阅读CloudFoundry,但我仍然不知道它是什么。这是我对CF上PaaS的看法,希望你们能告诉我我是否错了,并更好地解释一下 传统的PaaS产品,如Microsoft Azure或Google AppEngine,提供了一个完整的平台来开发、测试、托管和管理您的web应用程序。但是,您必须使用他们的API,并且仅限于他们提供的服务和支持的语言/框架 CloudFoundry似乎是某种“中间人”,它允许您的应用程序使用来自许多公共云的服务。它是如何做到这一点的?您使用的API是否只

所以我一直在阅读CloudFoundry,但我仍然不知道它是什么。这是我对CF上PaaS的看法,希望你们能告诉我我是否错了,并更好地解释一下

传统的PaaS产品,如Microsoft Azure或Google AppEngine,提供了一个完整的平台来开发、测试、托管和管理您的web应用程序。但是,您必须使用他们的API,并且仅限于他们提供的服务和支持的语言/框架


CloudFoundry似乎是某种“中间人”,它允许您的应用程序使用来自许多公共云的服务。它是如何做到这一点的?您使用的API是否只有一个,比如LibCloud或JCloud?例如,您是否可以使用一个提供商提供的一项服务和另一个提供商提供的另一项服务?Cloud Foundry本身是否提供任何服务,或者它仅仅是一个中间人,允许您轻松地从一个平台迁移到另一个平台,并在一个应用程序中使用来自不同提供商的不同服务组合?

我是Cloud Foundry的开发人员——是的,Cloud Foundry确实有点模糊(没有双关语)。希望我能帮助澄清一些事情

Cloud Foundry是一个平台,但它需要一个底层平台。Cloud Foundry通过该工具支持、和作为基础设施。大多数web应用程序开发人员并不关心这些,但对于那些不得不担心大型IT基础设施的人来说,这真的很酷

假设你是AcmeCorp的负责人。您有50000名员工,他们都使用您的内部web服务Fizzbuzz来帮助他们完成工作。为了支持所有员工,您需要在多台具有强大处理器和大量内存的机器上运行数十个Fizzbuzz应用程序实例,并且还需要大量磁盘空间来存储内部使用的Foo、Bar和Baz应用程序生成的信息。您已经远远超出了在自己的刀片服务器上管理的范围,因此您决定租用一个数据中心

不幸的是,AcmeCorp功能异常。财务部门对您使用的数据中心有很大的发言权,每隔几年他们就会让您从一个数据中心切换到另一个数据中心。每隔几年,你都会有几周的停机时间,而你的工程师们则试图通过在vSphere、vCloud、OpenStack或其他任何设备之间切换来修复Fizzbuzz中暴露的漏洞

如果您的工程师针对Cloud Foundry编写了Fizzbuzz、Foo、Bar和Baz,而不是直接针对底层基础设施,那么您的停机时间就会最小化。您不必太担心被锁定到特定的数据中心,因为该托管层已经被CloudFoundry抽象掉了。CloudFoundry也支持一组特定的服务,例如PostgreSQL、MySQL、Mongo、Redis和RabbitMQ。如果Foo、Bar和Baz使用Cloud Foundry提供的服务,那么当您在基础设施之间迁移时,就不用担心这些问题了

后来,你意识到你可以通过向其他大企业出售Fizzbuzz作为一项服务而发财。在这方面,您的状态非常好:因为您的工程师重新构建了Fizzbuzz以在Cloud Foundry上运行,所以只要需要,您就可以将Cloud Foundry部署到AWS上。客户试用了六个月后决定不续保?没问题,您不需要担心任何数据中心租约——只需终止所有EC2实例,然后继续。您可以很容易地为每个Fizzbuzz实例部署一个Cloud Foundry作为服务,这样您客户的数据就可以完全彼此隔离

蛋糕上的糖衣是CloudFoundry是开源的。如果您发现它不太适合您的需要,您不必只发送电子邮件给支持人员,然后等待Cloud Foundry工程师来实现您的梦想功能——您也有源代码,因此您可以进行任何需要的更改。而且它在下可用,所以拉请求虽然不是必需的,但还是很乐意接受


我希望这能描绘出CloudFoundry解决的各种问题。请随时在评论中询问更多细节,或者您也可以查看是否这对未来的问题更有意义。

我是Cloud Foundry的开发人员倡导者,希望在Mark的回答中添加一点内容,重点关注您在原始问题中提到的其他一些细节

首先,你提到GAE和Azure。这两者都有一定的局限性——例如,GAE限制您使用特定的语言和API。两者都不是开源的。CF是可扩展的(例如,新版本具有buildpack支持,允许您选择“任意”语言运行时),并且您可以选择在需要的地方运行它

Mark提到了我们今天可以运行CF的4个IaaS提供商,但假设所讨论的IaaS(假设我们将Azure、CloudStack、Google Compute Engine等作为未来目标)可以支持少量我们称之为云提供商接口(CPI)的接口,那么您也可以将Cloud Foundry部署到这些基础设施上

您询问如何使用来自不同提供商的服务。与Heroku一样,即将发布的Cloud Foundry(.com)版本将支持“市场”,您可以从其他供应商处插入功能,如果您正在运行自己的Cloud Foundry实例,您可以选择部署哪些服务并连接到您的应用程序


这很酷:-)如果你想知道更多,请在邮件列表上与我们联系

想在Andy的回答中添加这一点作为对API的评论,但遗憾的是,没有足够的声誉这样做。据我所知,Cloud Foundry确实没有特定的API,但它通过环境变量(例如,
VCAP\u服务、VCAP\u应用程序、VCAP\u控制台\u IP、VCAP\u应用程序\u端口
)提供了大量有用的信息,可以从任何语言或框架访问这些信息。Whi
{"application_users": [],
"instance_id":"97467a9cf508cb75273284b948b6319b",
"instance_index":1,
"application_version":"330b7caf-50e5-48f4-8792-1c80a90b06f1",
"application_name":"helloworld",
"application_uris":["helloworld.vcap.me"],
"started_at":"2013-07-22 10:58:16 +0300",
"started_at_timestamp":1374479896,
"host":"0.0.0.0",
"port":61014,
"limits":{"mem":256,"disk":1024,"fds":16384},
"version":"330b7caf-50e5-48f4-8792-1c80a90b06f1",
"name":"helloworld",
"uris":["helloworld.vcap.me"],
"users":[],
"start":"2013-07-22 10:58:16 +0300",
"state_timestamp":1374479896}