首屆開源軟件供應(yīng)鏈峰會,ZStack私有云架構(gòu)設(shè)計原理分享!

首屆開源軟件供應(yīng)鏈峰會,ZStack私有云架構(gòu)設(shè)計原理分享!

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

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

首屆開源軟件供應(yīng)鏈峰會,ZStack私有云架構(gòu)設(shè)計原理分享!

我國國情決定了很多機構(gòu)上云轉(zhuǎn)型還需依賴于私有云的建設(shè),而且用戶群體非常多樣化,部署私有云面臨異構(gòu)環(huán)境、縮短上云周期與難度、保證云平臺高可用性等各種挑戰(zhàn)。只有提供產(chǎn)品化、標(biāo)準(zhǔn)化的私有云,才是滿足用戶兼容異構(gòu)、高效及高可用需求的優(yōu)選上云方案。

一、私有云面臨的挑戰(zhàn)有何不同?

從用戶側(cè)需求研究來看,用戶所需要的理想私有云方案,應(yīng)具備:簡單性、穩(wěn)定性、可擴展性、靈活性。

1、簡單性

私有云的架構(gòu)跟公有云是不一樣的,它更像一個generic solution,根據(jù)客戶的通用需求,提取出它最重要的部分,做成的一個軟件,然后通過產(chǎn)品化普及落地。然而大部分國內(nèi)的軟件,經(jīng)常會做成面向客戶定制,或者項目開發(fā)的東西,而ZStack希望做成一個非常generic/標(biāo)準(zhǔn)化,能夠像賣光盤一樣,用戶上來直接就能下載安裝使用的、可縮短上云周期的一個標(biāo)準(zhǔn)化產(chǎn)品。

2、穩(wěn)定性

穩(wěn)定性對于保障企業(yè)的業(yè)務(wù)持續(xù)性、尤其關(guān)乎國計民生的場景中非常重要。比如ZStack的客戶中有的是省界高速收費站系統(tǒng),還有一些大型、重型制造業(yè)的供應(yīng)鏈管理系統(tǒng),這些對時間的要求非常嚴(yán)格,這些軟件一旦發(fā)生crash,無法保證它的可用性的時候,會帶來巨大的損失。

3、可擴展性

某些需要并發(fā)快速創(chuàng)建出成百上千虛擬機的場景中,比如很多教育行業(yè)的用戶,實驗室里可能有幾百個學(xué)生,要統(tǒng)一打開一個環(huán)境,然后幾十上百個虛擬機要同時快速啟動......類似這種場景,就反映在云的Scalability(彈性)的難度上。

4、靈活性

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

二、私有云開源架構(gòu)的技術(shù)秘籍

針對以上挑戰(zhàn),ZStack從用戶實際需求出發(fā),深度調(diào)研了當(dāng)前主要開源架構(gòu)的優(yōu)缺點,研發(fā)了具有4S特性的私有云開源架構(gòu):

1、簡單(Simple)

ZStack研發(fā)了In-prosessive Microservice Architechture(進程內(nèi)微服務(wù))。具體原理為:

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

其次,通過ansible軟件,實現(xiàn)云平臺部署的全自動。

首屆開源軟件供應(yīng)鏈峰會,ZStack私有云架構(gòu)設(shè)計原理分享!

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

2、健壯(Strong)

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

3、彈性(Scalable)

解決可擴展性的核心方法,ZStack主要依靠全異步架構(gòu),即在做架構(gòu)設(shè)計時,為操作系統(tǒng)提供一些異步的接口;異步方法設(shè)置完成后,只需一個很小的線程,就可以支持?jǐn)?shù)以萬計的API并發(fā)量。

另一方面,采用一致性哈希環(huán)(Consistent Hash Ring),將任意一個資源處理到正確節(jié)點,避免對資源做加全局鎖。在ZStack架構(gòu)里,可以通過一個內(nèi)存隊列來控制并發(fā)級別(Synce level),得到更好的并發(fā)性能。

4、智能(Smart)

ZStack主要通過Plugins和Driver來分離接口和實現(xiàn)。具體來說,通過strategy-Pattem Plugins結(jié)構(gòu),將不同的底層對應(yīng)到同一個接口,再對外提供服務(wù)。

此外,還引入ZStack System Tag Architecture,將MySQL數(shù)據(jù)庫當(dāng)作schema-less 的KV來使用,在其中自定義schema,然后再做解析,以便升級操作。通過這兩種方式,ZStack云平臺的整體靈活性得到大幅提升,便于實現(xiàn)網(wǎng)絡(luò)存儲伸縮和無縫升級新版本的功能。

首屆開源軟件供應(yīng)鏈峰會,ZStack私有云架構(gòu)設(shè)計原理分享!

三、如何成為ZStack的commiter?

以上就是ZStack的架構(gòu)設(shè)計的簡要分享,自2015年開源至今,ZStack在Github中的Star數(shù)量一直保持穩(wěn)步增長;ZStack所發(fā)起并運維的開源社區(qū)zstack.io也聚集了上萬名開發(fā)者;ZStack所聚焦的云計算基礎(chǔ)IaaS層產(chǎn)品,已經(jīng)成為了很多公司進行二次開發(fā)的底座。

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

ZStack社區(qū)地址:

ZStack源代碼托管地址:

結(jié)語

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

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )