首屆開源軟件供應鏈峯會,ZStack老王技術論道劍指私有云!

十里秦淮烏衣巷,紫金山中梧桐道;

六朝古都金陵城,湯包元宵鹽水鴨。

就在“天下文樞”、“東南第一學”之稱的南京城,舉辦了一場開源圈大佬雲集的技術論道!以下爲您正經播報:

11月14日至15日,開源軟件供應鏈2020峯會在南京成功舉辦。本次峯會由中國科學院軟件研究所、openEuler社區主辦,中國科學院軟件研究所南京軟件研究所承辦,來自全國各地的開源軟件從業者、企業技術專家、高校及科研機構代表、開源社區代表、學生等300餘人現場參會、2.3萬餘人同步線上參會。

會上重點探討開源技術前沿話題、開源生態建設與合作、開源發展趨勢等內容。在【虛擬化&雲原生】分論壇,ZStack核心架構師&性能工程負責人 王爲做了題爲《開源私有云ZStack的架構設計》的精彩分享,重點介紹了ZStack自研核心開源架構的技術原理和應用。

我國國情決定了很多機構上雲轉型還需依賴於私有云的建設,而且用戶羣體非常多樣化,部署私有云面臨異構環境、縮短上雲週期與難度、保證雲平臺高可用性等各種挑戰。只有提供產品化、標準化的私有云,纔是滿足用戶兼容異構、高效及高可用需求的優選上雲方案。

一、私有云面臨的挑戰有何不同?

從用戶側需求研究來看,用戶所需要的理想私有云方案,應具備:簡單性、穩定性、可擴展性、靈活性。

1、簡單性

私有云的架構跟公有云是不一樣的,它更像一個generic solution,根據客戶的通用需求,提取出它最重要的部分,做成的一個軟件,然後通過產品化普及落地。然而大部分國內的軟件,經常會做成面向客戶定製,或者項目開發的東西,而ZStack希望做成一個非常generic/標準化,能夠像賣光盤一樣,用戶上來直接就能下載安裝使用的、可縮短上雲週期的一個標準化產品。

2、穩定性

穩定性對於保障企業的業務持續性、尤其關乎國計民生的場景中非常重要。比如ZStack的客戶中有的是省界高速收費站系統,還有一些大型、重型製造業的供應鏈管理系統,這些對時間的要求非常嚴格,這些軟件一旦發生crash,無法保證它的可用性的時候,會帶來巨大的損失。

3、可擴展性

某些需要併發快速創建出成百上千虛擬機的場景中,比如很多教育行業的用戶,實驗室裏可能有幾百個學生,要統一打開一個環境,然後幾十上百個虛擬機要同時快速啓動......類似這種場景,就反映在雲的Scalability(彈性)的難度上。

4、’靈活性

不同客戶的需求也不一樣,它們之間可能是相互矛盾的。舉個例子,比如一些分佈式系統,它可以支撐很大的規模,但它的應用性卻並沒有那麼好。而且靈活性和穩定性之間也有一定矛盾,當靈活性很強的時候,代碼可能會有各種各樣的組合,各種各樣的分支,很難保證測試在每個場景都能測下來,穩定性可能會打折扣。

二、私有云開源架構的技術祕籍

針對以上挑戰,ZStack從用戶實際需求出發,深度調研了當前主要開源架構的優缺點,研發了具有4S特性的私有云開源架構:

1、簡單(Simple)

ZStack研發了In-prosessive Microservice Architechture(進程內微服務)。具體原理爲:

首先,在ZStack開源代碼架構裏,將不同的模塊進行單獨封裝,通過一個in-memory的message bus 去實現內部消息的分發,以及一些公共消息的封裝;再將所有模塊單獨分成一個Java bean,通過message bus來進行內外部通信。

其次,通過ansible軟件,實現雲平臺部署的全自動。

 

綜上得到的效果就是,對運維人員來說,ZStack雲平臺的運行就是一個統一的進程,但從軟件架構上講,它又分了很多模塊,兼具簡單操作與強大性能;對於普通用戶來說,只需要下載一個ISO,就可以在30分鐘以內把ZStack雲平臺安裝部署起來,真正享受簡單易用的上雲體驗。

2、健壯(Strong)

針對穩定性,ZStack做了很多測試和Code base的穩定性工作,比如通過workflow來將代碼通過各種組合去實現新功能,而不是不斷修改原本的代碼。同時,ZStack支持雲主機與管理端的HA、支撐高併發的API請求、斷電後平臺自恢復等,確保系統高效和穩定運行。

3、彈性(Scalable)

解決可擴展性的核心方法,ZStack主要依靠全異步架構,即在做架構設計時,爲操作系統提供一些異步的接口;異步方法設置完成後,只需一個很小的線程,就可以支持數以萬計的API併發量。

另一方面,採用一致性哈希環(Consistent Hash Ring),將任意一個資源處理到正確節點,避免對資源做加全局鎖。在ZStack架構裏,可以通過一個內存隊列來控制併發級別(Synce level),得到更好的併發性能。

4、智能(Smart)

ZStack主要通過Plugins和Driver來分離接口和實現。具體來說,通過strategy-Pattem Plugins結構,將不同的底層對應到同一個接口,再對外提供服務。

此外,還引入ZStack System Tag Architecture,將MySQL數據庫當作schema-less 的KV來使用,在其中自定義schema,然後再做解析,以便升級操作。通過這兩種方式,ZStack雲平臺的整體靈活性得到大幅提升,便於實現網絡存儲伸縮和無縫升級新版本的功能。

 

三、如何成爲ZStack的commiter?

以上就是ZStack的架構設計的簡要分享,自2015年開源至今,ZStack在Github中的Star數量一直保持穩步增長;ZStack所發起並運維的開源社區zstack.io也聚集了上萬名開發者;ZStack所聚焦的雲計算基礎IaaS層產品,已經成爲了很多公司進行二次開發的底座。

大家如果有興趣的話,可以上ZStack社區,自己編譯和自己裝一下ZStack。ZStack的起步非常簡單,只需要有一臺6核或者8核的電腦或者虛擬機就可以部署。

ZStack社區地址:

https://www.zstack.io/help_support/community_support/

ZStack源代碼託管地址:

https://github.com/zstackio/zstack

https://gitee.com/zstackio/zstack

結語:

開源軟件彼此組合、依賴,連同各個爲開源做貢獻的維護者與開發者,所共同形成的包含上萬節點的開源軟件供應鏈,已經是當代社會中科技規模化協作發展的典範模式,也是激發軟件創新活力的有效手段。ZStack將不忘初心,與各位行業夥伴齊心協力,共同促進我國雲計算產業健康發展,提升我國雲計算行業全球的競爭力。

點擊,觀看大會分論壇2【虛擬化&雲原生】專場直播回放--ZStack老王精彩演講。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章