天天看點

《OpenStack實戰指南》—— 1.7 OpenStack體系結構

本節書摘來自華章出版社《openstack實戰指南》一 書中的第1章,第1.7節,作者:黃 凱 毛偉傑 顧駿傑 ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在介紹openstack體系結構之前,需要先了解一下openstack的設計原則,如下:

可擴充性和伸縮性是設計openstack的主要目标。

任何影響可擴充性和伸縮性的特性必須是可選的。

一切應該是異步的(如果做不到異步,可參考第二條)。

所有必需的元件必須可水準擴充。

始終使用無共享架構或者分片架構(如果不能實作,可參考第二條)。

一切都是分布式的(尤其應該将業務邏輯與業務狀态放在一起)。

接收最終一緻性,并在适當條件下使用。

測試一切(我們需要測試已經送出的代碼,如果使用者需要,我們将會幫助使用者測試)。

openstack是由一系列具有restful接口的web服務所實作的,是一系列元件服務集合。如圖1-24所示,我們看到的是一個标準的openstack項目組合的架構。這是比較典型的架構,但不代表這是openstack的唯一架構,我們可以選取自己需要的元件項目,來搭建适合自己的雲計算平台。

《OpenStack實戰指南》—— 1.7 OpenStack體系結構

openstack項目并不是單一的服務,其含有子元件,子元件内由子產品來實作各自的功能,如圖1-25所示。通過消息隊列和資料庫,各個元件可以互相調用,互相通信。這樣的消息傳遞方式解耦了元件、項目間的依賴關系,是以才能靈活地滿足我們實際環境的需要,組合出适合我們的架構。每個項目都有各自的特性,大而全的架構并非适合每一個使用者,譬如glance在最早的a、b版本中并沒有實際出現應用,nova可以脫離鏡像服務獨立運作。當使用者的雲計算規模大到需要管理多種鏡像時,才需要像glance這樣的元件。openstack的成長是在生産環境中不斷被檢驗,然後再将需求回報給社群,由社群來實作的一個過程,可以說openstack并非脫離實際的理想化開源社群項目,而是與生産實際緊密結合的,可以複制應用的雲計算方案。

《OpenStack實戰指南》—— 1.7 OpenStack體系結構

繼續閱讀