深度剖析CloudFoundry的架構(gòu)設(shè)計(3) |
發(fā)布時間: 2012/7/22 16:06:47 |
下圖是DEA模塊的架構(gòu)圖: Cloud Controller模塊(下面會介紹)會發(fā)送start/stop等基本的apps管理請求給DEA,dea.rb接收這些請求,然后從NFS里面找到合適的Droplet。前面說到Droplet其實是一個帶有運行腳本的,帶運行環(huán)境的tar包,DEA只需要把它拿過來解壓,并即行里面的start腳本,就可以讓這個app跑起來。到此,app算是可以訪問,并start起來了,換句話說就是有這臺服務(wù)器的某一個端口已經(jīng)在待命,只要有request從這個端口進來,這個app就可以接收并返回正確的信息。 接著dea.rb要做些善后的工作:1、把這個信息告訴Router模塊。我們前面說到,所有進入CloudFoundry的requests都是由Router模塊處理并轉(zhuǎn)發(fā)的,包括用戶對app的訪問request,一個app起來后,需要告訴router,讓它根據(jù)loadbalance等原則,把合適的request轉(zhuǎn)進來,使這個app的instance能夠干起活;2、一些統(tǒng)計性的工作,例如要把這個用戶又新部署了一個app告訴CloudController,以作quota控制等;3、把運行信息告訴HealthManager模塊,實時報告該app的instance運行情況。另外DEA還要負責部份對Droplet的查詢工作,譬如,如果用戶通過CloudController想查詢一個app的log信息,那DEA需要從該Droplet里面取到log返回等等。 3、CloudController:CloudController是CloudFoundry的管理模塊。主要工作包括: a) 對apps的增刪改讀; b) 啟動、停止應(yīng)用程序; c) Staging apps(把apps打包成一個droplet); d) 修改應(yīng)用程序運行環(huán)境,包括instance、mem等等; e) 管理service,包括service與app的綁定等; f) Cloud環(huán)境的管理; g) 修改Cloud的用戶信息; h) 查看Cloud Foundry,以及每一個app的log信息。 這似乎有點復雜,但簡單的說,可以很簡單:就是與VMC和STS交互的服務(wù)器端。VMC和STS與CloudFoundry通信采用的是restful接口,另一方面CloudController是一個典型的Rubyon Rails項目,從VMC或者STS接到JSON格式的協(xié)議,然后寫入CloudController Database,并發(fā)消息到各?烊タ刂乒芾碚麄云。和其他ROR項目一樣,CloudController的所有API可以從conf/routes.rb里看到。開放的Restful接口好處在于第三方應(yīng)用開發(fā)和集成,企業(yè)在用CloudFoundry部署私有云的時候,可以通過這些接口來自動化控制管理整個Cloud環(huán)境。這部份內(nèi)容將在第二部份論述。億恩科技石頭 負責服務(wù)器租用和托管業(yè)務(wù) 本文出自:億恩科技【www.riomediacenter.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |