當前位置:
首頁 > 最新 > 聊聊Cloud Foundry開源PaaS雲平台

聊聊Cloud Foundry開源PaaS雲平台

Cloud Foundry是一個開源的平台即服務(PaaS),它提供給開發者自由的去選擇雲平台、開發框架和應用服務。Cloud Foundry最初由VMware發起,得到了業界廣泛的支持,它使得開發者能夠更快更容易的開發、測試、部署和擴展應用。Cloud Foundry是一個開源項目,用戶可以使用多種私有雲發行版,也可以使用公共雲服務,包括CloudFoundry.com。

Cloud Foundry讓開發人員專註於編寫應用程序,而無需為中間件和基礎設施分心。在使用自助式高生產力的框架和應用服務的同時,開發人員可以快速在自己的環境上開發和測試自己的下一代應用,並能部署到雲上而無需做任何更改。

Cloud Foundry的特點主要有以下幾點:

1.支持公共,私有和混合雲上部署。Cloud Foundry支持眾多在私有或者公有基礎設施上運行的合作夥伴的雲平台,包括vSphere /vCloud,AWS,OpenStak,Rackspace,Ubuntu等;還包括CloudFoundry.com;Micro Cloud Foundry是業界第一個可以部署到開發者筆記本上運行的PaaS平台。

2.支持業界標準框架。這些框架包括Spring for Java,Ruby on Rails和Sinatra,Node.js,Grails,Scala on Lift以及更多合作夥伴提供的框架(例如Python, PHP)。

3.支持應用服務。這些應用服務包括RabbitMQ,來自VMware的vFabric PostgreSQL,MySQL,MongoDB和Redis,以及更多來自第三方和開源社區的應用服務。

4.架構可擴展。可以使開發人員和架構師前瞻性的驗證他們的組織架構是否適應快速的雲創新。

5.開源項目社區。社區內允許任何開發者訪問,評估,和貢獻,這包括集成其他框架,增加應用服務和部署應用到其它基礎設施雲。

經過不斷的發展,CloudFoundry的組件增加了很多,但核心組件並沒有變化,增加的組件是原架構基礎上的細化和專門化,目前Cloud Foundry最新為v2版本。

Cloud Foundry平台架構

從總體上看,Cloud Foundry的架構如下圖所示。

CloudFoundry的核心組件主要有Router、Cloud Controller、Services、Health Manager和DEA,以及模塊之間使用的NATS消息通信機制。這些模塊之間的關聯關係如下圖所示,模塊之間使用NATS或者HTTP等其他的消息機制進行通信。

CloudFoundry組件

下面簡要介紹一下CloudFoundry的核心組件各自在架構上的作用。

1.Router組件:該組件在CloudFoundry中是對所有進來的請求進行路由。進入Router的請求主要有兩類:(1)來自VMC/CF Client或者STS的,由CloudFoundry使用者發出的,管理型指令;(2)外界對所部署的應用訪問的請求,這部份請求會被路由到DEA組件中去。

新舊版本的Router架構對比如下圖所示。在老版本中,Router作為一個nginx腳本存在,所以的請求都必須經過Ruby代碼,然後加以轉發,容易引起性能問題。在新版本的設計中使用了Lua腳本代替原先的Ruby腳本,提高了性能和穩定性。

系統可以部署多個Router共同處理進來的請求,避免單節點引起性能問題,從而使Router組件成為整個雲的瓶頸。Routers組件的主要作用和功能如下:

處理所有HTTP流量;

從DEAs獲得信息並實時更新路由表;

維護分散式路由狀態;

將對URL的訪問路由至具體的應用;

在應用實例之間分發流量實現負載均衡。

2.Cloud Controller組件:該組件是Cloud Foundry的管理模塊,與VMC和STS交互的伺服器端,收到VMC或者STS的JSON格式協議後,寫入CloudController Database,並發消息到各個模快去控制管理整個雲。Cloud Controller與Cloud Foundry中其他組件交互如下圖所示:

該組件公開了與CLI工具VMC通訊的主要REST介面,以及用於Eclipse的STS插件,並且提供開放的Restful介面,可用於第三方應用的開發和集成,企業在用CloudFoundry部署私有雲時,還可以通過這些介面來自動化控制管理整個雲環境。CloudController組件的主要作用和功能如下:

處理VMC等指令;

管理用戶、應用和服務;

管理資源;

對應用進行打包和預處理;

對外提供REST API介面。

3.Health Manager組件:該組件從各個DEA裡面獲取運行信息,然後進行統計分析,報告等。統計數據會與CloudController的設定指標進行對比,並提供告警等。HealthManager模塊目前還不是十分完善,在代碼結構上,Health Manager模塊放在Cloud Controller的目錄下。Health Manager組件的主要作用和功能如下:

監控應用和服務的狀態;

監控到異常狀態,通知Cloud Controller處理;

根據統計運營情況,合理分配資源。

