深度剖析CloudFoundry的架構設計(6) |
發布時間: 2012/7/22 16:08:39 |
我們可以看到整個CloudFoundry的核心就是一套消息系統,如果想了解CloudFoundry的來龍去脈,去跟蹤它里面復雜的消息機制是非常好的方法。另一方面,CloudFoundry是一套基于消息的分布式系統,面向消息的架構是它節點橫向擴展,組件自發現等云特性的基礎。 Cloud Foundry的架構簡單介紹至此,其實作為第一款開源的PaaS,CloudFoundry架構有很多可以學習借鑒的地方,很多細節上的處理是很精妙的,這些內容如果有可能會在后續文章繼續探討,本文題雖為深入CloudFoundry,其實也只是淺嘗即止,把總體架構介紹一下,目標在于使我們有足夠的背景知識去用CloudFoundry搭建企業內部的私有PaaS?偨Y一下,筆者從CloudFoundry的結構中學到的東西: 1、基于消息的多組件架構是實現集群的簡單、且有效方法。消息可以使集群節點間解耦,使自注冊,自發現這些在大規模數據中心中很重要的功能得到實現; 2、適當的抽象層,模板模式的使用,方便第三方可以方便在CloudFoundry開發擴展功能。CloudFoundry在DEA及Service層都做了抽象層處理,相對應地使開發者可以容易地為CloudFoundry開發Runtime和Service。例如,在CloudFoundry剛推出的時候,只支持Node.js,Java, Ruby,但第三方提供商、開源社區快速跟進,為CloudFoundry添加了PHP,Python的支持。這得益于CloudFoundry精巧的DEA架構設計,如何開發新的Runtime支持,會在后續博文中有所論述. 二、源碼導讀 筆者一直覺得深入理解一個技術的最好方法就是讀它的源碼,而CloudFoundry是完全開源的PaaS平臺,而因為剛發展起來,代碼量不多,主要作者們的代碼功力也相當不錯,讀起來很舒服,很適合研讀。而不得不再次表揚一下它完全基于消息機制的架構設計,對組件擴展性,第三方接入等方面做得很好,讀者可以從中學到不少思想性的東西。筆者很推薦大家去讀一下它的源代碼。你可以在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;億恩科技石頭 負責服務器租用和托管業務 本文出自:億恩科技【www.endtimedelusion.com】 |