深度剖析CloudFoundry的架構(gòu)設計(1) |
發(fā)布時間: 2012/7/22 16:05:40 |
VMware在今年4月份突然發(fā)布了業(yè)內(nèi)第一個開源的PaaS——CloudFoundry。發(fā)布至今的這幾個月里,筆者一直關注它的演進,并從它的架構(gòu)設計中獲益良多,覺得有必要寫出來與大家分享一下。 本文會分為兩個部份:第一部份主要介紹CloudFoundry的架構(gòu)設計,從它所包含的模塊介紹起,到各部份的消息流向,各模塊如何協(xié)調(diào)合作;第二部份會在第一部份的基礎上,以如何在你的數(shù)據(jù)中心里面用CloudFoundry部署一個私有PaaS為目標,把第一部分介紹到的架構(gòu)知識使用起來。 第一部份講的很多內(nèi)容,會引用Pat在10月12日的VMwareCloud Forum上面關于CloudFoundry架構(gòu)的演講。Pat是CloudFoundry Core的負責人,他的那次演講很值得一聽。如果你當時在場,并且理解他所說的內(nèi)容,本部份可以選擇直接跳過。我除了會把說的內(nèi)容講具體點外,不太可能可以講得比他好。 一、架構(gòu)及模塊 從總體地看,CloudFoundry的架構(gòu)如下:
這個架構(gòu)圖以及下文所用到的各模塊架構(gòu)圖均來自Pat的PPT。從上圖能夠看到CloudFoundry主要有以下幾大組件組成: 1、 Router:顧名思義,Router組件在CloudFoundry中是對所有進來的Request進行路由。進入Router的request主要有兩類:首先是來自VMCClient或者STS的,由CloudFoundry使用者發(fā)出的,管理型指令。 例如:列出你所有apps的vmcapps,提交一個apps等等。這類request會被路由到AppLife Management組件,又叫CloudController組件去;第二類是外界對你所部署的apps訪問的request。這部份requests會被路由到Appexecution,又或者叫做DEAs的組件去。所有進入CloudFoundry系統(tǒng)的requests都會經(jīng)過Router組件,看到這里可能會有朋友會擔心Router成為單點,從而成為整個云的瓶頸。 但是CloudFoundry作為云系統(tǒng),其設計的核心就是去單點依賴,組件平行擴充,且可替代的以保證擴展性,這是CloudFoundry,甚至所有億恩石頭QQ:673606008 電話:18237160419系統(tǒng)的設計原則,后文會討論CloudFoundry如何做到這點,目前只要知道,系統(tǒng)可以部署多個Routers共同處理進來的requests,但是Router上層的LoadBalance不在CloudFoundry的實現(xiàn)范圍,CloudFoundry只保證所有的request是無狀態(tài)的,這樣就使上層均衡附載選擇面非常非常大了,例如可以通過DNS做,也可以部署硬件的LoadBalancer,或者簡單點,弄臺ngnix作負載均衡器,都是可行的。億恩科技石頭 負責服務器租用和托管業(yè)務 本文出自:億恩科技【www.riomediacenter.com】 |