zstack vs openstack 你怎麼看?

我了解 openstack,說實話,自己並不看好openstack; 最近也看了下zstack,感覺耳目一新。

不知大家怎麼看,主要從技術架構,穩定性,易用性,和可維護性方面


我看完「lei mei」前面對OpenStack架構、部署、使用的描述,我認為這回復是水文廣告。為什麼這麼說,三點佐證:

1、OpenStack的架構,如果樓主認為它是眼花撩亂,那說明樓主完全沒理解它的實現精髓。那麼多交互都是圍繞著auth、rpc,這是關鍵點,因為它通過rpc松耦合,好處無須贅述吧。

2、OpenStack的部署,官網的指導文檔,那確實要好好研究,如果不理解「很多」配置參數具體含義就想按照指導文檔直接安裝,失敗個幾次是正常的,這是OS社區的痛,因為OS版本更新快,文檔的更新始終滯後。

3、OpenStack的使用,樓主提到RDO擴容會遇到package會遇到latest問題,樓主確認操作系統用了正確的openstack*release包嗎?樓主確認操作系統的版本和環境一致?


一句話:高度產品化的開源雲平台,質量品質有保證。

作為甲方而言,這個非常重要;同時開源,定製自由,易用性和穩定性比OpenStack的nova+neutron強多了啊。

現在生態圈還在建立中,但表示看好。

之前並不了解zstack太多,之後發現比OpenStack更貼近業務需求,是一個非常有潛力的雲平台。

說zs蹭阿里雲的人明顯酸葡萄而且不看歷史啊。

何況現在OpenStack已經淪為廠商用來刷貢獻的平台了,真的不如當初單純,大家都覺得自己做的是雲,我虛擬化的、你容器的、他資料庫的,OpenStack啥都有,穩定性越來越差,但個人仍覺得其參考意義遠大於實用意義,出了問題廠商技術也兜不住底,能有多少人夠看?

有一次跟一個做傳統存儲開發的人聊天,他覺得看OpenStack代碼就覺得寫這代碼的人非常浮躁,急功近利。

還有一次印象深刻,Mirantis老大直接開罵OpenStack現在生態圈,「fxxking as a service」。我也表示十分贊同,被廠商搞壞了,其實那成熟度和穩定度還是在老三件上,neutron也在探路中。


很驚喜一下百度到了這個vs帖,很有看點。但是感覺幾位立場都有些偏頗。無論純技術探討,還是用進入市場的先後,這都不是最好的評價標準。

為什麼不用實際的客戶應用來證明自己呢?看看客戶都踩過哪些坑?看看到底哪個技術更受到客戶的追捧?

市場的選擇才是最客觀的證明!期待來自客戶的證明哈


本人自2014年開始接觸OpenStack,一年多的時間,經歷了OpenStack的部署運維和開發相關工作,算是一個OpenStack的初學者吧,這一年多和OpenStack打交道的經歷,想總結一下自己的心得體會。

架構:

作為一個初學者不敢妄談架構,但是初次看完OpenStack的架構圖,我相信很多初學者都和我一樣,一頭霧水,因為整個架構圖給人很混亂的感覺,不同的組件之間,以及組件內部,都是虛虛實實的調用關係圖,讓初學者沒法對整個系統形成一個很清晰的概念。而且從架構上看,各個組件之間都存在依賴關係,讓初學者對這些組件的關係也異常頭大。

部署:

再談談部署,了解OpenStack當然是通過官網作為入口,在官網按圖索驥,很快找到了安裝教程,但是很讓人崩潰的是,所有的組件都是分開安裝的,需要一行命令一行命令來一個組件一個組件安裝,整個安裝過程讓人非常頭大,由於各種依賴的版本兼容性問題,被一個個ERROR弄的遍體鱗傷,好不容易花了幾天時間全部裝完了,期待dashboard能正常訪問,卻最終失敗了。

困難不能阻止我繼續長征,在社區里各種查詢,發現已經有一些官網之外的項目來支持OpenStack的部署,比較了一下,選擇了RDO來作為自動化部署工具,選擇它的理由也很簡單,RDO是Redhat贊助的社區項目,而我選擇的操作系統CentOS,也是和Redhat關係緊密的系統,因此,RDO天然對CentOS有很好的支持。用了RDO感覺就好多了,選擇all-in-one的安裝模式,對answer file細細研讀一遍,把對應的配置寫好,就開始安裝,安裝的過程中也遇到一些問題,不過google一下基本上很快也能解決,總之,和官網的安裝手冊比起來,很快就setup好了,到這裡,終於可以開始體驗OpenStack了。

