私有云之殤:公有云這座大山(上)

本文系InfoQ中文站向ZStack項目創始人張鑫的約稿。2015年4月正式對外開源的ZStack項目宣稱要解決在OpenStack中得不到解決的問題,并明確將項目目標指向目前前景似乎越來越不明朗的私有云市場。作為ZStack項目的架構師、CloudStack的前開發人員,張鑫對于私有云——或者說on-premise的企業IT——到底遇到了什么問題、此類服務到底應該怎么做,是如何構想的?本文將分享他對這個話題的思考。

寫在前面:由于企業私有云市場遲遲未打開,近兩年來已有多家IaaS企業被廉價收購甚至倒閉,業界已經開始出現一種質疑私有云是偽命題的聲音。在此,作者想借ZStack發布的機會,梳理一下私有云的過去和現狀,并展望一下它的未來。

數據中心自動化的前世今生

從系統管理的角度來看,我們可以把企業IT市場分為三個階段:前虛擬化紀元,虛擬化紀元,IaaS紀元(基礎設施即服務紀元)。

前虛擬化紀元是指虛擬化技術出現以前的階段,可以追溯到計算機出現到1998年VMWare的創立。在這個階段,人們管理機器的方式主要是人工部署架構(包括安裝物理機,網絡部署等),配合分布式軟件管理。這個時期由于沒有虛擬化技術,一臺物理機只能運行一個操作系統,網絡拓撲也必須事先設計然后硬連線,整體上效率低下,不靈活。由于一旦部署就難以改變,底層架構往往會制約上層業務;軟件方面也沒有統一標準,多是由系統管理員自己開發的腳本來實現部分自動化。

1998年VMWare成立ethos并發布首款操作系統虛擬化產品后,市場進入了企業級虛擬化紀元。由于虛擬化技術允許同一物理機上運行多個操作系統,并且操作系統之間可以用虛擬化軟件提供的虛擬網絡連接,其靈活性讓IT架構的部署極大簡化。系統管理員在安裝物理機后,網絡拓撲可以使用扁平的二級網絡,即所有物理機在同一個二級網絡廣播域(broadcast domain),然后在虛擬網絡級別實現隔離。這階段雖然有虛擬化軟件的幫助,系統管理員仍然需要在虛擬機級別手動部署網絡或存儲。比如需要手動為同一個虛擬網絡內的虛擬機配置DHCP/DNS服務器,需要在不同的虛擬網絡之間手動配置路由等。

從Amazon在2006年發布EC2公有云,市場開始真正進入IaaS紀元。跟虛擬化紀元不同的是,IaaS軟件借助虛擬化技術不僅提供池化資源,還將計算、存儲、網絡資源按服務的方式提供給用戶,實現按需索取。同樣是部署網絡的例子,在IaaS紀元,管理員不再需要手動配置DHCP/DNS服務器、網絡路由,而是向IaaS軟件描述需求,由IaaS軟件自動去配置部署。隨著軟件定義網絡(SDN)、軟件定義存儲(SDS)等技術的出現和應用,管理員甚至不再需要手動安裝虛擬軟件到物理服務器(借助IPMI/PXE),不需要手動配置交換機,只需要把硬件安裝在機架并連線,其余所有工作都交給軟件處理。自此數據中心管理開始進入軟件定義的全自動化時代。

私有云的需求是真實存在的

作為CloudStack的前開發人員(作者于2010年加入Cloud.com,后被Citrix收購),作者曾多次作為CloudStack的代表參加了多家國際知名公司內部私有云項目的設計和策劃,第一線地接觸到客戶的需求和痛點。在整個過程中,作者最深切的感受是:私有云市場的需求是真實存在的,但現有產品與客戶需求的差距也是巨大的。除去加在私有云上的各種噱頭,客戶的核心需求是管理數據中心或企業IT架構中不斷增加的硬件、實現自動化、減少底層架構的部署時間,從而加速企業在上層業務上的創新。用通俗的話說就是:

機器越來越多,人管不過來,得讓軟件去管;

老板急著上線業務,IT部門不能拖后腿說光架設機器部署網絡就要一個月。

這個剛需是非常巨大的。調研機構TBR在2014年發布的報告中估算當年私有云市場的總份額在410億美元上下,并預測2018年私有云市場份額將達到680億美元。

企業IT不適合簡單復制公有云模式

IaaS技術出現以來,其最廣泛最成功的應用當屬公有云。一大批公有云廠商的出現加速了行業的發展和創新,催生了大量相關產業,同時也在一定程度上幫助很多客戶從底層架構的依賴中解脫出來,實現了業務創新。例如很多成功的SaaS公司就是完全運行在公有云之中。公有云的宣傳口號是“讓云計算像水和電一樣”,這是非常高明的文案,讓人潛意識中以為有了公有云為我們提供按需供應的計算資源,就不需要自己建立和維護IT架構或數據中心,畢竟沒人會去自己建自來水廠和發電站。但實際上公有云遠沒有達到自來水管道和供電網絡那般完善和穩定,在數據安全和成本方面也并不占優勢。我認為公有云之所以成功,是因為它去除了基礎設施里眾多的差異性,抽象出能夠滿足大部分客戶需要的模型,例如業界事實標準的Amazon EC2模型。

但這個模型并不適合所有場景。例如像Facebook這樣的公司,交換機間就需要40G的獨享帶寬,存儲上還需要專門公司提供的閃存(Flash);而保險公司可能又希望數據庫跑在物理機上,并且物理機網絡要能夠跟前端虛擬機的網絡形成VPC。公有云是不能夠在一個多租戶的環境內去滿足各個客戶的差異性需求的。所以,公有云雖然是到目前為止IaaS領域發展最好也是最成功的例子,但要斷言它必將統治世界還為時過早。如果哪天Intel和AMD的服務器芯片都被公有云廠商買走了,那么一個新時代必將開始;在此之前,我們仍然需要面對私有云市場的需求。

