一篇文章讓你讀懂 OpenStack 的起源、架構和應用

OpenStack 是一個面向 IaaS 層的開源項目,用於實現公有云和私有云的部署及管理。擁有衆多大公司的行業背書和數以千計的社區成員, OpenStack 被看做是雲計算的將來。目前 OS 基金會裏已有500多個企業贊助商,遍及世界170多個國家,其中不乏 HP 、 Cisco 、 Dell 、 IBM 等,值得一提的是 Google 也在2015年加入基金會。web

一.關於項目起源

Rackspace (一家美國的雲計算廠商)和 NASA (美國國家航空航天局)在2010年共同發起了 OpenStack 項目。 數據庫

那時候 Rackspace 是美國第二大雲計算廠商,但規模只能佔到亞馬遜的5%。只依靠內部的力量來超越或者追趕亞馬遜不大可能,這家公司索性就把本身的項目開源了,也就是後來的 OpenStack 的存儲源碼( swift )。swift

與此同時, NASA 也對本身使用的 Eucalyptus 雲計算管理平臺很不爽。 Eucalyptus 有兩個版本,開源版本和收費版本, NASA 想給 Eucalyptus 開源版本貢獻 patch ,結果 Eucalyptus 不接受,估計是和收費版本功能重疊了。當時 NASA 的六個開發人員,用了一個星期時間拿 Python 作出來一套原型,結果虛擬機在這上面運行的很成功,這就是 Nova (計算源碼)的起源。後端

NASA 跟 Raskspace 玩的比較好,因而 NASA 貢獻 Nova , Raskspace 貢獻 Swift ,在2010年的7月發起了 OpenStack 項目。安全

二. OpenStack 架構

截至 Grizzly 版本, OpenStack 含七個核心項目:網絡

  • Compute (Nova)架構

  • Networking (Neutron/Quantum)框架

  • Identity Management (Keystone)運維

  • Object Storage (Swift)分佈式

  • Block Storage (Cinder)

  • Image Service (Glance)

  • User Interface Dashboard (Horizon)

其中有三個最核心的架構服務單元,分別是:計算基礎架構 Nova 、存儲基礎架構 Swift 和鏡像服務 Glance 。

Nova 是 OpenStack 雲計算架構控制器,管理 OpenStack 雲裏的計算資源、網絡、受權、和擴展需求。 Nova 不能提供自己的虛擬化功能,相反,它使用 libvirt 的 API 來支持虛擬機管理程序交互,並經過 web 服務接口開放他的全部功能併兼容亞馬遜 web 服務的 EC2 接口。

Swift 爲 OpenStack 提供分佈式的、最終一致的虛擬對象存儲。經過分佈式的穿過節點, Swift 有能力存儲數十億計的對象, Swift 具備內置冗餘、容錯管理、存檔、流媒體的功能。而且高度擴展,不論大小(多個 PB 級別)和能力(對象的數量)。

Glance 鏡像服務查找和檢索虛擬機的鏡像系統。

OpenStack 架構圖

上圖爲 OpenStack 架構

三個元素將會與系統中的全部組件進行交互。 Horizon 是圖形用戶界面,管理員能夠很容易地使用它來管理全部項目。 Keystone 處理受權用戶的管理, Neutron 定義提供組件之間鏈接的網絡。
Nova 被認爲是 OpenStack 的核心,負責處理工做負載的流程。它的計算實例一般須要進行某種形式的持久存儲,它能夠是基於塊的 ( Cinder ) 或基於對象的 ( Swift )。 Nova 還須要一個鏡像來啓動一個實例。 Glance 將會處理這個請求,它能夠有選擇地使用 Swift 做爲其存儲後端。

OpenStack 架構一直努力使每一個項目儘量的獨立,這使得用戶能夠選擇只部署一個功能子集,並將它與提供相似或互補功能的其餘系統和技術相集成。然而,這種獨立性不該掩蓋這樣一個事實:全功能的私有云極可能須要使用幾乎全部功能才能夠正常運做,並且各元素須要被緊密地集成。

傳統的軟件生態模式是用戶和開發者之間隔着銷售、產品經理等角色,而 OpenStack 等開源的模式打破了這樣一種模式, OS 只提供最最底層的框架,剩餘一切都圍繞着用戶,用戶可參與從設計、編碼、測試、到運維的各類階段。而這樣的模式生命力是最強的。

三. OpenStack 的核心優點

若是僅僅是便宜,那麼 OpenStack 對於企業彷佛就沒那麼大的價值了。相反, OpenStack 提供了一個很是好的有關如何來打造相似於主要公有云好比亞馬遜( AWS )和 Google Cloud Platform ( GCP )的彈性私有云的樣板。就像 Hadoop 將 Google 的 MapReduce (加上它的參考架構)推向大衆同樣, OpenStack 將 AWS/GCP 式樣的的基礎架構即服務( IaaS )推向了每一個用戶。它就是能實現企業內部 DevOps 的終極平臺。

OpenStack 能在企業內部提供相似的平臺。私有云能夠基於公有云模型來構造,使得開發者同時擁有集中式 IT 控制和支配。本質上,它是二者融合的最佳平臺,這也是 OpenStack 驅動的私有云的真正價值。

由 OpenStack 來實現企業內部的 DevOps ,進而實現敏捷,而敏捷偏偏是驅動雲計算的原動力。

