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