开发者的福利--Cloud Foundry

Cloud Foundry是一个流行的开源平台即服务(PaaS)。Cloud Foundry可以在您自己的部署基础架构上使用,也可以在腾讯云 Web服务,VMware或vSphere等任何IaaS(Infrastructure as a Service)上使用 。它可以使用BOSH部署系统进行部署 。Cloud Foundry提供了一个可轻松运行,扩展和维护应用程序的环境。Cloud Foundry支持Java,NodeJS,Ruby,Python等大多数语言和环环境。

Pivotal还提供PCF的轻量级分布式应用,称为PCF Dev,可以在单台机器上运行。

Cloud Foundry的概念

用户是可以管理org/space/app的Cloud Foundry的用户。

角色是分配给不同用户(如组织管理者/空间管理者)的权限。

组织处于最高级别,可供不同用户使用来分组应用程序。每个组织都有一个或多个空间。

空间是可以部署应用程序并共享配置的地方。多个应用程序可以在单个空间中部署。单个或多个空间组成一个组织。

应用程序是在Cloud Foundry内部运行的各个应用程序。

服务

应用程序使用的每个外部服务(如数据库,消息队列等)都是Cloud Foundry中的服务。这些服务需要在Cloud Foundry级别定义,可以通过Service Broker API由任何组织/空间使用。所有的服务都需要在Marketplace中注册。市场是查看Cloud Foundry上所有可用服务的地方。

我们可以创建适合我们需求的可用服务实例。例如,Pivotal在Pivotal Web Services上提供了一个名为p-mysql的MySQL服务,其中包含512MB和1024MB等不同类型的计划。如果我们的应用程序需要一个MySQL数据库,我们可以根据需要创建适当的计划的p-mysql的服务实例,并将这个服务实例绑定到应用程序。然后,Cloud Foundry将此MySQL的连接参数写入环境变量VCAP_SERVICES,该应用程序可以使用该变量连接到MySQL数据库。

绑定

绑定是应用程序空间中可用服务之间的映射。

路由

每个应用程序由一个/多个称为路由的地址来标识。这些路由可以映射到应用程序并用于访问应用程序。

构建包

构建包根据用户需求解析/下载/配置应用程序的依赖关系。例如java-buildpack。这个构建包包含Java,Tomcat,Grails,Groovy,Play等依赖性,当然具体的依赖关系主要取决于应用程序的性质。Cloud Foundry为大多数平台提供了构建包。有社区支持的构建包。Cloud Foundry允许创建自定义的构建包

Droplets

当用户创建应用程序时(用命令 'cf push' 创建),Cloud Foundry会生成一个droplets。droplet就像实际应用程序二进制文件和依赖包的镜像或blob(binary large object,二进制大对象)存储。droplet存储在Cloud Foundry中供以后使用。每当用户尝试运行/缩放应用程序时,都会使用此镜像创建VM并运行该映像。所以每当application/configuration/env发生变化的时候。变量,应用程序需要重新创建,并再次生成droplet。Restarting/restaging只会重新启动或部署相同的droplet。

环境变量

这些是Cloud Foundry和应用程序之间的共享变量。应用程序可以使用这些来发现各种服务。

VCAP_SERVICES - Cloud Foundry将与服务相关的信息添加到此变量。

VCAP_APPLICATIONS - Cloud Foundry将与应用程序相关的属性添加到此变量中。

登录到Cloud Foundry

LogAggregator是Cloud Foundry组件,用于整合来自所有App的日志。日志可以流式传输到终端、文件或第三方服务。

CF CLI工具

CF CLI是使用Cloud Foundry的命令行客户端; 它用于传递命令来部署/扩展/管理/监视应用程序,创建/停止服务等。CF CLI可以安装在任何Linux / Windows / Mac机器上。CF CLI命令列表。Spring Tool Suite(STS)是一个基于eclipse的IDE,用于Spring应用程序开发,还有一个Cloud Foundry插件,可以帮助部署/管理应用程序,以及从IDE创建和管理组织/空间。

Pivotal提供了一个称为PCF Dev的轻量级开发版Cloud Foundry ,可以安装在单个开发者机器上。如果您不想在您的机器上安装PCF Dev,仍想尝试Cloud Foundry,则可以跳过安装部分,只安装CF CLI,并使用Pivotal Web Service中提供的评估版本。首先你需要一个免费的Pivotal帐户。

PCF Dev安装

1)为您的操作系统安装VirtualBox
2)安装CF CLI
3)下载您喜欢的操作系统的PCF Dev。将PCF Dev提取到一个文件夹中,然后运行pcfdev- [VERSION] - [OS]。这将PCFDev插件安装到CF CLI。
4)在该文件夹中打开新的终端并执行命令 cf dev start

命令截图

