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