我为一家小型网络创业公司工作。他们决定将OpenStack用作IaaS,然后将其作为PaaS使用cloudfoundry。我正在尝试了解这个技术堆栈。但即使在网上浏览文件和相关资料后,我也感到非常困惑。
我想要什么?
我有一个网站,目前在RHEL系统(aws实例)上运行 nginx作为Web服务器。我想将其转移到OpenStack-cloudfoundry 因为该公司的管理层决定这样做。他们也 想让我评估一下我是否可以在任何地方使用Docker。
根据我的理解,OpenStack(Iaas)将为我提供与硬件软件需求相关的所有内容,而cloudfoundry将帮助我开发前端。
现在,nginx(或任何网络服务器)在哪里?它是Openstack的一部分还是cloudfoundry的一部分?
在我的aws RHEL系统上,我是否只是安装了Openstack和Cloudfoundry,然后推送我的应用程序而不是完全不关心下面会发生什么?我真的很困惑..请帮忙。
而且,在这个设置中,我可以在任何地方使用Docker吗?
答案 0 :(得分:2)
您通常不会在AWS上部署OpenStack。 OpenStack与AWS类似,它为您提供服务,以创建和销毁虚拟机实例,管理VM之间和周围的网络,将块设备连接和分离到实例等。换句话说,两者都是用于管理“基础架构”的服务“,”这里的“基础设施”是指虚拟化数据中心,其核心意味着运行虚拟机管理程序的一堆硬件,允许您将数据中心视为一堆可按需按需旋转的虚拟机,而不是一堆“静态”物理机器。
AWS是亚马逊提供的基础架构即服务,因此您无需自行安装AWS,您可以开始使用它来配置亚马逊数据中心内的虚拟机实例。 OpenStack是您自己安装的软件(或支付供应商为您管理的)您自己的硬件或自行支付的软件,一旦安装,OpenStack就会为AWS提供类似的服务/接口。
使用平台即服务,您可以更加关注应用程序代码,“只需推送它”,而不必过多关注底层计算机上发生的事情。您不必担心底层操作系统,确保您拥有应用程序的正确运行时和代码依赖性,通常不必关心为您的代码提供服务的Web服务器等。您还可以获得更多更高级别的功能,例如易于纵向或横向扩展,动态路由,自动日志聚合,自动健康管理等。
至于nginx如何适应,这取决于你如何使用nginx,以及你拥有什么样的应用程序。 Cloud Foundry几乎没有办法处理应用程序。
一个是 buildpack 模型,您只需将源代码推送到平台,它就会自动检测应用程序的相应运行时和依赖项。例如,如果您的应用程序是Ruby应用程序,它将自动检测到它,并且默认情况下使用WEBrick服务器自动运行应用程序。但是,您可以选择其他Ruby Web服务器,例如Phusion,Passenger等[1]
如果您的应用程序主要提供静态内容,它将使用nginx作为Web服务器。 [2]
另一个是使用 Docker 。您可以在Cloud Foundry上部署基于Docker映像的应用程序,在这种情况下,您可以在容器中运行nginx和应用程序,或者不是,这取决于您是否仍需要nginx。推送docker应用程序非常简单:
cf push trainingwebapp --docker-image training/webapp -c 'python app.py'
这里,它使用Docker文档中的示例Hello World Web应用程序。 [3]
[1] https://docs.cloudfoundry.org/buildpacks/ruby/ruby-prod-server.html
[2] https://docs.cloudfoundry.org/buildpacks/staticfile/index.html
[3] https://docs.docker.com/engine/userguide/containers/usingdocker/