您的位置:首頁>正文

開發者的福利:Cloud Foundry

更多騰訊海量技術文章, 請關注雲+社區:https://cloud.tencent.com/developer

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-appbuildpack: https://github.com/cloudfoundry/java-buildpackmemory: 512Minstances: 1host: pcf-demo-apppath: pcf-demo-1.0.0-SNAPSHOT.jartimeout: 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: 1host: pcf-demo-ap path: pcf-demo-1.0.0-SNAPSHOT.jar timeout: 180env:SPRING_PROFILES_ACTIVE: cloudservices:- 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的替代品,簡化用戶操作。

登錄頁

主頁

翻譯人:Hi胡瀚,該成員來自雲+社區翻譯社

原文連結:https://dzone.com/articles/cloud-foundry-for-developers

原文作者:Praneeth Ramesh

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-appbuildpack: https://github.com/cloudfoundry/java-buildpackmemory: 512Minstances: 1host: pcf-demo-apppath: pcf-demo-1.0.0-SNAPSHOT.jartimeout: 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: 1host: pcf-demo-ap path: pcf-demo-1.0.0-SNAPSHOT.jar timeout: 180env:SPRING_PROFILES_ACTIVE: cloudservices:- 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的替代品,簡化用戶操作。

登錄頁

主頁

翻譯人:Hi胡瀚,該成員來自雲+社區翻譯社

原文連結:https://dzone.com/articles/cloud-foundry-for-developers

原文作者:Praneeth Ramesh

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示