四.企業級 OpenStack 的需求
企業級 OpenStack 到底須要什麼呢?有如下六個關鍵的因素:

  • 1.99.999% 的 API 可用性以及可擴展的控制平面

有高可靠性要求的應用須要高可靠的雲API向全新的雲和 DevOps 模型轉型的一個關鍵能力是提供雲原生應用在彈性雲中的容錯能力。要使一個應用能實時地適應不一樣組件的出錯,雲 API 須要有更高的可用性。

API 的可用性不是惟一的衡量標準。你的雲控制平面的吞吐量( throughoutput )一樣關鍵。能夠將控制平面想象成雲的指揮中樞。這是中央智能和編排層的核心。你的 API 是控制平面的一部分,對於 OpenStack 來講,包括全部的核心項目,以及平常的雲管理系統(一般是 OpenStack 企業級套件的一部分),以及全部必要的輔助服務,好比數據庫、 OpenStack 各廠商插件等等。你的雲的控制平面必須可以隨着雲的增加而增加。這意味着,整體上,你將會得到更多的 API 操做的吞吐量(對象上傳/下載、鏡像上傳/下載、元數據更新等待)。

  • 2.健壯的管理和安全模型

安裝只是管理 OpenStack 的開端。一個真正的雲操做系統將提供一個從設計上就能保證基礎設施團隊能成功交付服務的以運維爲核心的雲管理工具套件。這些管理工具將提供:

  • 可重用的架構模型,一般使用參考網絡架構將小集羣( pod )或者組( block )鏈接在在一塊兒

  • 初始雲安裝和部署

  • 典型的平常雲運維工具,包括日誌、系統測量值和相關度分析

  • 供雲運維人員使用的用來作整合和自動化的 CLI 和 API

  • 用於可視化和分析的雲運維圖形界面

OneAPM 的出現,使得企業能夠縮減龐大運維團隊的開支, OneAPM 的產品能幫助你進行應用性能分析、告警、日誌分析記錄,並能實現代碼級的故障診斷。

  • 3.開放的架構

OpenStack 的開放架構,可以減小廠商鎖定,進而下降風險。

  • 4.混合雲兼容性

目前環境下,混合雲兼具私有云安全性與公有云的彈性擴展能力,混合雲必然成爲企業雲部署的第一選擇。根據應用類別和業務特色,將關鍵應用、性能敏感型、中高密級應用部署在私有云,其餘應用部署在公有云;將同一個應用的不一樣層部署在不一樣雲中,時延敏感業務就近用戶部署,提高最終用戶體驗; Web Front 支持 Web 服務靈活擴展,集中控制關鍵數據;突發型應用,私有云資源不足時(如 Web 網站),向公有云臨時租借資源。
混合雲的難點在於解決應用的移植性問題。若是你須要一個公有云和私有云組合而成的混合雲,無論應用在某個雲中被開發,仍是要在兩個雲之間作遷移,或者從一個雲到另外一個雲,應用的可移植性都是必須的。當你選定一個應用以及它的雲原生的自動化框架,並將它們從一個雲移動到另外一個雲中,一些關鍵的東西必須保持一致:

  • 性能相對平穩

  • 底層的存儲、網絡和計算架構保持一致或者近似

  • 你應用的自動化框架必須和兩個雲中的 API 都兼容

  • 每一個雲中,運行應用的總成本( TCO )都應該在1/2-2倍的範圍以內

  • 還有行爲上的兼容性,意味着非 API 功能也須要吻合

  • 支持與相關公有云 API 的兼容

5.可擴展的彈性架構

「當咱們在系統中增長資源後,其性能會按照所增長資源的某種比例增長時,咱們就能夠說其服務是可擴展的。」

從多方面看, OpenStack 自身就是個高擴展性的系統。它被設計爲鬆耦合、基於消息通訊的架構,這些技術在已經在各類中級到高級擴展的系統中獲得應用和驗證,它們也能夠適應小規模的部署。問題在於當你配置和部署 OpenStack 時所作的設計上的決定。

一部分默認的配置,以及許多廠商的插件和方案在設計時並無考慮擴展性。

基礎架構歷來沒有真正的彈性過,但是它的特性能支持彈性的應用在它上面運行。一個彈性雲,須要被設計爲每一個資源,好比虛機、塊存儲和對象存儲,其成本儘量的低。這和傑文斯悖論( Jevon’s Paradox )直接相關,他說隨着技術的進步,效率的提高將會帶來該技術被採用速度的提高。

  • 6.全面的支持和服務

總結:
OpenStack 做爲一個可擴展的打造下一代彈性雲的基礎架構,儘管它還不是很完美。但做爲一個開源項目,它的吸引力確實不容小視。基於平臺開放,會有愈來愈多的力量促使它更完善和強大,採用 OpenStack 意味着企業雲平臺會更加自主可控,並實現技術沉澱和自動化運維水平的提高。

參考文獻: The 6 Requirements of Enterprise-grade OpenStack

OneAPM 是中國基礎軟件領域的新興領軍企業。致力於幫助企業用戶提供全棧式的性能管理以及 IT 運維管理服務,經過一個探針就可以完成日誌分析、安全防禦、 APM 基礎組件監控、集成報警以及大數據分析等功能。想閱讀更多優秀文章,請訪問 OneAPM 官方技術博客 OneAPM 官方技術博客
本文轉自 OneAPM 官方博客

相關文章
相關標籤/搜索