CloudFoundry提供应用即服务吗?



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

我将其称为"应用程序即服务",因为它不仅是传统的PaaS,而且还更进一步,使用某种模板化的源代码库部署打包的war。

我的问题:CloudFoundry说他们支持多种框架(Spring, Grails等);这是否意味着它可以做我上面描述的事情?如果不是,那么CloudFoundry所说的"支持Grails框架"是什么意思呢?

使用CF您可以配置平台/操作系统。目前使用的集装箱是典狱长。虚拟化硬件依赖于用于(under) CF的IaaS。然后你可以"点击一个按钮",你的应用程序将被部署并在节点集群(DEA实例)上运行。

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

我不完全明白你在上面做什么,但我可以告诉你关于CloudFoundry的一般工作流程。

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

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

push过程将你的应用程序(ruby, python, php, go, java, grails等)上传到CF。从那里,应用程序文件被构建包转化为一个水滴。这个过程比听起来更简单,构建包只是添加运行应用所需的所有东西,如web服务器或应用容器。创建了液滴后,CF将运行它,如果您愿意,甚至可以运行它的多个实例。

进一步说明/澄清:

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

  • cpu在所有应用程序之间共享。你不能保留或保证每个应用程序的使用。应用程序的使用是有限的,所以一个应用程序不能窃取所有可用的cpu。

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

  • 应用程序的磁盘存储是临时的,当应用程序重新启动时将被清除。持久存储应该通过服务提供。

可以看到,CF管理员对系统有很好的控制。应用程序开发人员没有这么多,但这实际上是PaaS的重点。应用程序开发人员不想把时间浪费在系统管理上。他们只是想运行他们的应用程序。

如果不是,CloudFoundry说他们"支持Grails框架"是什么意思?

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

CloudFoundry系统使用构建包来处理你的应用程序(例如你的Grails WAR文件)并准备它运行的过程。正如我上面提到的,这通常涉及到安装和配置某种服务器。在Java/Grails的情况下,它涉及到设置Apache Tomcat并配置它来运行您的应用程序(注意,如果您不喜欢它的默认配置方式,您可以自定义或创建自己的构建包,以完全按照您喜欢的方式配置它)。

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

最新更新