CloudFoundry是否提供Application-as-a-Service?

时间:2014-06-26 11:41:08

标签: grails cloudfoundry paas

我正在寻找一个基于云的(pub,priv或hybrid)解决方案,它允许我为我的应用配置有关平台的每个细节(容器,系统堆栈,虚拟化硬件等),但也在我运行第一个版本时,立即在所有应用服务器节点上部署我的应用的模板版本。因此,我配置应用程序/平台,单击按钮,然后繁荣:我已经部署了WAR并在节点集群中运行。 (当然,既然我此时还没有编写任何代码,这个部署的WAR会在其中包含de minimis代码,并且会产生生成WAR所需的最小代码。对于Grails,它可能只是代码通过运行grails create-app myapp生成的。)

我称之为“应用程序即服务”,因为它不仅是传统的PaaS,而且更进一步,使用某种模板化的源代码存储库来部署打包的WAR。

我的问题:CloudFoundry表示他们支持多种框架(Spring,Grails等);这是否意味着它可以做我上面描述的内容?如果没有,当CloudFoundry说他们“支持Grails框架”时,它意味着什么呢?

2 个答案:

答案 0 :(得分:0)

使用CF,您可以配置平台/操作系统。目前使用的容器是监护人。虚拟化硬件依赖于用于(下)CF的IaaS。然后,您可以“单击一个按钮”,您的应用程序将在节点集群(DEA实例)中部署和运行。

答案 1 :(得分:0)

  

CloudFoundry表示他们支持多种框架(Spring,Grails等);这是否意味着它可以做我上面描述的内容?

我没有完全按照您上面尝试的方式进行操作,但我可以告诉您有关CloudFoundry的一般工作流程。

作为管理员,您使用Bosh将CloudFoundry部署到您的IaaS。您可以在IaaS级别控制您想要的任何内容(假设您是IaaS的管理员),只要您满足CF的要求,如存储,内存和CPU。此外,您可以通过调整CF的各种配置设置(YAML文件)来控制CF部署。这允许您调整可供应用程序开发人员使用的资源量(内存,CPU,磁盘空间等)。

作为开发人员,您可以将应用程序推送到正在运行的CF安装中。您可能是也可能不是该CF安装的管理员,如果您不是,那么您将受到管理员政策的约束。

推送过程将您的应用程序(ruby,python,php,go,java,grails等...)上传到CF.从那里,应用程序文件由构建包转换为Droplet。这个过程比听起来容易,构建包只是添加运行应用程序所需的所有东西,比如Web服务器或应用程序容器。在创建了Droplet的情况下,如果您愿意,CF将运行它,甚至可能运行它的多个实例。

进一步说明/澄清:

  • 您的应用程序获得多少内存取决于应用程序开发人员,并且可以在推送或稍后使用cf scale时调整应用程序。

  • 所有应用都共享CPU。您无法保留或保证每个应用的使用情况。但应用程序使用受到限制,因此一个应用程序无法窃取所有可用的CPU。

  • 每个应用的磁盘存储量由管理员设置。

  • 应用程序的磁盘存储是短暂的,并在重新启动应用程序时清除。应通过服务提供持久存储。

如您所见,CF管理员可以很好地控制系统。应用程序开发人员并没有那么多,但这实际上是PaaS的重点。应用程序开发人员不想浪费时间玩sys-admin。他们只是想运行他们的应用程序。

  

如果没有,当CloudFoundry说他们支持Grails框架&#34时,它意味着什么?

这意味着您可以获取Grails生成的WAR文件,并在CloudFoundry上运行它而无需任何额外的工作。

CloudFoundry系统使用构建包来处理获取应用程序(即Grails WAR文件)并准备运行的过程。如上所述,这通常涉及安装和配置某种服务器。对于Java / Grails,它涉及设置Apache Tomcat并对其进行配置以运行您的应用程序(注意,如果您不喜欢它默认配置的方式,您可以自定义或创建自己的应用程序)构建包以完全按照您喜欢的方式配置它)。

CloudFoundry支持Grails和其他基于JVM的语言,因为它可以使用这些应用程序并自动安装,配置和运行它们。