使用:

對OpenStack熟悉過後,就開始在公司內部上線OpenStack讓同事試用,eating your own dog food嘛。RDO這時候還是暴露了一些設計和使用上的小問題,比如說,增加計算節點的時候默認有些package是用latest的,這樣的話,會和已經部署在控制節點上的package出現一些不兼容的問題;還比如說,nova用戶沒有相互做互信,這樣會導致resize出現沒有許可權的問題。

不過這些都不重要,通過安裝後期的干預也能解決,比較大的一個問題是OpenStack運營過程中出現的各種不穩定,隨便舉幾個例子來說,有些service會運行時間長了以後,會出現down掉的情況,但是通過openstack-status show出來的狀態卻是正常的,這就給平台的監控造成一定干擾,比方說,明明監控沒有告警,但是nova的api service不知道什麼時候就不work了,只有用戶自己去創建雲主機,才會發現這個問題;再比如說,當創建雲主機的時候,有時候就會出現失敗的情況,同樣的操作再做一遍,又OK了。還比如說,ceilometer的監控,很難真正能看清每一個雲主機,或者每一個租戶的監控數據,尤其是監控周期比較長以後,從mongodb獲取數據的時間也會異常漫長。還有一些網路方面的問題,比方說,流量限制的問題,一般數據中心給運營方的外網帶寬是固定的,因此,外網帶寬是稀缺資源。為了限制租戶的對外訪問帶寬,默認只能通過flavor的方式限制網卡速度,但是這樣同樣會限制這台雲主機對租戶內部網路的其他雲主機的訪問速度。這個問題在L版里Neutron通過支持ml2-qos已經可以解決了,但這又涉及到另外一個問題,OpenStack的升級。

升級:

上面說的問題花點時間都能解決,畢竟OpenStack是一個社區開發的東東,不是商業化的產品,不能保證完美,我們的工作價值就是在社區版本的基礎上做二次開發來解決問題,或者通過各種手段來盡量保證系統的穩定性。但是有一個問題卻是讓人望而卻步,就是上文提到的,OpenStack的升級。我們基於的版本是I版本的開發,社區每半年發布一個版本,但是卻不提供如何升級的方法。起初,我們嘗試了一次升級,發現升級完成後dashboard都打不開了,只能放棄,把I版本上的patch拿出來,再merge到J版本上。但是隨著半年一個版本的進度,這也意味著team將在版本管理和系統升級上做出大量的工作。尤其是線上系統,無縫升級難度太高,雖然也有一些廠商(例如Mirantis)給出了一些無縫升級的方案,但是整個操作過程仍然很繁雜,一旦整個升級過程出現問題,對線上系統來說就是巨大的災難。

以上就是我接觸OpenStack一年多時間的一些感觸,也許有些問題自己的認識還不到位,但是在運營開發OpenStack的過程中,遇到太多太多的坑,我一直以為雲平台這樣一個系統不可避免會出現這些問題,直到我看到了它:ZStack。

記得第一次看到創始人發布的blog時,第一感覺應該又是基於OpenStack做二次開發的產品吧,國內現在的雲計算市場大多如此,尤其是看到創始人還是國人名字的時候,更加堅定了自己的想法,沒想到仔細瀏覽完ZStack的主頁,發現這竟然是完全一個全新的雲計算平台,不論從架構還是實現機制上,都有很多超越OpenStack的地方,雖然初始版本沒有OpenStack所支持的那麼多功能(畢竟OpenStack社區幾千人在開發呢),但是對雲平台的痛點問題都在主頁上一一分析和詳細說明如何從架構上解決,讓我立刻就對它產生了興趣,下載試用了一段時間之後,也簡單說說自己的感受:

社區更接地氣

主頁上有詳細的社區介紹,尤其包括qq群和微信群,這很符合國人的特點,有啥問題就到群里問問,雖然沒有mail list那麼專業化,但是在群里確實能更加快速的得到群友的幫助,解決問題。創始人也一直在群里和大家互動,也能更快的掌握用戶的真實需求。

