CloudFoundry:Java,Ruby或Node.js?

我碰巧知道VMWare的新项目CloudFoundry

如果我想在CloudFoundry.com上部署应用程序,哪种语言是最好的select?

显然,就像Google App Engine一样,Python是最成熟的,而Go是最不成熟的。

CloudFoundry如何?

开源软件CloudFoundry是用Ruby编写的,但广告总是在Java之前放入Java。 像“运行您的Spring,Rails,Node.js和Scala应用程序”。请参阅以下图片: 在这里输入图像描述

这是否意味着对Java的支持比Ruby更好呢?

我认为你对有关语言顺序的东西读得太多了。 像大多数其他问题一样,问“我应该select哪一种语言”,答案更多的是与您正在构build的应用程序types以及您在各种语言中拥有的专业知识的数量有关,而不是哪种语言是“最好的”。

作为一名前App Engine团队成员,现在是Cloud Foundry团队的一员,我赞同Andrew的观点:使用您所偏好的语言和框架,最适合这项工作的工具,Cloud Foundry都会平等地对待它们。

App Engine团队需要为底层Google服务创build特定于语言的绑定,通常先执行Python,然后执行Java,然后执行Go,所以在Python中引入一个function之前,语言(尽pipe最近随着产品成熟而变得更好)。

Cloud Foundry使用这些框架的现有服务接口向各种语言/框架提供服务,它只是自动进行服务提供和绑定(连接/configuration参数不再在属性文件中硬编码,它们由Cloud Foundry在运行时提供,在一种特定于框架的方式)。 例如,当Cloud Foundry中引入RabbitMQ时,我们不需要为每种语言的服务创build一个新的API,我们只是利用每个语言/框架的现有AMPQ客户端库。

GAE的比较在这里是不合适的。 GAE和CF之间的区别之一是在CF中没有使用特定的API。 如果您正在编写RoR应用程序,则只需编写应用程序然后进行部署即可。 同样的事情,如果你正在写一个Spring或Grails应用程序。

我的理解是,通过VMware提供和维护的核心集成,它们应该被平等对待。 当然,CF仍处于testing阶段,平台之间支持水平的差异可能存在,但这可能是一个错误,而不是一个特征。

所以,我认为Brandon Tilley在很大程度上是正确的,因为您应该考虑最适合您的应用程序的语言/平台,而不是适合于CF的语言/平台。

这真的不重要,用你熟悉的东西。 应用程序的关键是你设置的体系结构,而不是你使用的语言或堆栈。

那么当然,其他答案仍然是大多数答案都是开放性的结果,“这取决于!” 🙂

我认为Java和Spring将是最好的select。 我会在Ruby或node.js之前做到这一点。 Spring Source是在VMWare回来之前购买的(一年前?两年?),所以它是有道理的。