更多騰訊海量技術文章, 請關注雲+社區: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的服務實例, 並將這個服務實例綁定到應用程式。
綁定是應用程式空間中可用服務之間的映射。
路由每個應用程式由一個/多個稱為路由的位址來標識。 這些路由可以映射到應用程式並用於訪問應用程式。
構建包構建包根據使用者需求解析/下載/配置應用程式的依賴關係。 例如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中供以後使用。
這些是Cloud Foundry和應用程式之間的共用變數。 應用程式可以使用這些來發現各種服務。
VCAP_SERVICES - Cloud Foundry將與服務相關的資訊添加到此變數。
VCAP_APPLICATIONS - Cloud Foundry將與應用程式相關的屬性添加到此變數中。
登錄到Cloud FoundryLogAggregator是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外掛程式,
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。
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: 180cf 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] - 這顯示了有關空間內的特定服務的詳細資訊。
顯示空間中特定服務
您可以更改清單檔的內容:
這將創建環境變數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: 180cf 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] - 這顯示了有關空間內的特定服務的詳細資訊。
顯示空間中特定服務
您可以更改清單檔的內容:
這將創建環境變數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