架構:

再談談架構,對比OpenStack的架構,ZStack的架構可以說是做到了簡潔明了,一圖勝千言:

從圖裡可以看到,服務之間的交互統一走消息隊列,整個拓撲結構不再緊密,實現星狀的架構,各服務之間只有消息的交互,服務之間基本獨立,添加或者刪除某個服務不會影響整個架構(只會失去某些功能)。

部署:

說完對架構的感覺,再談談部署過程的感覺,那就一個字:快!從打開安裝教程,到完全裝好,只跑了兩個命令,等了大約二十分鐘,居然就:部!署!好!了!和OpenStack的部署過程比起來,讓人有一種幸福的想哭的感覺。

使用:

整個使用過程體驗也非常好,從創建Zone,Cluster,添加主機Host,到添加存儲,再創建網路,最後啟動雲主機,整個過程也是行雲流水,一路順暢,很快就啟動了一個雲主機,再一次讓人感慨原來雲平台也能把用戶體驗做的這麼好。

當然,我還沒有機會在比較大的規模下使用這套平台,但是在社區里看到已經有公司在使用這套系統,反饋也比較好。根據這個項目主頁上的架構設計,整個微服務體系都是進程內的,效率更高,也更加穩定,保證了IaaS平台的穩定性。另外,針對OpenStack網路上遇到的問題,ZStack直接是通過Virtual Router來實現整個雲平台網路功能的,這樣,對流量的控制將會更加集中和方便。同時也說一下監控,根據我在網路上搜索的結果(http://www.iqiyi.com/w_19rtb01ilx.html#vfrm=2-3-0-1) ZStack將會在商業版本里集成雲主機的監控功能,這將大大減少企業開發團隊的工作量,如果這樣一個產品早點出現,也許我們team就能把更多的精力投放到如何把IaaS平台和企業業務層面結合的更好,而不是每天為了雲平台的一些基礎功能焦頭爛額的。

升級:

無縫升級之所以在OpenStack上很難完成,是因為架構從一開始設計的時候就沒有考慮到這一點,但是ZStack作為一個全新的雲平台,從架構上就為升級做好了準備,在ZStack發布新版本的時候,我嘗試了一下升級,和部署一樣,簡單的兩個命令,就升級好了,升級的過程對用戶是完全透明的。這點我覺得可以秒殺OpenStack。

測試系統:

這點不得不提,ZStack的聯合創始人提出的這一套基於模型的智能測試框架也是ZStack的一大亮點,簡單來說,就是通過模擬用戶的隨機行為,來測試整個雲平台,有些corner case靠測試人員是很難去測試到的,但是通過這個框架模擬出來的用戶行為,就能夠去cover到。這種高大上的測試方法一兩句話也說不清楚,感興趣的筒子們可以去這個鏈接仔細研讀:ZStack - 如果軟體測試是門藝術,軟體測試工程師就是藝術家 -- 淺析ZStack是如何做智能軟體測試

優點說了這麼多,也談談ZStack還有待改進的地方:

首先,ZStack是用Java寫的,這給線上系統的調試造成了不便,沒有OpenStack那麼方便,這就需要整個項目的代碼質量經過嚴格測試,否則,一旦bug產生,對線上系統將會產生很大的影響。好在ZStack提供了嚴格的測試系統和快速的升級方案,即使真的發現線上系統有bug,立刻修復bug並發布一個新的版本更新到線上也能解決問題。

然後是開源版本的ZStack,用戶界面相對來說粗糙了一些,相比於現在一些公有雲廠商,例如青雲這些,可以有更多的改進空間,因為任何一款好產品,產品本身功能好是一方面,顏值也很重要。現在基於OpenStack做二次開發的廠商,第一件事一般都是定製自己的UI來替換掉OpenStack默認的UI。

另外,計費組件也是現在OpenStack二次開發裡面不得不做的一個組件,如果ZStack能夠在未來的開發計劃里加入計費組件,將會大大減少廠商的開發工作。或者ZStack能夠有一個開發者手冊把計費組件需要的API暴露給開發者,相信也會受到開發者的熱烈歡迎。

還有一點,ZStack作為一個開源社區,是否能將未來的開發計劃發布在wiki上,並由用戶來投票選擇feature的任務優先順序?我想這樣能夠看到用戶最迫切的需求,直擊用戶痛點。

最後一點,使用OpenStack時候的系統告警通常是通過第三方插件來做的,比如通過nagios發告警郵件,發簡訊提醒,不知道ZStack未來會不會集成某些插件,讓用戶更輕鬆的監控整個系統和雲主機的狀態?因為監控也是雲平台的剛需之一。

總之,我對ZStack抱有很大的期待,我相信它是IaaS領域的一個更好的選擇,尤其是對企業來說。這樣說的原因一方面是源於我使用OpenStack過程中遇到的一些坑,另外一方面也是對ZStack創始人張鑫的經歷有一定的了解,他之前也是Cloudstack的架構師,Cloudstack曾經輝煌過,但是最終沒有像今天的OpenStack一樣紅火。ZStack在汲取前輩經驗教訓的基礎上,一定能夠避免曾經遇到的那些問題,同樣,一套全新的設計,也能夠避免OpenStack目前遇到的問題。


拿「星型」的中間件通信架構來吹牛,不知是無知還是刻意?這讓雲計算分散式、微服務、去中心化這些現代架構情何以堪。一個小清新的虛擬化軟體,非要和雲計算、分散式系統對標,會害慘真正要上雲計算數據中心的客戶。

這是最經典的微服務架構圖(普適的)。結合OpenStack和ZStack架構對比好好體會一下,你會了解OpenStack核心設計理念。


客觀來說,OpenStack的體系龐大,有些臃腫,作為甲方,必須選擇深做企業級平台的廠商,並且要有大規模(500+)部署經驗的廠商方才可以放心選擇,因為踩過的坑多啊。。。。整個OpenStack的體系,在國內實際案例應該不少吧。

Zstack嘛,只研究過他的社區「開源版」,目前只能說不成氣候,所謂社區版,其實就是個demo啊!!!你的功能不開放是為啥子嘛!難不成就想讓買授權版?開源不成氣候的時候,難堪大用。希望幾年之後能做大做強吧,現階段,還是不要以小博大的好……


現在是2018年1月,關於zstack我說幾點:

  1. 安裝操作系統時必須使用zstack的ISO安裝。(一般企業接受不了吧?)
  2. zstack只能說是免費,談不上開源,是個黑盒子。
  3. 上個月安裝了2.2的版本,社區版和企業版都是一樣的,使用授權激活就變成企業版,但在未激活的狀態,各種高級選項全部是刪除線標灰的,真是醉了,到處都是刪除線。(隱藏起來也好呀,就為了吸引用戶充錢變企業版?)

zstack剛出來的時候對它期待還是比較高的,總算openstack之外有其他的選擇了,openstack那一大坨確實讓人受不了,現在來看,zstack社區版本已經完全變成了企業版產品demo,真心沒法用啊。

某企業運維人員,不是為了黑誰,openstack也沒好到那裡去,但zstack社區版本現在都拿不出手來,你敢給領導演示滿屏都是灰色點不了的系統?


總是打著阿里的旗號蹭熱點,上與openstack竟爭不上,下與vmware竟爭不上,自己打出新口號可是市場真的認嗎?答案是不---認,企業級市場應該紮實做技術,下苦功夫做好底層操作系統,zstack有什麼靚點?這些openstack廠商做不了嗎?都能做,沒有什麼靚點,沒有什麼壁壘,就不要天天在外面呼悠


技術先不表。openstack那麼多人那麼多年的維護,是成功的案例。zstack靠著幾個人的創業2年的時間想要重頭開始做全新的,門都沒有。別說openstack亂,但凡zstack到了這個級別這個功能性,zstack哪怕能比openstack強出來一點點,也算是創業成功了


推薦閱讀:

是自學openstack開發運維,還是到雲計算iaas公司做運維?
有沒有可以推薦的免費vps或雲主機推薦?
Evernote和Google在信息檢索和知識管理上有什麼終極區別?
政務雲是一種怎樣的雲服務?未來發展前景如何?
如何防範雲服務商的上帝之手?

TAG:雲計算 | 虛擬化 | OpenStack |