OpenStack商用開放性和定制化的七顆龍珠
OpenStack是一個(gè)開源云計(jì)算管理平臺(tái)(確切來(lái)說(shuō)是平臺(tái)框架),現(xiàn)在很多廠商都基于OpenStack來(lái)結(jié)合相應(yīng)Linux操作系統(tǒng)(CentOS、SUSE或Ubuntu等)來(lái)做公有云或私有云的云計(jì)算操作系統(tǒng),比如華為、海云捷訊、UnitedStack、九州云等;當(dāng)然每個(gè)廠商做法不同,比如Redhat的RDO完全開源,而且其云計(jì)算管理平臺(tái)的投入不僅僅是OpenStack。
由于OpenStack各個(gè)組件成熟度不一、底層Driver技術(shù)完善度不同,特別是Neutron,所以任何基于OpenStack玩云計(jì)算的廠家,都面臨一個(gè)問(wèn)題:在日新月異的OpenStack開源代碼下,如何發(fā)布自己穩(wěn)定的發(fā)行版并通過(guò)快速迭代跟上社區(qū)的步伐?
軟件開源碼和硬件開架構(gòu)確實(shí)是最近技術(shù)界的趨勢(shì),非常有利于技術(shù)共享和積累傳播,也為初學(xué)者提供了大量的細(xì)節(jié)資料,從而在開源基礎(chǔ)上構(gòu)建生態(tài)圈來(lái)打破私有封閉性;但是大家不得不面臨的一個(gè)問(wèn)題是,開源的實(shí)現(xiàn)相當(dāng)一部分源碼考慮的是可行性及Demo級(jí)別的實(shí)現(xiàn)(當(dāng)然也有一些實(shí)現(xiàn)非常優(yōu)良),達(dá)到商用級(jí)別通常需要內(nèi)部加固和優(yōu)化;即對(duì)于OpenStack而言都需要在保持OpenStack開放性的同時(shí),不斷增強(qiáng)底層實(shí)現(xiàn);那么就會(huì)面臨發(fā)行版和開源社區(qū)版本有很多不一致的地方,這個(gè)是否破壞了OpenStack的開放性哪?
首先客戶為什么需要云計(jì)算平臺(tái)有開放的架構(gòu)哪?和SDN非常類似,因?yàn)樵破脚_(tái)涉及存儲(chǔ)、計(jì)算和網(wǎng)絡(luò)等等硬件設(shè)備的選型及采購(gòu),每一家云平臺(tái)的搭建過(guò)程廠商都是一個(gè)集成商角色,無(wú)論其自己是否能對(duì)云平臺(tái)所需的硬件設(shè)備和軟件工具來(lái)自產(chǎn)滿足,云平臺(tái)的開放性便于其不斷的特性疊加或升級(jí);而當(dāng)云平臺(tái)廠商需要購(gòu)買大量硬件設(shè)備或軟件工具搭建云平臺(tái)時(shí),不希望這些被一家提供商控制,而是在整體架構(gòu)解耦的條件下將每個(gè)模塊拆分而分別多個(gè)提供商競(jìng)標(biāo),這樣來(lái)降低總體成本和對(duì)特定廠商的依賴性。
那么這里還要區(qū)分下開放性是什么,開放性應(yīng)是通過(guò)標(biāo)準(zhǔn)的API和文檔說(shuō)明等手段,讓周邊生態(tài)圈能很容易構(gòu)建,這個(gè)和開源有很大的不同;這點(diǎn)和網(wǎng)絡(luò)中使用網(wǎng)絡(luò)協(xié)議來(lái)使得不同廠商的交換機(jī)能夠互通和兼容是一致的(舉個(gè)例子,現(xiàn)在Neutron中用Vxlan做隔離時(shí),Vxlan協(xié)議RFC中UDP的DPort標(biāo)準(zhǔn)值使用4789,但是并不是強(qiáng)制的而是可以配置選擇的,Neutron中通過(guò) vxlan_udp_port配置項(xiàng)來(lái)生效,對(duì)OpenvSwitch控制),SDN的特點(diǎn)之一也是有開發(fā)的北向接口和標(biāo)準(zhǔn)的南向接口,說(shuō)白了也是要SDN及其網(wǎng)元有開放性。換句話說(shuō),OpenStack只是通過(guò)Plugin/Driver的方式提供了一個(gè)整體解耦的架構(gòu),但是其底層實(shí)現(xiàn)需要各家廠商自己選擇、優(yōu)化甚至重新實(shí)現(xiàn),這個(gè)也是OpenStack提供這種架構(gòu)的初衷,以及得到這么多廠商和開源愛(ài)好者支持的很大一個(gè)原因,雖然開源社區(qū)也提供了基礎(chǔ)的實(shí)現(xiàn),不過(guò)目的多是體現(xiàn)思想和趨勢(shì)方面的東西。
所以O(shè)penStack開放性個(gè)人認(rèn)為若能夠保證這種解耦的框架和一致的北向接口,對(duì)于OpenStack的開放性即便是有了保證,而無(wú)需和社區(qū)實(shí)現(xiàn)保持一致;實(shí)話而言,任何一家廠商都沒(méi)有辦法與社區(qū)發(fā)布的相應(yīng)版本實(shí)現(xiàn)保持完全一致,這個(gè)也是沒(méi)有必要的。而廠商對(duì)OpenStack的優(yōu)化有著非常大的意義,下面通過(guò)優(yōu)化手段來(lái)具體談下相應(yīng)作用的理解:
第一,OpenStack運(yùn)行穩(wěn)定的基礎(chǔ)是服務(wù)器操作系統(tǒng),所以必須有一種穩(wěn)定的操作系統(tǒng)來(lái)對(duì)OpenStack的運(yùn)行提供保障;任何一家OpenStack廠商都要選擇一種操作系統(tǒng)來(lái)集成,操作系統(tǒng)現(xiàn)在基本都是某種Linux發(fā)布版,而優(yōu)化則主要是計(jì)算節(jié)點(diǎn)針對(duì)Hypervisor層、網(wǎng)絡(luò)節(jié)點(diǎn)主要針對(duì)協(xié)議棧等對(duì)Linux Kernel進(jìn)行選型,并不斷升級(jí)其Patch或新特性來(lái)加固;
第二,OpenStack整體框架的優(yōu)化是其可用性方面的基礎(chǔ),主要包括OpenStack管理面和控制面的性能和高可用方面的優(yōu)化,這方面為OpenStack的商用穩(wěn)定性及大規(guī)模可擴(kuò)展等提供了必要性;
第三,使用穩(wěn)定且成熟的Plugin和底層Driver實(shí)現(xiàn),為OpenStack的底層提供了有效的集成,尤其是Neutron的現(xiàn)狀來(lái)看,必須要進(jìn)行大量的優(yōu)化和加固才能商用,包括Iptables的性能、L3 router的性能及高可用、OpenvSwitch等,例如Dvr等特性很多廠商都還沒(méi)有使用;必須為Neutron提供可商用的底層Driver實(shí)現(xiàn),才能Hold住網(wǎng)絡(luò)的高可用和高性能,包括集成SDN架構(gòu)、Driver用硬件網(wǎng)元實(shí)現(xiàn)相應(yīng)的網(wǎng)絡(luò)功能等;
第四,第三方工具或平臺(tái)的集成,一方面包括底層實(shí)現(xiàn)各種特性的輔助工具比如多種虛擬化資源池融合、統(tǒng)計(jì)和計(jì)費(fèi)平臺(tái)集成等,網(wǎng)絡(luò)方面還包括Haproxy、防DDos攻擊設(shè)備、安全防護(hù)等方面集成等,都為OpenStack的商用保駕護(hù)航;而對(duì)客戶而言(尤其是私有云)則是流程IT的集成,包括其已有的審批流程和工單系統(tǒng)等;
第五,OpenStack商用平臺(tái)必須有不斷的合并Patch和新特性的能力,來(lái)保持OpenStack的安全性和穩(wěn)定性,并不斷滿足用戶的新需求;這點(diǎn)和Linux的發(fā)行版類似,Linux的內(nèi)核廠商除了對(duì)其內(nèi)核編譯優(yōu)化外,也提供不斷的補(bǔ)丁升級(jí)等維護(hù)服務(wù);
第六,OpenStack的運(yùn)行必須與傳統(tǒng)DC內(nèi)的監(jiān)控及運(yùn)維向結(jié)合,才能讓云平臺(tái)運(yùn)維人員對(duì)OpenStack良好的運(yùn)維能力;OpenStack的復(fù)雜性對(duì)傳統(tǒng)的運(yùn)維人員來(lái)說(shuō)是個(gè)壓力,對(duì)運(yùn)維人員的技能有較高的要求,如何將已有的工具盡快結(jié)合或開發(fā)新的適用工具,是運(yùn)維人員對(duì)OpenStack云平臺(tái)運(yùn)維需要回答的問(wèn)題;從Devops角度講,也是運(yùn)維人員將已有云平臺(tái)工具快速?gòu)?fù)制部署,為實(shí)現(xiàn)運(yùn)算穩(wěn)定運(yùn)營(yíng)提供了重要保障;
第七,OpenStack的部署升級(jí)需要通過(guò)專業(yè)的工具來(lái)保證其平滑性,是上線業(yè)務(wù)對(duì)云平臺(tái)的訴求;現(xiàn)在公有云或私有云的規(guī)模越來(lái)越大,部署時(shí)不通過(guò)專業(yè)的工具,非常容易出錯(cuò),以及后續(xù)的升級(jí)也是很困難;
所以從上面七點(diǎn)(為什么是七點(diǎn),因?yàn)榧R七龍珠有神龍)意義上說(shuō),OpenStack 保持標(biāo)準(zhǔn)API北向(可以適當(dāng)擴(kuò)展補(bǔ)充但需兼容)、穩(wěn)定的架構(gòu)框架和持續(xù)集成能力,是對(duì)OpenStack商用落地很多客戶提出的要求。
而那些非開源的云計(jì)算操作平臺(tái)或云計(jì)算操作系統(tǒng)(典型的有UCloud/AWS/阿里云等,其他國(guó)內(nèi)知名云計(jì)算廠商的公有云和私有云大多是基于OpenStack),如果是北向API等能夠保持足夠開放性,也并不會(huì)對(duì)其生態(tài)圈構(gòu)建有太大的技術(shù)妨礙;只是當(dāng)大家都關(guān)注OpenStack并為其做嫁衣時(shí),會(huì)沒(méi)有精力再投入到其他云平臺(tái)上而已。
【本文來(lái)源:KVM虛擬化實(shí)踐微信公眾號(hào)】