導(dǎo)讀:本文的主題是對云計(jì)算資源池中相關(guān)開源技術(shù)的研究,重點(diǎn)圍繞為什么要選擇開源技術(shù)、應(yīng)選擇哪些開源項(xiàng)目、開源可能帶來哪些問題這三個(gè)關(guān)鍵議題展開論述,旨在對運(yùn)營商云資源池開源演進(jìn)戰(zhàn)略提供一些有價(jià)值的思路與建議。
近年來,伴隨云計(jì)算、SDN、NFV等技術(shù)興起,國內(nèi)外運(yùn)營商都相繼提出中遠(yuǎn)期網(wǎng)絡(luò)重構(gòu)的戰(zhàn)略目標(biāo),一方面是想借助新技術(shù)產(chǎn)生新的業(yè)務(wù)模式,積極應(yīng)對互聯(lián)網(wǎng)公司OTT服務(wù)對電信傳統(tǒng)業(yè)務(wù)造成的強(qiáng)力沖擊。另一方面希望依托新技術(shù)構(gòu)建新的網(wǎng)絡(luò)架構(gòu),努力擺脫多年形成的僵化網(wǎng)絡(luò)對自身運(yùn)維效率提升帶來的巨大桎梏。CORD(Center Office Re-architected as Datacenter)作為運(yùn)營商網(wǎng)絡(luò)重構(gòu)的一個(gè)重要方向,已成為各大主流運(yùn)營商聚焦的核心熱詞。其中,尤以“CORD背景下的統(tǒng)一業(yè)務(wù)承載架構(gòu)”最為關(guān)鍵,目前業(yè)界的共識是通過構(gòu)建全網(wǎng)統(tǒng)一云資源池來承載上層各類業(yè)務(wù)網(wǎng)元,以“橫向分層”替代“縱向煙囪”的系統(tǒng)構(gòu)建模式,從而消除傳統(tǒng)網(wǎng)絡(luò)架構(gòu)帶來的諸多弊端?;诖耍讓釉瀑Y源池如何構(gòu)建對于運(yùn)營商們的網(wǎng)絡(luò)重構(gòu)最終成效具有舉足輕重的作用。
有關(guān)云資源池如何構(gòu)建算不上新鮮話題,自2006年谷歌CEO施密特首次提出“cloud computing”概念,距今已有12個(gè)年頭。在云計(jì)算發(fā)展初期,業(yè)界除了亞馬遜、谷歌、阿里等互聯(lián)網(wǎng)企業(yè)可以憑借強(qiáng)大的研發(fā)實(shí)力構(gòu)建自己的云平臺外,其它云服務(wù)提供商(如電信運(yùn)營商)只能基于封閉的商業(yè)軟件實(shí)現(xiàn)云平臺落地。但在最近幾年,伴隨OpenStack、KVM、Ceph等多個(gè)開源項(xiàng)目日趨成熟,以及DevOps理念風(fēng)靡全球,各大公司都在對自身的云資源池實(shí)施開源技術(shù)架構(gòu)演進(jìn)。很顯然,云計(jì)算已進(jìn)入了下半場時(shí)段,傳統(tǒng)電信運(yùn)營商能否在此領(lǐng)域找準(zhǔn)切入點(diǎn)、把握好節(jié)奏,勢必對其ICT融合轉(zhuǎn)型之路至關(guān)重要。
本文的主題是對云計(jì)算資源池中相關(guān)開源技術(shù)的研究,重點(diǎn)圍繞為什么要選擇開源技術(shù)、應(yīng)選擇哪些開源項(xiàng)目、開源可能帶來哪些問題這三個(gè)關(guān)鍵議題展開論述,旨在對運(yùn)營商云資源池開源演進(jìn)戰(zhàn)略提供一些有價(jià)值的思路與建議。
問題一:為什么要選擇開源技術(shù)?
與互聯(lián)網(wǎng)企業(yè)所不同的是電信運(yùn)營商作為傳統(tǒng)的CT企業(yè),更加關(guān)注于系統(tǒng)的穩(wěn)定性、高可用,因此在以往的設(shè)備選型、架構(gòu)設(shè)計(jì)中大多會(huì)采用純商業(yè)、封閉的產(chǎn)品,以確保網(wǎng)絡(luò)達(dá)到電信級標(biāo)準(zhǔn)要求。當(dāng)前,開源趨勢在全球興起,大批貢獻(xiàn)者持續(xù)不斷地對項(xiàng)目源碼進(jìn)行完善,使得很多優(yōu)秀的開源項(xiàng)目完全可以滿足電信級要求,這是運(yùn)營商擁抱開源技術(shù)的必要條件。另一方面,究竟為什么要選擇開源技術(shù)則是我們運(yùn)營商人必須想明白的問題,以下從九個(gè)方面對這一問題進(jìn)行了闡述。
標(biāo)準(zhǔn):開源基金會(huì)扮演著與傳統(tǒng)CT領(lǐng)域通信標(biāo)準(zhǔn)化組織(ITU、3GPP等)類似的角色,彌補(bǔ)了運(yùn)營商在IT領(lǐng)域因缺乏標(biāo)準(zhǔn)化體系造成相關(guān)系統(tǒng)在全局性、兼容性、開放性方面的不足。
降本:開源軟件應(yīng)用達(dá)到一定規(guī)模后,可以大幅節(jié)約成本,成本的節(jié)約有利于利潤的增長。
增效:開源社區(qū)有豐富的自動(dòng)化運(yùn)維工具,這些工具有利于運(yùn)營商向DevOps轉(zhuǎn)型,顯著提升運(yùn)維人員的工作效率。
功能:依托開源體系架構(gòu),運(yùn)營商可對定制化、個(gè)性化需求進(jìn)行二次開發(fā),而封閉、商業(yè)化的產(chǎn)品通常只會(huì)為通用可抽象化的功能進(jìn)行設(shè)計(jì)開發(fā),且無法實(shí)現(xiàn)二次開發(fā)。
安全:源代碼開放有利于自主可控,讓“黑匣子”變成“白匣子”,使用者了解內(nèi)在組成,大幅提升系統(tǒng)安全性。
創(chuàng)新:開源項(xiàng)目是創(chuàng)新的土壤,新特性、新功能可以快速實(shí)現(xiàn),不受限于商用產(chǎn)品的發(fā)布周期。社區(qū)某個(gè)貢獻(xiàn)者的好想法也有助于激活其他參與者的靈感。
競爭力:有利于運(yùn)營商掌握核心技術(shù),提升企業(yè)的核心競爭力。
話語權(quán):不會(huì)被某個(gè)廠家的“一攬子”解決方案綁定,使得系統(tǒng)優(yōu)化演進(jìn)更加靈活。
生態(tài)圈:開源項(xiàng)目有利于企業(yè)借勢借力,伴隨開源社區(qū)的不斷發(fā)展,企業(yè)的系統(tǒng)也會(huì)持續(xù)優(yōu)化。
問題二:應(yīng)選擇哪些開源項(xiàng)目?
由于云計(jì)算資源池的基礎(chǔ)是IAAS層,因此本文提及的開源項(xiàng)目主要以IAAS層視角展開分析。同時(shí)考慮到DevOps的重要性,會(huì)輔以部分優(yōu)秀的PAAS層開源項(xiàng)目進(jìn)行介紹。下面將分別從計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)、云操作系統(tǒng)、自動(dòng)化運(yùn)維工具等五大維度探究運(yùn)營商對云計(jì)算相關(guān)開源項(xiàng)目的選型問題。
1、計(jì)算:硬件、虛擬化、容器
(1)、硬件: 按照人們通常的理解,開源項(xiàng)目都是軟件相關(guān)的,然而硬件領(lǐng)域也不乏優(yōu)秀的開源項(xiàng)目,例如OCP。該項(xiàng)目由FaceBook于2011年發(fā)起,旨在通過開源硬件驅(qū)動(dòng)IT基礎(chǔ)設(shè)施架構(gòu)不斷發(fā)展。歷經(jīng)6年多時(shí)間,OCP已有近200多家企業(yè)會(huì)員。由于構(gòu)筑成本較低,去掉了很多繁瑣的無用功能,OCP可以有效地提升企業(yè)數(shù)據(jù)中心的迭代速度,使軟件升級更加簡單,一改早期數(shù)據(jù)中心尾大不掉的形象。在國內(nèi)也有個(gè)類似OCP的開源硬件項(xiàng)目,即天蝎計(jì)劃。天蝎計(jì)劃于2011年問世,百度是主要發(fā)起方之一,阿里、騰訊、聯(lián)想、中國移動(dòng)、中國電信等巨頭陸續(xù)參與。目前已從1.0發(fā)展至3.0版本。據(jù)了解,天蝎計(jì)劃已經(jīng)達(dá)到OCP中關(guān)于整機(jī)柜部分的國際水準(zhǔn),甚至在部分設(shè)計(jì)上超越OCP相關(guān)規(guī)范。
(2)、虛擬化: 這里提到的虛擬化特指X86服務(wù)器虛擬化技術(shù)。在云計(jì)算發(fā)展初期,該技術(shù)主要由VMware、Citrix等IT巨頭壟斷,相關(guān)產(chǎn)品雖然功能全面、性能不俗,但價(jià)格也十分昂貴?,F(xiàn)如今隨著開源KVM技術(shù)日趨成熟,越來越多的企業(yè)開始構(gòu)建基于開源KVM技術(shù)的云資源池,以期大幅縮減虛擬化軟件購置成本。KVM的全稱為Kernel Virtual Machine,翻譯為中文就是內(nèi)核虛擬機(jī)。KVM是典型的二類虛擬機(jī)架構(gòu)(從VMM所處層次可將虛擬化軟件劃分為一類虛擬機(jī)架構(gòu)和二類虛擬機(jī)架構(gòu),一類的VMM處于硬件層之上,自身就是一個(gè)操作系統(tǒng)。二類的VMM處于宿主機(jī)操作系統(tǒng)層之上,自身可看作一個(gè)應(yīng)用程序),它的宿主機(jī)操作系統(tǒng)涵蓋CentOS、Ubuntu、Debian等多個(gè)Linux發(fā)行版。
(3)、容器: 容器是輕量級的操作系統(tǒng)級虛擬化,可以讓我們在一個(gè)資源隔離的進(jìn)程中運(yùn)行應(yīng)用及其依賴包。在眾多容器引擎技術(shù)中,Docker無疑是明星級解決方案。Docker是PAAS提供商dotCloud開源的一個(gè)基于LXC的高級容器引擎,基于go語言開發(fā)并遵從Apache2.0協(xié)議開源。
2、網(wǎng)絡(luò):虛擬交換機(jī)
虛擬交換機(jī):大部分商業(yè)虛擬化軟件中都自帶虛擬交換機(jī)的組件,例如VMware的vDS、vSS。但對于開源的虛擬化軟件而言,其自帶的網(wǎng)絡(luò)功能通常比較簡單,這就需要額外的虛擬交換機(jī)彌補(bǔ)這一短板問題,OVS(Open vSwitch)則是該領(lǐng)域最熱門的開源項(xiàng)目。OVS是由Nicira公司使用C和Python語言開發(fā),并遵循開源Apache2.0許可的多層虛擬交換機(jī),其初衷是讓大規(guī)模網(wǎng)絡(luò)通過可編程實(shí)現(xiàn)自動(dòng)化擴(kuò)展。它既可以作為一個(gè)軟件交換機(jī)運(yùn)行在虛擬化層,也可以作為交換芯片的控制棧實(shí)現(xiàn),支持多種標(biāo)準(zhǔn)管理接口和協(xié)議(NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。它也支持多種虛擬化技術(shù),包括KVM、Xen和VirtualBox。
3、存儲(chǔ):分布式存儲(chǔ)
分布式存儲(chǔ):云計(jì)算發(fā)展至今,可以說是一部軟件定義一切(SDX)的技術(shù)發(fā)展史。從早期的X86服務(wù)器虛擬化(可以理解為軟件定義計(jì)算),到軟件定義網(wǎng)絡(luò)(SDN)、軟件定義存儲(chǔ)(SDS),再到大一統(tǒng)的軟件定義數(shù)據(jù)中心(SDDC),每種技術(shù)都曾在業(yè)界倍受關(guān)注。在這些SDX技術(shù)中,軟件定義存儲(chǔ)可以算是繼軟件定義計(jì)算后,最為實(shí)用的一類。何為實(shí)用技術(shù)?筆者認(rèn)為有兩項(xiàng)評判標(biāo)準(zhǔn)最為關(guān)鍵,其一是看這項(xiàng)技術(shù)與以往技術(shù)相比是否有顯著進(jìn)步(如架構(gòu)的革新、功能的增加或性能的提升),其二是看這項(xiàng)技術(shù)的性價(jià)比。軟件定義存儲(chǔ)技術(shù)顯然符合以上兩點(diǎn)要求。首先,SDS與以往的存儲(chǔ)技術(shù)相比,是一種全新的分布式架構(gòu),因此也有“分布式存儲(chǔ)”的提法。這種“去集中化”的思想源自于谷歌等大型互聯(lián)網(wǎng)企業(yè),它不僅降低了IT系統(tǒng)的存儲(chǔ)故障風(fēng)險(xiǎn),同時(shí)可以大幅提升存儲(chǔ)IOPS性能,甚至讓存儲(chǔ)容量在線擴(kuò)展成為現(xiàn)實(shí),以上三點(diǎn)都是長久以來困擾IT系統(tǒng)存儲(chǔ)管理員的難題。其次,SDS完美地實(shí)現(xiàn)了軟、硬件解耦,這點(diǎn)與X86服務(wù)器虛擬化類似。二者不同之處在于X86服務(wù)器虛擬化的松耦合架構(gòu)帶來了在線熱遷移、計(jì)劃內(nèi)零宕機(jī)等特性,SDS的松耦合架構(gòu)則使專用存儲(chǔ)硬件演變?yōu)橥ㄓ肵86服務(wù)器,這大幅降低了IT系統(tǒng)存儲(chǔ)設(shè)備的投資開銷。目前業(yè)界最熱門的開源分布式存儲(chǔ)項(xiàng)目非Ceph莫屬,作為一款同時(shí)支持對象、塊、文件的統(tǒng)一存儲(chǔ)系統(tǒng),Ceph也是當(dāng)前OpenStack生態(tài)系統(tǒng)中呼聲最高的開源存儲(chǔ)解決方案。
4、云操作系統(tǒng)
在云計(jì)算發(fā)展初期,有關(guān)云操作系統(tǒng)的市場爭奪從未停歇過。除了VMware、Citrix、微軟推出的商業(yè)云管理平臺軟件外,開源項(xiàng)目也是遍地開花,包括CloudStack、OpenStack、Eucalyptus、OpenNebula等多個(gè)平臺。從現(xiàn)階段的發(fā)展形勢來看,OpenStack基本已成為云操作系統(tǒng)的不二選擇。師承亞馬遜AWS的OpenStack自2010年10月第一版(Austin)到最新版(Pike),已歷經(jīng)16個(gè)版本,從最初的Nova、Swift兩大模塊到如今大大小小上百個(gè)模塊,被認(rèn)為是僅次于Linux的第二大開源社區(qū)項(xiàng)目。近兩年,各行各業(yè)基于OpenStack的云平臺方案如雨后春筍般出現(xiàn),而真正能給OpenStack一個(gè)準(zhǔn)確定義的人卻很少。有人認(rèn)為它是云管理平臺,有人認(rèn)為它是云計(jì)算平臺,還有人把它與VMware虛擬化相對應(yīng),正所謂“一千個(gè)人眼里有一千個(gè)哈姆雷特”,你把它看作什么只能表示你關(guān)注它哪方面,并不表示它就是什么。筆者傾向于將其看作是“現(xiàn)行最通用的云計(jì)算標(biāo)準(zhǔn)體系架構(gòu)”,它的日益成熟規(guī)范了以往云計(jì)算領(lǐng)域各類錯(cuò)綜復(fù)雜的技術(shù)概念,實(shí)現(xiàn)了各廠家云解決方案的和諧統(tǒng)一。可別小看這一點(diǎn),畢竟能讓全世界不同語言(各類IT產(chǎn)品接口)的國家(各IT廠家)擱置爭議、溝通合作(統(tǒng)一適配)的組織也就聯(lián)合國了。從這點(diǎn)來看,OpenStack就是云計(jì)算世界的“聯(lián)合國”角色。
5、自動(dòng)化運(yùn)維工具
嚴(yán)格意義上說,自動(dòng)化運(yùn)維工具不能算是云計(jì)算特有的,在傳統(tǒng)IT架構(gòu)下也有自動(dòng)化運(yùn)維的需求與實(shí)現(xiàn)。只不過近些年業(yè)界興起的DevOps與云計(jì)算相結(jié)合,重新賦予了自動(dòng)化運(yùn)維新的理念,在此背景下,也出現(xiàn)了不少優(yōu)秀的開源自動(dòng)化運(yùn)維工具,Ansible就是目前業(yè)界最為熱門的一個(gè)。Ansible是一種模型驅(qū)動(dòng)型配置管理工具,充分利用SSH技術(shù),改善安全、簡化管理。除了配置管理外,它還能夠?qū)崿F(xiàn)應(yīng)用程序部署(甚至多層部署)、工作流程編排和云配置自動(dòng)化等功能。Ansible基于五大設(shè)計(jì)原則,包括易于使用(不需要編寫腳本或自定義代碼)、易于掌握(對管理員和開發(fā)者來說都是如此)、全面的自動(dòng)化(讓你可以做到你環(huán)境中的幾乎一切都實(shí)現(xiàn)自動(dòng)化)、高效率(因?yàn)樗贠penSSH上運(yùn)行,因而不依賴內(nèi)存或處理器資源),以及安全性(它天生來得更安全,因?yàn)椴恍枰怼㈩~外端口或根級守護(hù)程序)。與其他許多開源項(xiàng)目一樣,Ansible也有一款收費(fèi)產(chǎn)品,使用一種名為Ansible Tower的Web用戶界面。
問題三:開源可能帶來哪些問題?
1、開源不等于免費(fèi)
這是開源領(lǐng)域一個(gè)永恒的話題,也是任何機(jī)構(gòu)、組織或公司想要用好開源軟件需要接受的一個(gè)觀點(diǎn)。開源軟件是對傳統(tǒng)商業(yè)軟件開發(fā)及應(yīng)用模式的一種變革。傳統(tǒng)商業(yè)軟件按照許可售賣,用戶在部署、使用及后期維護(hù)方面遇到的問題,均可由軟件商提供明碼標(biāo)價(jià)的服務(wù)。開源軟件為用戶提供了一個(gè)免費(fèi)的社區(qū)版軟件,但通常情況下,它只能算是一個(gè)“半成品”,僅能滿足用戶最基本、最通用的功能需求,一些定制化的功能需要用戶在社區(qū)版基礎(chǔ)上二次開發(fā)。另一方面,對于軟件前期的部署、中后期的運(yùn)維也缺乏專業(yè)的團(tuán)隊(duì)支持。如果將軟件比作一輛車,國內(nèi)外大部分電信運(yùn)營商都習(xí)慣于做一名合格不出事故的司機(jī),即從設(shè)備制造商手中買一輛“成品車”,然后努力學(xué)好駕馭這輛車的技能。然而,開源軟件則是一輛“半成品車”,在它可以平穩(wěn)駕駛前,首先要對其進(jìn)行優(yōu)化改造,而這需要機(jī)械師的技能。因此,多年來習(xí)慣于做“司機(jī)”的運(yùn)營商或許需要考慮如何補(bǔ)充“機(jī)械師”技能了。想要成為一名合格的機(jī)械師,學(xué)費(fèi)是不可避免的。
2、開源阻礙技術(shù)發(fā)展
這個(gè)觀點(diǎn)似乎與大眾的認(rèn)知相去甚遠(yuǎn),但現(xiàn)如今這個(gè)問題在開源領(lǐng)域確實(shí)存在。開源項(xiàng)目的初衷是希望集合全世界廣大開發(fā)者的力量打造一款優(yōu)秀、強(qiáng)大、快速迭代的軟件,替代傳統(tǒng)IT巨頭開發(fā)的閉源商業(yè)軟件,從而消除技術(shù)壁壘,避免廠商控制技術(shù)演進(jìn)路線的現(xiàn)象發(fā)生。例如Linux項(xiàng)目的發(fā)展促成了服務(wù)器X86化趨勢,讓系統(tǒng)封閉且價(jià)格高昂的小型機(jī)逐漸退出歷史舞臺。又如安卓項(xiàng)目的誕生加速了移動(dòng)互聯(lián)網(wǎng)的繁榮發(fā)展,讓非智能手機(jī)消失在人們的視野中,這些成功的開源項(xiàng)目確實(shí)促進(jìn)了技術(shù)的發(fā)展。但近年來,伴隨眾多IT巨頭相繼關(guān)注開源事業(yè),投入資金支持社區(qū)發(fā)展后,曾經(jīng)相對純粹的開源項(xiàng)目產(chǎn)生了微妙的變化。一些由少數(shù)廠商主導(dǎo)的開源項(xiàng)目變得不再開放、友好,相關(guān)廠商為了自身利益的最大化做起了與開源項(xiàng)目初衷背離的事情,導(dǎo)致一些優(yōu)秀的開源項(xiàng)目走向衰敗。這種現(xiàn)象發(fā)生在開源項(xiàng)目上,通常比商業(yè)軟件危害更大。因?yàn)橥愋偷纳虡I(yè)軟件一般可由多個(gè)競爭廠商分別提供,并長期共存。而同類型的開源軟件在發(fā)展初期會(huì)充分競爭,但隨著時(shí)間推移,基于“叢林法則”最終形成一家獨(dú)大的格局。如果勝出的項(xiàng)目被少數(shù)商業(yè)公司掌控,這些企業(yè)就可以控制某一行業(yè)、某一領(lǐng)域的技術(shù)趨勢,這與完全壟斷某個(gè)市場的商業(yè)軟件幾乎毫無差別。
3、開源并不安全
在前文中筆者曾將“安全”作為開源軟件的優(yōu)點(diǎn)加以論述,現(xiàn)在又將其視為開源軟件的潛在問題來討論,這看似有些悖論的意味,卻又真實(shí)存在。提出開源軟件更加安全論點(diǎn)的人們普遍認(rèn)為社區(qū)有成百上千的人在審核代碼以便發(fā)現(xiàn)漏洞或缺陷,從而快速修復(fù)漏洞,不被攻擊者利用。但持有這種觀點(diǎn)的人往往忽視了一個(gè)問題,即代碼中的漏洞是開放給所有人查看的,攻擊者也在其中,而大部分漏洞從發(fā)現(xiàn)到完全修復(fù)的耗時(shí)明顯要大于惡意代碼產(chǎn)生耗時(shí),這就給了攻擊者可乘之機(jī)。這從早幾年OpenSSL爆出的“Heartbleed”漏洞到MongoDB的“贖金事件”,再到最近由Memcached漏洞引起的“DRDOS攻擊”,均反映了開源軟件并不安全這一事實(shí)。
結(jié)束語
綜上所述,本文重點(diǎn)討論了在構(gòu)建云資源池時(shí)為什么要選擇開源技術(shù)、應(yīng)選擇哪些開源項(xiàng)目、開源可能帶來哪些問題等三大類議題。文中提及的開源項(xiàng)目僅僅涉及云計(jì)算相關(guān)開源項(xiàng)目中的一小部分,云計(jì)算目前仍是一種新興的技術(shù)領(lǐng)域,而與此相關(guān)的開源項(xiàng)目也在不斷成熟發(fā)展中,因此對于云計(jì)算資源池中相關(guān)開源技術(shù)的研究是一個(gè)長期持續(xù)的議題,希望本文所述的觀點(diǎn)能給各位讀者有所幫助與啟發(fā)。
作者簡介:趙輝,中國電信股份有限公司江蘇分公司操作維護(hù)中心工程師、業(yè)務(wù)平臺技術(shù)支撐工程師,中國通信學(xué)會(huì)個(gè)人會(huì)員,主要從事云計(jì)算平臺運(yùn)維、SDN、NFV、OpenStack、人工智能等新技術(shù)應(yīng)用工作,微信公眾號“趙輝說云”創(chuàng)辦人。