Cloud foundry CloudFoundry-如何理解应用程序的操作系统(OS)环境?

Cloud foundry CloudFoundry-如何理解应用程序的操作系统(OS)环境?,cloud-foundry,paas,iaas,Cloud Foundry,Paas,Iaas,我们使用cf push和下面的清单文件在CloudFoundry上推送java应用程序 applications: - name: xyz-api instances: 1 memory: 1G buildpack: java_buildpack_offline path: target/xyz-api-0.1-SNAPSHOT.jar 我知道,PAAS(例如:cloud foundry)

我们使用
cf push
和下面的清单文件在CloudFoundry上推送java应用程序

    applications: 
       - name: xyz-api 
         instances: 1 
         memory: 1G 
         buildpack: java_buildpack_offline 
         path: target/xyz-api-0.1-SNAPSHOT.jar

我知道,PAAS(例如:cloud foundry)是IAAS(例如:承载linux和windows虚拟机的vcenter)之上的一层

在清单文件中,
buildpack
只是讨论运行应用程序所需的用户空间运行库


来自非云背景,阅读此清单文件,我想了解

1) 如何理解应用程序正在运行的操作系统(OS)环境?在哪个操作系统上

2) 在bosh实例上运行的应用程序与docker容器有何不同

1) 如何理解应用程序正在运行的操作系统(OS)环境?在哪个操作系统上

堆栈决定应用程序将运行的操作系统。清单中有一个
stack
属性,或者您可以使用
cf push-s
来指示堆栈

您可以运行
cf stacks
查看所有可用的堆栈

在编写本文时的大多数环境中,您将拥有
cflinuxfs2
。这是Ubuntu Trusty 14.04。它将被
cflinuxfs3
所取代,后者是Ubuntu Bionic 18.04,因为Trusty只支持到2019年4月。不过,您总是会有一些
cflinuxfs*
堆栈,其数量会根据您阅读本文的时间而有所不同

在某些环境中,您可能还具有基于Windows的堆栈。原始的基于Windows的堆栈是
windows2012r2
。我写这篇文章时,它已经很老了,所以你可能不会再看到它了。您可能会看到的是
windows2016
,或者可能是更新的,具体取决于您阅读本文的时间

如果你需要更多的控制,你可以推一个docker容器。这将让你为你的应用选择完整的操作系统映像

2) 在bosh实例上运行的应用程序与docker容器有何不同

运行在CloudFoundry上的应用程序不是由BOSH直接部署的。应用程序在容器中运行。该容器由迭戈调度和运行。迭戈是一个波什部署的虚拟机。这里面还有一层

从核心上讲,在CloudFoundry上运行应用程序和在docker容器中运行应用程序之间的区别是最小的。它们都运行在一个Linux“容器”中,内核名称空间和cgroup对其进行了限制

区别在于a.)如何构建容器和b.)如何部署容器

使用CloudFoundry,您不需要构建容器。您将应用程序提供给CF&CF根据所选堆栈和BuildPack添加的其他软件构建容器映像。CF术语中的输出称为“水滴”,但它基本上是一个OCI映像(buildpacks v3更是如此)。当您需要升级或添加新代码时,只需重复该过程并再次推送即可。由平台自动更新的堆栈和构建包将反过来为您提供一个经过修补的最新应用程序映像

使用Docker,您可以手动创建映像,从头开始或从某个受信任的基本映像构建映像。您可以添加自己的运行时和应用程序代码。当您需要升级时,您需要从基本映像和运行时中获取更新,或者更糟的是从零开始更新映像

当涉及到部署时,CF会自动为您处理这一切。它可以运行任意数量的你想要的应用程序实例&它会自动放置这些实例,以便你的应用程序能够在基础设施中抵御故障&CF

对于Docker,这取决于您,或者越来越多地取决于其他一些工具,比如Kubernetes

希望有帮助

1) 如何理解应用程序正在运行的操作系统(OS)环境?在哪个操作系统上

堆栈决定应用程序将运行的操作系统。清单中有一个
stack
属性,或者您可以使用
cf push-s
来指示堆栈

您可以运行
cf stacks
查看所有可用的堆栈

在编写本文时的大多数环境中,您将拥有
cflinuxfs2
。这是Ubuntu Trusty 14.04。它将被
cflinuxfs3
所取代,后者是Ubuntu Bionic 18.04,因为Trusty只支持到2019年4月。不过,您总是会有一些
cflinuxfs*
堆栈,其数量会根据您阅读本文的时间而有所不同

在某些环境中,您可能还具有基于Windows的堆栈。原始的基于Windows的堆栈是
windows2012r2
。我写这篇文章时,它已经很老了,所以你可能不会再看到它了。您可能会看到的是
windows2016
,或者可能是更新的,具体取决于您阅读本文的时间

如果你需要更多的控制,你可以推一个docker容器。这将让你为你的应用选择完整的操作系统映像

2) 在bosh实例上运行的应用程序与docker容器有何不同

运行在CloudFoundry上的应用程序不是由BOSH直接部署的。应用程序在容器中运行。该容器由迭戈调度和运行。迭戈是一个波什部署的虚拟机。这里面还有一层

从核心上讲,在CloudFoundry上运行应用程序和在docker容器中运行应用程序之间的区别是最小的。它们都运行在一个Linux“容器”中,内核名称空间和cgroup对其进行了限制

区别在于a.)如何构建容器和b.)如何部署容器

使用CloudFoundry,您不需要构建容器。您将应用程序提供给CF&CF根据所选堆栈和BuildPack添加的其他软件构建容器映像。CF术语中的输出称为“水滴”,但它基本上是一个OCI映像(buildpacks v3更是如此)。当您需要升级或添加新代码时,您只需