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

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

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

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

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

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

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

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

1、簡(jiǎn)單性

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

2、穩(wěn)定性

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

3、可擴(kuò)展性

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

4、靈活性

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

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

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

1、簡(jiǎn)單(Simple)

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

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

其次,通過ansible軟件,實(shí)現(xiàn)云平臺(tái)部署的全自動(dòng)。

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

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

2、健壯(Strong)

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

3、彈性(Scalable)

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

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

4、智能(Smart)

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

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

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

三、如何成為ZStack的commiter?

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

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

ZStack社區(qū)地址:

ZStack源代碼托管地址:

結(jié)語

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

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