新聞中心
我跟OpenStack 1-8年,從ABC到HI、到KO
作者:張文劍 2018-09-27 15:12:59
云計算
OpenStack 經(jīng)過八年的磨礪,OpenStack已經(jīng)從炙手可熱、從者如云到了大隱隱于市的階段?;竟δ艿娜找娉墒欤瑵u趨穩(wěn)定,版本差異化變小,必然會讓它淡出視野。凡事成為過往,就會有許多責之深、愛之切的聲音不斷發(fā)出。

我跟OpenStack從ABC、HI到KO
2010年底,因電信級支撐平臺和業(yè)務對虛擬化的需要,我在ZTE開始了從嵌入式linux向云計算的轉(zhuǎn)型。
當時的OpenStack版本還處于A、B、C階段,與端莊有型的CloudStack,簡潔明快的OpenNebula,高端大氣的Eucalyptus相比,可以合稱IaaS初生年代的四小龍。其中的Eucalyptus在學術圈被高談闊論,中國移動的大云用上了OpenNebula,CloudStack被Citrix給收了,OpenStack卻還在蹣跚學步。轉(zhuǎn)眼八年過去了, 如今的那三位或淡出江湖,或銷聲匿跡,只有OpenStack獨霸高處,至少在開源界是四顧無人敵,所以一時難免心生唏噓。
由于當年這四個開源IaaS項目的前景未明,難分上下,所以我們都嘗試做了編譯部署和源碼級預研,代碼看得最多的是OpenNebula,一是因其簡單易懂的輕量級架構,二是因其采用C++實現(xiàn),對于嵌入式C開發(fā)出身的團隊比較容易上手,畢竟那些年Python還沒火起來。最后集眾家之所長,我們從零起步開發(fā)了一個電信級的虛擬化管理平臺TECS,底層先是采用了Xen,后來才支持了KVM,發(fā)布之后就用在了ZTE的GoTa系統(tǒng)、核心網(wǎng)等通信業(yè)務場景中。
TECS平臺的通用支撐層中就有基于Qpid的AMQP消息隊列,利用了OpenNebula的方案,并進一步改造成了支持多線程、多進程、多節(jié)點、層次更豐富的通信模式,并利用該機制實現(xiàn)了一個有向無環(huán)圖的操作事務系統(tǒng),支持異常事務的多個并行化步驟的集體操作回滾。當然作為支撐層,除了通信,還有Shell、定時器、序列化、數(shù)據(jù)庫、異常處理等通用組件,記得當時光是針對這個支撐層的設計方案文檔就寫了100多頁。
到了2013年,OpenStack相繼發(fā)布了Havana、IceHouse版本,仿佛暗示著該從入門ABC到了說Hi的時候了。由于電信運營商重視NFV,需要一個開放的虛擬化平臺提供支撐,演化出一個更廣闊的技術生態(tài)鏈。所以當時的團隊只能忍痛放棄了自己打造了三年的虛擬化平臺,轉(zhuǎn)向了維護OpenStack的I版本。起初總歸是有些心理排斥感,看到OpenStack的什么功能都是自己曾經(jīng)玩過的,而且它對細節(jié)穩(wěn)定性的要求跟電信級平臺沒法比。但是隨著業(yè)務新功能的二次開發(fā),對OpenStack的統(tǒng)一服務網(wǎng)關入口,高度靈活的實現(xiàn)層動態(tài)插件化機制,單線程多協(xié)程的服務框架,頗具微服務形態(tài)的擴展思路,以及Python語言的快速實現(xiàn)嘆為觀止,感覺它是在用一種高屋建瓴、大開大合的理念,如同玩樂高積木一樣把無數(shù)既有的開源項目機動性地拼裝成一個達到商用級要求的龐大平臺,經(jīng)過兩年的研發(fā)與維護投入,從中汲取到了豐富的架構設計經(jīng)驗。
再后來,和OpenStack的緣分繼續(xù)延伸到了如今的云桌面領域。從初創(chuàng)時的Kilo,到2.0版本的Ocata,OpenStack已經(jīng)把其它的開源IaaS項目給徹底KO了,自身也到了守江山穩(wěn)社稷的階段。OpenStack代碼中最核心的五大件,keystone、nova、glance、cinder、neutron,已經(jīng)牢固成型,不同版本之間主要是在實現(xiàn)層進行細節(jié)微調(diào),可用性早已不是問題了。很多云平臺的實際使用者也已經(jīng)很少去關注這些代碼級變化,更加關注的是自身的應用場景。
相對甘守寂寞的Linux內(nèi)核圈,作為上層管理平臺級開源項目的OpenStack,操作流程性的代碼讓新人上手的速度很快,又趕上了如日中天的云計算技術高速發(fā)展期,很容易讓開發(fā)者們浮想聯(lián)翩,集體爆發(fā),所以核心組件剛站穩(wěn)腳跟,從sahara,heat開始的各種大帳篷項目便層出不窮,整體架構上的技術杠桿伸得有點長了。其實這種統(tǒng)一的基礎平臺性的東西,不像微信小程序、手機APP那樣的互聯(lián)網(wǎng)應用,它更需要豐富的現(xiàn)實運維經(jīng)驗加上對底層實現(xiàn)機制的精通,匆忙趕制出來的項目,其穩(wěn)定性與生產(chǎn)環(huán)境的可用性值得商榷。當然,這樣的形勢并不能否認其開源性質(zhì)的優(yōu)勢,既然是做一個普適性的大平臺,就意味著要兼收并蓄,有容乃大。它能讓無數(shù)的組件、插件、技術點來來往往,應時順勢,甚至自生自滅,但是那個核心的框架一直存在,就像帕特農(nóng)神廟一樣永遠矗立著,本身就是很了不起的事。就像波普爾在《開放社會及其敵人》里面說的那樣,好的社會是開放的,開放社會就意味著會有形形色色相互矛盾的觀念。正是這種相互矛盾,讓社會具有多種選擇,多種可能,越變越好。相反,封閉的社會,是一元的、單純的,但因為這種社會失去了矛盾的對峙,失去選擇,就會一錯到底,走向倒退。
在桌面上談談OpenStack
再來說說云桌面和OpenStack的事。OpenStack本身是個管理平臺,給用戶帶來實際價值的是對其場景化的利用,畢竟搭臺的不如唱戲的搶眼,云桌面就是在云平臺上唱遍大街小巷的一出好戲。電腦桌面這個整日里相看兩不厭的應用,無論是廟堂之高,江湖之遠,各行各業(yè)都離不開,場景化千差萬別。距離人那么近的應用,便攜性、易用性,安全性、體驗感都是繞不過去的話題,在IaaS日漸推廣的今天,桌面上云也成了當仁不讓的選擇。
但是談IaaS的場合卻似乎少提桌面云,因為桌面虛擬化是先于云計算出現(xiàn)的,在OpenStack之前,已經(jīng)有形形色色的桌面虛擬化管理系統(tǒng)了,直到現(xiàn)在也是只見多不見少,因為自己開發(fā)一個幾臺電腦的管理系統(tǒng)并不是什么復雜的事,所以云桌面的名字里面也帶個云字,但是和IaaS常常是花開兩朵各表一枝。其實自己開發(fā)的小型化虛擬機管理系統(tǒng)在幾根螺絲就能擰死了的小場合,小規(guī)模的用一下可以,一旦大規(guī)模地鋪開建設,除了桌面體驗,整個管理平臺的高可用性、靈活性,熱遷移、存儲備份、二次開發(fā)便捉襟見肘起來,就像自留地種的小菜一樣,雖然口味有機些,但是要常規(guī)批量供應大客戶就緊缺了。
云桌面的管理平臺可以只用到OpenStack中的keystone、nova、glance、cinder、neutron這最成熟的五大件,背靠大樹好乘涼。而且目前的桌面操作系統(tǒng)還沒法跑在容器里,對K8S之類的容器平臺也不感冒。我們目前對OpenStack這個平臺已經(jīng)不用投入太多精力去開發(fā),它在桌面虛擬化應用場景的穩(wěn)定成熟度已經(jīng)能讓維護人員無需整天提心吊膽了。
更進一步考慮,VDI桌面核心內(nèi)容是虛擬化,完全可以不依賴于平臺管理層,比如我們目前的云桌面平臺3.0版已經(jīng)做到能夠以虛擬機鏡像,容器鏡像的形式安裝到任意一個現(xiàn)成的IaaS平臺、超融合環(huán)境中去,成為真正的DaaS,從而讓私有云廠家無須重復開發(fā),私有云用戶無須重復建設。堅持使用OpenStack云平臺來運行我們的桌面系統(tǒng),就是看中它有一個開放的標準化的接口體系,能夠為我們的桌面應用提供更多的管理功能入口,從云平臺這一層來講,我們的云桌面是把OpenStack這個開源項目做到了最恰如其分的場景化利用。
經(jīng)過八年的磨礪,OpenStack已經(jīng)從炙手可熱、從者如云到了大隱隱于市的階段?;竟δ艿娜找娉墒?,漸趨穩(wěn)定,版本差異化變小,必然會讓它淡出視野。凡事成為過往,就會有許多責之深、愛之切的聲音不斷發(fā)出。不如讓它踏踏實實做好自己的平臺角色,在一個個項目、產(chǎn)品領域發(fā)揮臺柱的功力,將會是對這么多年積累下來的開源技術價值最好的印證。
作者介紹:
張文劍,南京機敏科技首席架構師,主攻OpenStack VDI,參與編寫中國開源云聯(lián)盟桌面云標準,主持機敏云平臺1.0、2.0版本的研發(fā)。
本文名稱:我跟OpenStack1-8年,從ABC到HI、到KO
網(wǎng)站地址:http://m.fisionsoft.com.cn/article/djdosgh.html


咨詢
建站咨詢
