1. 程式人生 > >【Cloud Foundry】Could Foundry學習(二)——核心元件分析

【Cloud Foundry】Could Foundry學習(二)——核心元件分析

在閱讀的過程中有任何問題,歡迎一起交流

QQ:1494713801

Cloud Foundry核心元件架構圖如下:

主要元件:

    Cloud Controller:實質上是VMC和STS互動的伺服器端,它收到指令後發訊息到各模快,管理整個雲的執行,相當於Cloud Foundry的大腦。

    DEA:負責處理對所部署的App的訪問請求,其實質是打包和訪問Droplet。其中Droplet是通過Stager元件將提交的原始碼及Cloud Foundry配置好的執行環境以及一些控制指令碼等,全部打包在一起形成的tar檔案。

    Routers:對所有進來的請求進行路由控制。Router元件是可擴充套件的,由多個 Router共同處理進來的請求。但如何對Router做負載均衡不屬於Cloud Foundry的實現範圍。

       進入Router的請求主要有兩類。

  • 第一類是來自VMC Client或者STS的,由Cloud Foundry使用者發出,叫做管理請求。這類請求會被路由到Cloud Controller元件處理。
  • 第二類是對所部署的App的訪問請求。這部分請求會被路由到App execution,即DEA元件中。

    Health Manager:負責從各個DEA獲得執行資訊,然後進行統計分析、報告、發出告警等。

    Services:負責提供雲平臺的各種應用服務,是一個獨立的、外掛式的模組,便於第三方方便地把自己的服務整合成Cloud Foundry服務。

輔助元件:

    UAA:負責使用者模型的認證,使用組織和使用者空間等概念,利於使用者及許可權管理。另外UAA DB用於儲存使用者相關資訊。

    NATS:是一個基於事件驅動的、輕量級的訊息系統,用於訊息釋出和訂閱,聯絡著各個模組。

    Stager:解決了打包(Stage)過程需要操作大量檔案且操作時間長的問題,所以它作為獨立程序,使打包工作非同步進行,不阻塞作為核心元件的Cloud Controller。

原始碼導讀

可以在Github上找到CloudFoundry的全部程式碼:https://github.com/cloudfoundry,會看到幾個不同的Repositories,它們分別是:

1、vcap: Cloud Foundry的Core,又或者稱作Kernel;

2、vcap-service: Cloud Foundry的Service元件。Cloud Foundry的service是作為外掛提供的,這出於它方便第三方開發service而設計的;

3、vmc: VMware Cloud CLI. 是一個Ruby應用,與Cloud Foundry的CLI互動。主要通過分析使用者輸入的CLI,向CloudFoundry傳送Restful請求;

4、vcap-java: 如果你的app是用java開發,且需要與Cloud Foundry互動,例如取得當前serviceserver的ip地址等,你可能需要這個jar,裡面對我們Java開發常用框架有所支援,它底層也是 對CloudFoundry的Restful請求的包裝;

5、vcap-java-client: Cloud Foundry的Restful API的Java封裝,與上面的專案不一樣,它只是個簡單的讀取CloudFoundry資訊,並放如JavaBean中;

6、vcap-test: Cloud Foundry的test cases;

7、vcap-test-assets: Cloud Foundry一些apps示例。