Cloud Foundry 是開源的 PAAS 實現, Pivotal 基於CF 做了一些擴展,發布了自己的商業化版本 PCF。 並且將 PCF 部署到AWS 上做為一個參考實現,這就是 PWS。
目前 PCF 支持的 IAAS 包括 AWS, AZURE, GCP, vSphere , OpenStack。
如果僅僅是嘗試如何在PCF平台上部署應用,可以選擇兩種方式,一種是直接部署到PWS,另一種是直接部署一個PCF--如果沒有安裝PCF的基礎設施,那可以選擇PCF 的Dev 版本,它可以直接安裝在PC上。
直接部署應用到PWS上,大致需要這幾個步驟:注冊PWS賬戶,安裝cf 命令行,登錄到pws, 選擇一個可以部署的應用,部署到PWS。
- 注冊PSW賬戶
- 安裝 cf 命令行,安裝完后,驗證命令可用: cf help
- 登錄到 pws :
cf login -a https://api.run.pivotal.io
- 選擇一個可部署的應用,可以直接到 https://github.com/cloudfoundry-samples clone 一個應用,可以看到有多個不同開發語言實現的應用。
- 部署, 先 cd 到應用目錄下,然后 cf push. 在啟動完后,可以在輸出的最后幾行看到給應用分配的URL,通過瀏覽器可以訪問了。
requested state: started instances: 1/1 usage: 1G x 1 instances urls: spring-music-metronomical-remex.cfapps.io last uploaded: Fri Dec 2 02:40:16 UTC 2016 stack: cflinuxfs
- 查看實時日志: cf logs spring-music , 這里應用的名字是 spring-music
在雲中,所有的資源都是服務,DB 也是一種服務。 接下來看一下如何切換數據庫:
- 列出可用的配置計划: cf marketplace -s elephantsql , 這里marketplace 提供各種資源,-s 是服務, elephantsql 是服務計划名稱。服務計划就是創建服務的配置或者模板。 這個命令列出所有可用的 elephantsql 的各種配置,不同配置的容量或性能不同。 其中有一個計划是 turtle .
- 按計划創建出服務: cf create-service elephantsql turtle mydb , 這里 mydb 是創建的服務名字。
- 將應用與服務綁定:cf bind-service spring-music mydb
- 重啟應用:cf restart spring-music
- 查看服務綁定: cf services
伸縮硬件資源
- 將應用實例調整為2個, 內存和存儲空間調整為512M : cf scale spring-music -i 2 -m 512M -k 512M
使用的命令有: login, push, app; logs; markestplace, create-service, bind-services, services; scale
特點總結:
- 應用部署簡單,只需一個命令。顯然pcf 與應用間是有契約 的;
- 性能伸縮性,通過水平擴容,自由調整實例的個數。而且不用關心負載均衡和路由和會話維持問題。這也是為啥要選擇 PAAS而不是 IAAS的重要原因。
- 所有資源都是服務(這里PWF內存和存儲不是)。那應用與服務應該有某種契約。