首屆開源軟件供應鏈峰會,ZStack私有云架構設計原理分享!

                • 2020-11-19 13:10
                • 極客網
                  
                1.jpg

                 

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

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

                  

                2.jpg

                 

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

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

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

                  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軟件,實現云平臺部署的全自動。

                  

                3.jpg

                 

                  綜上得到的效果就是,對運維人員來說,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云平臺的整體靈活性得到大幅提升,便于實現網絡存儲伸縮和無縫升級新版本的功能。

                  

                4.jpg

                 

                  三、如何成為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

                  結語

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

                頭條推薦
                圖文推薦
                亚洲人成网线在线播放午夜