在過去幾年跟不同客戶打交道的過程中,作者深刻感覺到數據中心自動化以及企業IT架構云化的需求必須劃分為兩類。

一類是服務提供商的需求(service provider)。這類企業搭建私有云的目的是為了支撐上層業務的運行,例如電商公司的私有云、游戲公司的私有云。這類私有云對技術的要求跟公有云類似,因為他們的業務模式決定了基礎架構需要有快速動態擴展的能力,存儲需要是分布式以支撐數據的爆炸式增長等。這類公司通常有很強的DevOps能力,同時也面臨著傳統IT架構不能解決的問題,所以他們有能力部署不成熟的IaaS軟件并追逐新技術。

另一類需求是傳統企業,他們的IT架構主要停留在虛擬化紀元,多采用VMWare的產品。我們稱這類需求為傳統的企業虛擬化需求(enterprise virtualization)。云計算的三層結構中,面對終端用戶的是SaaS,而IaaS、PaaS都是為之服務的。三者關系存在一種上層應用決定下層架構,下層架構又反過來制約或促進上層應用的關系。傳統企業的特點在于他們仍然運行著大量傳統應用,這些應用很多都是上個世紀的產品,它們并非為云環境所設計,簡單的把它們搬遷到公有云模式中會導致很多技術上的困難。

在公有云模式中有兩個重要的特點:一個是資源池化,一個是應用程序需要能容忍基礎架構的失敗。

資源池化是公有云去差異化的一個重要設計,它主張租戶共享資源池,資源獲取的過程不可定制。但傳統應用在很多場合是需要能夠進行差異化定制的。例如對于IO密集的傳統應用,用戶可能期望虛擬機的根磁盤(裝有操作系統的磁盤)放在NFS上,數據磁盤通過專門的存儲網絡放在高速的IP SAN上面。這就要求對創建虛擬機的過程可以定制,用戶可以選擇不同的磁盤分配策略和不同的網絡。又比如Citrix的遠程桌面XenDesktop,它需要多租戶即獨享私有網絡又共享扁平網絡的拓撲,這就要求類似于Amazon VPC + Classic EC2的網絡模型。當企業業務由眾多傳統應用構成時,這種差異性的定制需求會進一步加強。公有云提供商也認識到了這種需求,并在有限范圍內修改以滿足客戶。例如Amazon VPC發布最初是不支持靜態IP(static IP)的,后來在用戶的強烈要求下才加入,但它的Classic EC2是不可能在多租戶環境下支持這種功能的。去差異化是公有云的成功法寶,它無法也不會為了迎合傳統程序而實現各種定制功能。

在公有云中運行良好的應用都是能夠在應用層面容忍一定程度的基礎架構失敗(比如虛擬機崩潰,網絡失聯等)的。公有云廠商一直在反復向客戶強調基礎架構是會失效的,也提供多種手段幫助用戶設計failover的應用,而這恰恰是傳統應用的死穴,因為它們很多是單機應用,對下層架構的穩定性要求很高。所以大量傳統企業因為穩定性而仍然依賴IOE(IBM、Oracle、EMC)的架構。企業客戶在選擇IaaS產品時,往往要求IaaS能夠在架構層面提供容錯手段,比如虛擬機級別的高可靠、網絡層面的高可靠和冗余。這種由傳統應用帶來的需求不是云友好(cloud-friendly)和云感知(cloud-aware)的,公有云模式是不會對他們做出過多考慮的。

這也是為什么對于服務提供商來說,私有云可以很容易照搬公有云模式,但在面對傳統企業客戶的需求時,簡單復制公有云模式是不夠的——因為我們面對的是一個強大的、不可更改的傳統應用生態。

參考文章

《Why OpenStack is different from other open source projects》

《Keep OpenStack Weird》

《Why vendors can’t sell OpenStack to enterprises》

作者簡介

張鑫,2006年加入Intel上海開源技術中心(OTC),從事開源虛擬機項目XEN的開發,為社區共享了多個功能,例如XEN中E100網卡模擬器,XEN/IA64虛擬BIOS對Windows的支持等。同時也共享了大量bug修復的補丁。2010年赴硅谷加入Cloud.com(后被Citrix收購),從事CloudStack的開發工作,其間多次作為CloudStack代表參與客戶私有云項目的設計和部署。在從Citrix退出后,和搭檔一起創立ZStack。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文系InfoQ中文站向ZStack項目創始人張鑫的約稿。2015年4月正式對外開源的ZStack項目宣稱要解決在...
    蝎子看互聯網閱讀 656評論 0 50
  • 中國各行業現已告別了過去粗放式增長的模式, 都轉向靠技術提升效率的方式,這對于IT服務產生了巨大需求,中國云計算和...
    方弟閱讀 5,217評論 1 20
  • 作者簡介:劉超,網易云計算解決方案首席架構師。10年云計算領域研發及架構經驗,Open DC/OS貢獻者。長期專注...
    43ce3d72fadb閱讀 1,147評論 1 17
  • 本文遵循「知識共享許可協議 CC-BY-NC-SA 4.0 International」,未經作者書面許可,不允許...
    laiwei閱讀 11,862評論 1 24
  • 帽兒山水勝天宮,似云似霧似清風。 我以我心化蜜語,戀花戀月戀婉冬。 備注:2016年五月中旬,游哈爾濱周邊帽兒山,...
    揮斥紡遒閱讀 279評論 0 6