5)这会提示您输入关键帐户凭据,然后下载VM,依赖关系,启动所有必需的服务。如果您没有Pivotal帐户,请注册

代码截图

一旦CF启动,您可以打开一个新的终端并运行CF命令连接到Cloud Foundry。

登录到Cloud Foundry

cf login -a [api-endpoint] --skip-ssl-validation
PCF Dev的API端点是https://api.local.pcfdev.com,而Pivotal Web Service则是https://api.run.pivotal.io。将会提示您输入电子邮件和密码。如果您是PCF Dev版则电子邮件/密码将是admin/admin,如果是正式版Pivotal Web Services的关键帐户电子邮件/密码。指定所需的组织和空间。

cf login

在Cloud Foundry中部署示例应用程序

示例应用程序可以在此Github找到。这是一个Spring Boot Web Services应用程序开放get API的示例。在默认配置文件中,应用程序创建一个内存数据库,并以JSON形式从该数据库获取数据。在云配置文件中,应用程序使用服务名称mysqldb连接到云上的MySQL数据库。该项目使用 Spring云服务连接器连接到云MySQL服务。

在使用以下命令选择的组织/空间中部署应用程序:
cf push [App-Name] -b [build-pack] -i [No-of-instances] -m [App-memory]

这部署和启动应用程序。如果没有指定路由,则会创建一个名称与app-name相同的默认路由并绑定到应用程序。应用程序也可以使用清单文件推送。所有选项都可以在清单文件中使用:
cf push -f [Path-To-Manifest-File]

清单文件的示例内容:

applications:
- name: pcf-demo-app
buildpack: https://github.com/cloudfoundry/java-buildpack
memory: 512M
instances: 1
host: pcf-demo-app
path: pcf-demo-1.0.0-SNAPSHOT.jar
timeout: 180
cf push
cf push2

查看应用程序的状态

cf apps - 显示空间中所有应用程序的状态。
cf app [App-Name] - 显示应用程序的状态。
如果一切顺利,那么应用程序状态将如下所示:

cf apps

应用程序可以重新启动或重新进行:
cf restart [App-Name]
cf restage [App-Name]

cf restart

应用程序日志可以被查看。应用程序的环境属性可以查看:
cf logs [App-Name] --recent

cf logs

程序运行的环境也可以看到
cf env [App-Name]

cf env

如果应用程序状态显示“正在运行”, 运行此命令CURL -k https://pcf-demo-app.pcfdev.com/user 则将获取数据。

curl命令获取数据

使用MySQL服务在Cloud Profile中运行应用程序

您可以看到Cloud Foundry中提供的所有服务:
cf marketplace - 显示所有可用的市场服务。
cf marketplace -s [service-name] - 显示市场中可用的特定服务的详细信息。

显示所有可用市场服务

cf create-service [service-name] [service-type] [service-instance-name] - 这将创建名称为[service-instance-name]的服务,并在当前空间中键入[service-type]。

创建服务

cf services - 这显示了当前空间中的所有服务。

显示空间中的服务

cf service [service-instance-name] - 这显示了有关空间内的特定服务的详细信息。

显示空间中特定服务

您可以更改清单文件的内容:

applications:
- name: pcf-demo-app
  buildpack:  https://github.com/cloudfoundry/java-buildpack
  memory: 512M
  instances: 1
  host: pcf-demo-app
  path: pcf-demo-1.0.0-SNAPSHOT.jar
  timeout: 180
env: 
  SPRING_PROFILES_ACTIVE: cloud
services:
 - mysqldb

这将创建环境变量SPRING_PROFILES_ACTIVE并将值设置为cloud。它还在推送的应用程序和服务mysqldb之间创建一个绑定。此绑定也可以使用此命令手动创建: cf bind-service [App-Name] [Service-Instance-Name] 现在再次推送应用程序,新清单更改:cf push -f [Path-To-Manifest-File]您可以再次运行CF env以查看使用mysqldb详细信息更新的VCAP_SERVICES。

缩放应用程序

cf scale [App-name] -i [no-of-instances] -m [memory-limit]

缩放应用程序

在CLI中有删除,重命名,启动和停止应用程序,注销用户,查看文件,创建/更新/删除服务,创建/更新/删除用户提供的定制服务,绑定/解除绑定服务,绑定/取消绑定路线,创建/删除组织和空间,创建/更新/删除构建包,创建/删除用户,等等命令

如果您正在使用Pivotal Cloud Foundry(Cloud Foundry的商业版本)或Pivotal Dev,则Cloud Foundry可以使用基于Web的控制台应用程序,该web端的控制台可用作CF CLI的替代品,简化用户操作。

登录页
主页
本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
开发者的福利--Cloud Foundry
要确保公司云资产的安全性,首先要应用基于虚拟网络独特性修改的可靠的数据安全实践。
<<上一篇
下一篇>>