OpenStack 是一個面向 IaaS 層的開源項目,用于實現(xiàn)公有云和私有云的部署及管理押逼。擁有眾多大公司的行業(yè)背書和數(shù)以千計的社區(qū)成員, OpenStack 被看作是云計算的未來惦界。目前 OS 基金會里已有500多個企業(yè)贊助商挑格,遍布世界170多個國家,其中不乏 HP 沾歪、 Cisco 漂彤、 Dell 、 IBM 等灾搏,值得一提的是 Google 也在2015年加入基金會挫望。
一.關(guān)于項目起源
Rackspace (一家美國的云計算廠商)和 NASA (美國國家航空航天局)在2010年共同發(fā)起了 OpenStack 項目。
那時候 Rackspace 是美國第二大云計算廠商狂窑,但規(guī)模只能占到亞馬遜的5%媳板。只依靠內(nèi)部的力量來超越或者追趕亞馬遜不大可能,這家公司索性就把自己的項目開源了泉哈,也就是后來的 OpenStack 的存儲源碼( swift )蛉幸。
與此同時破讨, NASA 也對自己使用的 Eucalyptus 云計算管理平臺很不爽。 Eucalyptus 有兩個版本奕纫,開源版本和收費版本提陶, NASA 想給 Eucalyptus 開源版本貢獻 patch ,結(jié)果 Eucalyptus 不接受匹层,估計是和收費版本功能重疊了隙笆。當時 NASA 的六個開發(fā)人員,用了一個星期時間拿 Python 做出來一套原型升筏,結(jié)果虛擬機在這上面運行的很成功仲器,這就是 Nova (計算源碼)的起源。
NASA 跟 Raskspace 玩的比較好仰冠,于是 NASA 貢獻 Nova 乏冀, Raskspace 貢獻 Swift ,在2010年的7月發(fā)起了 OpenStack 項目洋只。
二. OpenStack 架構(gòu)
截至 Grizzly 版本辆沦, OpenStack 含七個核心項目:
- Compute (Nova)
- Networking (Neutron/Quantum)
- Identity Management (Keystone)
- Object Storage (Swift)
- Block Storage (Cinder)
- Image Service (Glance)
- User Interface Dashboard (Horizon)
其中有三個最核心的架構(gòu)服務(wù)單元,分別是:計算基礎(chǔ)架構(gòu) Nova 识虚、存儲基礎(chǔ)架構(gòu) Swift 和鏡像服務(wù) Glance 肢扯。
Nova 是 OpenStack 云計算架構(gòu)控制器,管理 OpenStack 云里的計算資源担锤、網(wǎng)絡(luò)蔚晨、授權(quán)、和擴展需求肛循。 Nova 不能提供本身的虛擬化功能铭腕,相反,它使用 libvirt 的 API 來支持虛擬機管理程序交互多糠,并通過 web 服務(wù)接口開放他的所有功能并兼容亞馬遜 web 服務(wù)的 EC2 接口累舷。
Swift 為 OpenStack 提供分布式的、最終一致的虛擬對象存儲夹孔。通過分布式的穿過節(jié)點被盈, Swift 有能力存儲數(shù)十億計的對象, Swift 具有內(nèi)置冗余搭伤、容錯管理只怎、存檔、流媒體的功能怜俐。并且高度擴展身堡,不論大小(多個 PB 級別)和能力(對象的數(shù)量)佑菩。
Glance 鏡像服務(wù)查找和檢索虛擬機的鏡像系統(tǒng)盾沫。
上圖為 OpenStack 架構(gòu)
三個元素將會與系統(tǒng)中的所有組件進行交互裁赠。 Horizon 是圖形用戶界面殿漠,管理員可以很容易地使用它來管理所有項目赴精。 Keystone 處理授權(quán)用戶的管理, Neutron 定義提供組件之間連接的網(wǎng)絡(luò)绞幌。
Nova 被認為是 OpenStack 的核心蕾哟,負責(zé)處理工作負載的流程。它的計算實例通常需要進行某種形式的持久存儲莲蜘,它可以是基于塊的 ( Cinder ) 或基于對象的 ( Swift )谭确。 Nova 還需要一個鏡像來啟動一個實例。 Glance 將會處理這個請求票渠,它可以有選擇地使用 Swift 作為其存儲后端逐哈。
OpenStack 架構(gòu)一直努力使每個項目盡可能的獨立,這使得用戶可以選擇只部署一個功能子集问顷,并將它與提供類似或互補功能的其他系統(tǒng)和技術(shù)相集成昂秃。然而,這種獨立性不應(yīng)掩蓋這樣一個事實:全功能的私有云很可能需要使用幾乎所有功能才可以正常運作杜窄,而且各元素需要被緊密地集成肠骆。
傳統(tǒng)的軟件生態(tài)模式是用戶和開發(fā)者之間隔著銷售、產(chǎn)品經(jīng)理等角色塞耕,而 OpenStack 等開源的模式打破了這樣一種模式蚀腿, OS 只提供最最底層的框架,剩余一切都圍繞著用戶扫外,用戶可參與從設(shè)計莉钙、編碼、測試筛谚、到運維的各種階段胆胰。而這樣的模式生命力是最強的。
三. OpenStack 的核心優(yōu)勢
如果僅僅是便宜刻获,那么 OpenStack 對于企業(yè)似乎就沒那么大的價值了蜀涨。相反, OpenStack 提供了一個非常好的有關(guān)如何來打造類似于主要公有云比如亞馬遜( AWS )和 Google Cloud Platform ( GCP )的彈性私有云的樣板蝎毡。就像 Hadoop 將 Google 的 MapReduce (加上它的參考架構(gòu))推向大眾一樣厚柳, OpenStack 將 AWS/GCP 式樣的的基礎(chǔ)架構(gòu)即服務(wù)( IaaS )推向了每個用戶。它就是能實現(xiàn)企業(yè)內(nèi)部 DevOps 的終極平臺沐兵。
OpenStack 能在企業(yè)內(nèi)部提供類似的平臺别垮。私有云可以基于公有云模型來構(gòu)造,使得開發(fā)者同時擁有集中式 IT 控制和支配扎谎。本質(zhì)上碳想,它是兩者融合的最佳平臺烧董,這也是 OpenStack 驅(qū)動的私有云的真正價值。
由 OpenStack 來實現(xiàn)企業(yè)內(nèi)部的 DevOps 胧奔,進而實現(xiàn)敏捷逊移,而敏捷恰恰是驅(qū)動云計算的原動力。
四.企業(yè)級 OpenStack 的需求
企業(yè)級 OpenStack 到底需要什么呢龙填?有以下六個關(guān)鍵的因素:
- 1.99.999% 的 API 可用性以及可擴展的控制平面
有高可靠性要求的應(yīng)用需要高可靠的云API向全新的云和 DevOps 模型轉(zhuǎn)型的一個關(guān)鍵能力是提供云原生應(yīng)用在彈性云中的容錯能力胳泉。要使一個應(yīng)用能實時地適應(yīng)不同組件的出錯,云 API 需要有更高的可用性岩遗。
API 的可用性不是唯一的衡量標準扇商。你的云控制平面的吞吐量( throughoutput )同樣關(guān)鍵∷藿福可以將控制平面想象成云的指揮中樞案铺。這是中央智能和編排層的核心。你的 API 是控制平面的一部分梆靖,對于 OpenStack 來說控汉,包括所有的核心項目,以及日常的云管理系統(tǒng)(通常是 OpenStack 企業(yè)級套件的一部分)涤姊,以及所有必要的輔助服務(wù)暇番,比如數(shù)據(jù)庫、 OpenStack 各廠商插件等等思喊。你的云的控制平面必須能夠隨著云的增長而增長壁酬。這意味著,總體上恨课,你將會獲得更多的 API 操作的吞吐量(對象上傳/下載舆乔、鏡像上傳/下載、元數(shù)據(jù)更新等待)剂公。
- 2.健壯的管理和安全模型
安裝只是管理 OpenStack 的開端希俩。一個真正的云操作系統(tǒng)將提供一個從設(shè)計上就能保證基礎(chǔ)設(shè)施團隊能成功交付服務(wù)的以運維為核心的云管理工具套件。這些管理工具將提供:
- 可重用的架構(gòu)模型纲辽,通常使用參考網(wǎng)絡(luò)架構(gòu)將小集群( pod )或者組( block )連接在在一起
- 初始云安裝和部署
- 典型的日常云運維工具颜武,包括日志、系統(tǒng)測量值和相關(guān)度分析
- 供云運維人員使用的用來做整合和自動化的 CLI 和 API
- 用于可視化和分析的云運維圖形界面
OneAPM 的出現(xiàn)拖吼,使得企業(yè)可以縮減龐大運維團隊的開支鳞上, OneAPM 的產(chǎn)品能幫助你進行應(yīng)用性能分析、告警吊档、日志分析記錄篙议,并能實現(xiàn)代碼級的故障診斷。
- 3.開放的架構(gòu)
OpenStack 的開放架構(gòu),能夠減少廠商鎖定鬼贱,進而降低風(fēng)險移怯。
- 4.混合云兼容性
目前環(huán)境下,混合云兼具私有云安全性與公有云的彈性擴展能力这难,混合云必然成為企業(yè)云部署的第一選擇舟误。根據(jù)應(yīng)用類別和業(yè)務(wù)特點,將關(guān)鍵應(yīng)用雁佳、性能敏感型脐帝、中高密級應(yīng)用部署在私有云同云,其他應(yīng)用部署在公有云糖权;將同一個應(yīng)用的不同層部署在不同云中,時延敏感業(yè)務(wù)就近用戶部署炸站,提升最終用戶體驗星澳; Web Front 支持 Web 服務(wù)靈活擴展,集中控制關(guān)鍵數(shù)據(jù)旱易;突發(fā)型應(yīng)用禁偎,私有云資源不足時(如 Web 網(wǎng)站),向公有云臨時租借資源阀坏。
混合云的難點在于解決應(yīng)用的移植性問題如暖。如果你需要一個公有云和私有云組合而成的混合云,不管應(yīng)用在某個云中被開發(fā)忌堂,還是要在兩個云之間做遷移盒至,或者從一個云到另一個云,應(yīng)用的可移植性都是必須的士修。當你選定一個應(yīng)用以及它的云原生的自動化框架枷遂,并將它們從一個云移動到另一個云中,一些關(guān)鍵的東西必須保持一致:
- 性能相對平穩(wěn)
- 底層的存儲棋嘲、網(wǎng)絡(luò)和計算架構(gòu)保持一致或者近似
- 你應(yīng)用的自動化框架必須和兩個云中的 API 都兼容
- 每個云中酒唉,運行應(yīng)用的總成本( TCO )都應(yīng)該在1/2-2倍的范圍之內(nèi)
- 還有行為上的兼容性,意味著非 API 功能也需要吻合
- 支持與相關(guān)公有云 API 的兼容
5.可擴展的彈性架構(gòu)
「當我們在系統(tǒng)中增加資源后沸移,其性能會按照所增加資源的某種比例增加時痪伦,我們就可以說其服務(wù)是可擴展的”⒙啵」
從多方面看网沾, OpenStack 自身就是個高擴展性的系統(tǒng)。它被設(shè)計為松耦合笆制、基于消息通信的架構(gòu)绅这,這些技術(shù)在已經(jīng)在各種中級到高級擴展的系統(tǒng)中得到應(yīng)用和驗證,它們也可以適應(yīng)小規(guī)模的部署在辆。問題在于當你配置和部署 OpenStack 時所做的設(shè)計上的決定证薇。
一部分默認的配置度苔,以及許多廠商的插件和方案在設(shè)計時并沒有考慮擴展性。
基礎(chǔ)架構(gòu)從來沒有真正的彈性過浑度,可是它的特性能支持彈性的應(yīng)用在它上面運行寇窑。一個彈性云,需要被設(shè)計為每個資源箩张,比如虛機甩骏、塊存儲和對象存儲,其成本盡可能的低先慷。這和杰文斯悖論( Jevon’s Paradox )直接相關(guān)饮笛,他說隨著技術(shù)的進步,效率的提升將會帶來該技術(shù)被采用速度的提升论熙。
- 6.全面的支持和服務(wù)
總結(jié):
OpenStack 作為一個可擴展的打造下一代彈性云的基礎(chǔ)架構(gòu)福青,盡管它還不是很完美。但作為一個開源項目脓诡,它的吸引力確實不容小視无午。基于平臺開放祝谚,會有越來越多的力量促使它更完善和強大宪迟,采用 OpenStack 意味著企業(yè)云平臺會更加自主可控,并實現(xiàn)技術(shù)沉淀和自動化運維水平的提升交惯。
參考文獻: The 6 Requirements of Enterprise-grade OpenStack
OneAPM 是中國基礎(chǔ)軟件領(lǐng)域的新興領(lǐng)軍企業(yè)次泽。致力于幫助企業(yè)用戶提供全棧式的性能管理以及 IT 運維管理服務(wù),通過一個探針就能夠完成日志分析商玫、安全防護箕憾、 APM 基礎(chǔ)組件監(jiān)控、集成報警以及大數(shù)據(jù)分析等功能拳昌。想閱讀更多優(yōu)秀文章袭异,請訪問 OneAPM 官方技術(shù)博客 OneAPM 官方技術(shù)博客
本文轉(zhuǎn)自 OneAPM 官方博客