4. Service組件:該組件是一個獨立的、插件式的模塊,便於第三方方便地把自己的服務整合成Cloud Foundry服務。在Cloud Foundry中已經包含了服務的框架及核心類庫,如MongoDB、mysql、 PostgreSql、RabbitMQ、Redis和vBlob等,並且第三方可以繼承Node和Gateway基礎類來開發自己的CloudFoundry服務。Server組件的主要作用和功能如下:

提供一個可擴展/擴充的層;

可被共享;

提供服務API;

可將各類應用和各類服務進行綁定。

5.DEA(Droplet Execution Agent)組件:在老版本的DEA組件中包含了應用運行時啟動、停止等簡單命令,並且用戶的應用可以隨意訪問文件系統。在新版本的DEA組件中增加了Warden Container模塊(一個程序運行容器),這個容器提供了一個孤立的環境,DEA只可以獲得受限的CPU、內存、磁碟訪問許可權、網路許可權。DEA模塊的新舊版本結構對比如下圖所示:

DEA會接收Cloud Controller模塊發送的啟動(或者停止)等應用管理請求,然後,會從NFS裡面找到合適的Droplet將程序運行起來。最後,DEA把這個信息告訴Router模塊,還進行應用程序的統計,並且將應用的運行信息告訴HealthManager模塊。DEA組件的功能如下:

負責運行所有的應用,並確保應用程序的隔離;

監控應用的具體運行參數,如CPU、內存、磁碟等;

提供應用狀態變化的告警等。

6.NATS組件:CloudFoundry的架構是基於消息發布與訂閱的,使用NATS組件來聯繫各個模塊。NATS是Derek Collison(世界級中間件和消息系統專家)開發的,是一個基於事件驅動的輕量級支持發布、訂閱機制的消息系統,基於EventMachine開發,以事件驅動。新版本的NATS可以支持多伺服器節點,避免了單節點的NATS導致的系統在HA方面的不穩定性。

CloudFoundry的各個組件是基於消息發布訂閱機制構建的,每個節點上的各個模塊會根據自己的消息類別,向Message Bus發布多個消息主題;而同時也向自己需要交互的模塊,按照需要的信息內容的消息主題訂閱消息。NATS組件的主要作用和功能如下:

定址和發現;

命令和控制;

中央通訊系統;

支持消息的發布和訂閱

Cloud Foundry環境部署

Cloud Foundry雲環境的部署方式比較靈活。在運行環境上,可以基於VMware或者OpenStack虛擬化環境之上,建立Cloud Foundry雲環境;在部署上,可以使用單節點部署,也可以使用多節點部署;既可以利用dev_setup實現單節點或多節點的小規模的環境部署,也可以使用Bosh實現大規模的自動化部署;並且在實驗室環境,還提供了Micro Cloud Foundry單機版PaaS環境,用戶可以在上面進行應用和服務的在線和離線部署。

Cloud Foundry總結

Cloud foundry在運營商、互聯網等企業廣泛應用,如:Verizon、AT&T、NTT等運營商發布Cloud foundry公有雲PaaS平台;百度是最大的Cloud foundry使用商,此外還有用友、盛大雲和京東等互聯網廠商。

回顧歷史,IBM曾經也拋棄SmartCloud封閉架構與VMware結盟(儘管之後收購SoftLayer),構建Cloud foundry開放PaaS平台,後來發布基於OpenStcak+Cloud foundry的BlueMix項目,將其傳統軟體(工具中間件、業務流程管理、資料庫和開發等)優勢能力轉移至Cloud foundry之上,儘管現在IBM統一品牌為IBM Cloud(摒棄SoftLayer和BlueMix品牌)。

Pivotal Cloud Foundry (PCF) 是一種可以直接部署開發人員寫好的應用(如Jar或是War包)或已經構建的容器鏡像的完整平台,基於Cloud foundry社區版。它可提供完整的調度能力實現這些應用負載,還可提供平台輔助服務,如負載均衡、高可用性、自動擴展、統一的日誌記錄等。

Pivotal Cloud Foundry廣泛利用容器來提供服務並使應用負載保持正常運行。雖然Pivotal Cloud Foundry可輕鬆編排容器,但僅有這項功能不足以使其成為一個平台。Pivotal Cloud Foundry還需要以下子系統配合以協調、監控和支持這些容器化的有效負載。

Pivotal CF Elastic Runtime Service:一個完整的,可擴展的運行環境,多個內嵌的雲服務。

Pivotal CF Operations Manager:企業級的管理平台,以及對基礎設施層的集成管理。

Pivotal One商用版本,增加更多的服務,如大數據能力和框架(Pivotal HD Service和Pivotal AX Service數據框架)。

Pivotal HD Service集成HDFS(Hadoop),HAWQ(Hbase/SQL Analytics), YARN(資源協調管理)等。

Pivotal AX Service:大數據分析,包含數據創建,收集,存儲,查詢,虛擬化等。

熱文閱讀

溫馨提示:

Stay hungry,Stay foolish

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

TAG:架構師技術聯盟 |