上面的图片是从CloudFoundry官方文档中拿到的,整个过程如下:
1、用户在命令行下进入自己的app所在的目录,运行cf push,这表示说:我要上传应用了
2、cf命令行工具发现用户给的指令是push,于是发请求给CCNG,说:我要创建一个新应用
3、CCNG管辖了两个存储,一个是CCDB(是一个RDBMS,可以用mysql),另一个是BlobStore,存储一些大的二进制文件,比如用户要push的app和最后打包成的droplet。CCNG会先保存当前app的meta信息,比如名称,subdomain,实例数,内存限制等等
4、cf命令行工具把用户app所在目录下的所有文件(除去.cfignore中配置的文件)上传给CCNG
5、CCNG把用户的app文件打包存放在BlobStore中
6、cf命令行工具发起start指令
7、CCNG接收到cf命令行给的start指令,但是此时用户的app文件仅仅包含了应用逻辑代码,没有运行时环境的支持,没有启停脚本等,是没法直接run的。所以CCNG现在开始做一件很重要的事情:stage the application,所谓的stage,就是把用户的app文件和运行时依赖(javaweb的项目的话,比如jdk和tomcat)以及启停脚本一起打包的过程,stage的产物,即打包之后的那个包,称为droplet。打包这个动作本身是在DEA中完成的,所以此时CCNG选取一个合适的DEA,命令它来干活。
8、某个悲惨的DEA接收到stage 请求,于是开始苦逼哈哈的干活了,过程中可能会出问题,所以,stage的时候的输出需要同步显示给终端用户,方便排错
9、打包完成之后DEA需要把droplet上传到CCNG的BlobStore中存放
10、报告给CCNG说我完成stage了
11、CCNG读取meta信息看用户想部署几个实例以及内存要求等,然后选取相应的DEA去部署droplet
12、DEA是否部署和启动成功,需要汇报给CCNG,并最终反映到终端用户控制台上
整个过程在文档中有详尽描述,我只是翻译了一下,地址是:http://docs.cloudfoundry.com/docs/running/architecture/how-applications-are-staged.html
相关推荐
**标题与描述解析** 标题"cf-sample-app-nodejs:Cloud Foundry应用程序部署和管理概念...通过深入研究"cf-sample-app-nodejs-master",我们可以学习到实际操作中如何将一个Node.js应用部署到Cloud Foundry的全过程。
- **cf push**:这个命令是将本地应用推送到Cloud Foundry的关键,它会上传应用代码、配置和依赖,并启动应用实例。 - **$APP_NAME**:在`cf push`命令中,`$APP_NAME`是应用的唯一标识,需要替换为实际应用名。 ...
码头云图像示例项目 这是Jetty Web服务器的示例项目,该项目能够在Cloud Foundry环境中运行,例如IBM Bluemix。 这个maven项目创建了一个... 推送命令示例: cf push appname -p jetty-cloud-xyzjar -b java_buildpack
用于Cloud.gov的Hello World应用程序该存储库包含最少的“ Hello World”应用程序,用于少数几种不同的语言/框架,以测试到部署,尤其是... cf push --random-route...Creating app APP in org / spaceOK...[snip]...re
Dicey应用程序部署:在蓝/绿部署期间评估v2是否比v1...安装 brew install siege推送应用程序的v1 cf push cf-dicey-app-v1绘制并绘制路线 cf create-route SPACE DOMAIN -n HOSTNAMEcf map-route cf-dicey-app-v1 DO
运行cf push 从浏览器https://app-name.cfapps.io:4443 [1]访问。 这将启动gotty并将其配置为启动bash shell。 访问将受到基本身份验证的保护,默认用户为“ user”,密码为“ cfrocks”。 通过浏览器连接时,您...
$ cf push < APP> -p < ARTIFACT> -b https://github.com/cloudfoundry/java-buildpack.git 例子 以下是部署我们支持的工件类型的非常简单的示例。 配置和扩展 可以使用与要覆盖的配置文件相匹配的环境变量(减去....
在 Cloud Foundry 的“cf”安装、定位 Cloud Foundry 实例并登录后,可以使用以下命令推送应用程序: $ mvn package $ cf push -f manifest.yml ... Push successful! App 'log-demo' available at ...
标题“pcf-demo-data-app”指的是一个CloudFoundry平台上的演示数据应用。CloudFoundry是一个开源的平台即服务(PaaS)系统,它允许开发者在多种云基础设施上部署和管理应用程序。这个标题暗示我们这里有一个专门为...
Cloud Foundry部署包装器。 开始吧 克隆此存储库。 git clone https://github.com/komushi/cf-mongo-express.git cd cf-mongo-express 编辑有关mongodb服务名称的manifest.yml。 克隆此存储库。 git clone ...
Spring Boot noop-buildpack 示例可以使用“noop-buildpack”推送到 CloudFoundry 的简单 Spring Boot 应用程序 $ mvn package$ cf push sample-app -b https://github.com/igm/noop-buildpack
php-app-with-custom-web-root 或者cf push php-test-jbs -b https://github.com/cloudfoundry/php-buildpack.git -s cflinuxfs2
最小的Node.js Hello World示例 此仓库包含一个用Node编写的最小的hello world应用程序。 此仓库将记录您可以部署此应用程序的多种方式。...ibmcloud cf push 在IBM Kubernetes服务上运行 确保在更新了容器映像URL。
Cloud Foundry JBoss Buildpack ...$ cf push < APP> -p < ARTIFACT> -b https://github.com/cloudfoundry-community/jboss-buildpack.git 例子 以下是用于部署我们支持的工件类型的非常简单的示例。
样本HTTP应用程序示例HTTP应用程序为部署到Cloud Foundry...部署到Cloud Foundry 只需从应用程序根目录运行cf push ,它应该可以成功部署。本地运行要在本地运行,请按照以下步骤操作: go get ./...go build ../sampl
java-cf-helloworld 关于该项目 该项目包括一个示例Java 应用程序,该应用程序已使用进行了测试(构建和部署)(安全性和junit)。 部署目标是使用 。 接触 Johannes Jungkunst- - 致谢 执照
先决条件 GNU gettext sudo apt-get install gettext (Debian / Ubuntu) 部署到Cloud Foundry for d in locale/*/LC_MESSAGES/; do msgfmt $d/messages.po -o $d/messages.mo; done cf push <APP>
IBM Bluemix是基于Cloud Foundry的开放平台,提供了一系列的服务,如数据库、身份验证、人工智能等,支持多种编程语言,包括Node.js。Bluemix的灵活架构和便捷的部署流程,使得开发者可以快速构建云原生应用。 三、...