域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)
11月14日至15日,開(kāi)源軟件供應(yīng)鏈2020峰會(huì)在南京成功舉辦。本次峰會(huì)由中國(guó)科學(xué)院軟件研究所、openEuler社區(qū)主辦,中國(guó)科學(xué)院軟件研究所南京軟件研究所承辦,來(lái)自全國(guó)各地的開(kāi)源軟件從業(yè)者、企業(yè)技術(shù)專(zhuān)家、高校及科研機(jī)構(gòu)代表、開(kāi)源社區(qū)代表、學(xué)生等300余人現(xiàn)場(chǎng)參會(huì)、2.3萬(wàn)余人同步線上參會(huì)。
會(huì)上重點(diǎn)探討開(kāi)源技術(shù)前沿話題、開(kāi)源生態(tài)建設(shè)與合作、開(kāi)源發(fā)展趨勢(shì)等內(nèi)容。在【虛擬化&云原生】分論壇,ZStack核心架構(gòu)師&性能工程負(fù)責(zé)人 王為做了題為《開(kāi)源私有云ZStack的架構(gòu)設(shè)計(jì)》的精彩分享,重點(diǎn)介紹了ZStack自研核心開(kāi)源架構(gòu)的技術(shù)原理和應(yīng)用。
我國(guó)國(guó)情決定了很多機(jī)構(gòu)上云轉(zhuǎn)型還需依賴(lài)于私有云的建設(shè),而且用戶群體非常多樣化,部署私有云面臨異構(gòu)環(huán)境、縮短上云周期與難度、保證云平臺(tái)高可用性等各種挑戰(zhàn)。只有提供產(chǎn)品化、標(biāo)準(zhǔn)化的私有云,才是滿足用戶兼容異構(gòu)、高效及高可用需求的優(yōu)選上云方案。
一、私有云面臨的挑戰(zhàn)有何不同?
從用戶側(cè)需求研究來(lái)看,用戶所需要的理想私有云方案,應(yīng)具備:簡(jiǎn)單性、穩(wěn)定性、可擴(kuò)展性、靈活性。
1、簡(jiǎn)單性
私有云的架構(gòu)跟公有云是不一樣的,它更像一個(gè)generic solution,根據(jù)客戶的通用需求,提取出它最重要的部分,做成的一個(gè)軟件,然后通過(guò)產(chǎn)品化普及落地。然而大部分國(guó)內(nèi)的軟件,經(jīng)常會(huì)做成面向客戶定制,或者項(xiàng)目開(kāi)發(fā)的東西,而ZStack希望做成一個(gè)非常generic/標(biāo)準(zhǔn)化,能夠像賣(mài)光盤(pán)一樣,用戶上來(lái)直接就能下載安裝使用的、可縮短上云周期的一個(gè)標(biāo)準(zhǔn)化產(chǎn)品。
2、穩(wěn)定性
穩(wěn)定性對(duì)于保障企業(yè)的業(yè)務(wù)持續(xù)性、尤其關(guān)乎國(guó)計(jì)民生的場(chǎng)景中非常重要。比如ZStack的客戶中有的是省界高速收費(fèi)站系統(tǒng),還有一些大型、重型制造業(yè)的供應(yīng)鏈管理系統(tǒng),這些對(duì)時(shí)間的要求非常嚴(yán)格,這些軟件一旦發(fā)生crash,無(wú)法保證它的可用性的時(shí)候,會(huì)帶來(lái)巨大的損失。
3、可擴(kuò)展性
某些需要并發(fā)快速創(chuàng)建出成百上千虛擬機(jī)的場(chǎng)景中,比如很多教育行業(yè)的用戶,實(shí)驗(yàn)室里可能有幾百個(gè)學(xué)生,要統(tǒng)一打開(kāi)一個(gè)環(huán)境,然后幾十上百個(gè)虛擬機(jī)要同時(shí)快速啟動(dòng)......類(lèi)似這種場(chǎng)景,就反映在云的Scalability(彈性)的難度上。
4、靈活性
不同客戶的需求也不一樣,它們之間可能是相互矛盾的。舉個(gè)例子,比如一些分布式系統(tǒng),它可以支撐很大的規(guī)模,但它的應(yīng)用性卻并沒(méi)有那么好。而且靈活性和穩(wěn)定性之間也有一定矛盾,當(dāng)靈活性很強(qiáng)的時(shí)候,代碼可能會(huì)有各種各樣的組合,各種各樣的分支,很難保證測(cè)試在每個(gè)場(chǎng)景都能測(cè)下來(lái),穩(wěn)定性可能會(huì)打折扣。
二、私有云開(kāi)源架構(gòu)的技術(shù)秘籍
針對(duì)以上挑戰(zhàn),ZStack從用戶實(shí)際需求出發(fā),深度調(diào)研了當(dāng)前主要開(kāi)源架構(gòu)的優(yōu)缺點(diǎn),研發(fā)了具有4S特性的私有云開(kāi)源架構(gòu):
1、簡(jiǎn)單(Simple)
ZStack研發(fā)了In-prosessive Microservice Architechture(進(jìn)程內(nèi)微服務(wù))。具體原理為:
首先,在ZStack開(kāi)源代碼架構(gòu)里,將不同的模塊進(jìn)行單獨(dú)封裝,通過(guò)一個(gè)in-memory的message bus 去實(shí)現(xiàn)內(nèi)部消息的分發(fā),以及一些公共消息的封裝;再將所有模塊單獨(dú)分成一個(gè)Java bean,通過(guò)message bus來(lái)進(jìn)行內(nèi)外部通信。
其次,通過(guò)ansible軟件,實(shí)現(xiàn)云平臺(tái)部署的全自動(dòng)。
綜上得到的效果就是,對(duì)運(yùn)維人員來(lái)說(shuō),ZStack云平臺(tái)的運(yùn)行就是一個(gè)統(tǒng)一的進(jìn)程,但從軟件架構(gòu)上講,它又分了很多模塊,兼具簡(jiǎn)單操作與強(qiáng)大性能;對(duì)于普通用戶來(lái)說(shuō),只需要下載一個(gè)ISO,就可以在30分鐘以?xún)?nèi)把ZStack云平臺(tái)安裝部署起來(lái),真正享受簡(jiǎn)單易用的上云體驗(yàn)。
2、健壯(Strong)
針對(duì)穩(wěn)定性,ZStack做了很多測(cè)試和Code base的穩(wěn)定性工作,比如通過(guò)workflow來(lái)將代碼通過(guò)各種組合去實(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ù)以萬(wàn)計(jì)的API并發(fā)量。
另一方面,采用一致性哈希環(huán)(Consistent Hash Ring),將任意一個(gè)資源處理到正確節(jié)點(diǎn),避免對(duì)資源做加全局鎖。在ZStack架構(gòu)里,可以通過(guò)一個(gè)內(nèi)存隊(duì)列來(lái)控制并發(fā)級(jí)別(Synce level),得到更好的并發(fā)性能。
4、智能(Smart)
ZStack主要通過(guò)Plugins和Driver來(lái)分離接口和實(shí)現(xiàn)。具體來(lái)說(shuō),通過(guò)strategy-Pattem Plugins結(jié)構(gòu),將不同的底層對(duì)應(yīng)到同一個(gè)接口,再對(duì)外提供服務(wù)。
此外,還引入ZStack System Tag Architecture,將MySQL數(shù)據(jù)庫(kù)當(dāng)作schema-less 的KV來(lái)使用,在其中自定義schema,然后再做解析,以便升級(jí)操作。通過(guò)這兩種方式,ZStack云平臺(tái)的整體靈活性得到大幅提升,便于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)伸縮和無(wú)縫升級(jí)新版本的功能。
三、如何成為ZStack的commiter?
以上就是ZStack的架構(gòu)設(shè)計(jì)的簡(jiǎn)要分享,自2015年開(kāi)源至今,ZStack在Github中的Star數(shù)量一直保持穩(wěn)步增長(zhǎng);ZStack所發(fā)起并運(yùn)維的開(kāi)源社區(qū)zstack.io也聚集了上萬(wàn)名開(kāi)發(fā)者;ZStack所聚焦的云計(jì)算基礎(chǔ)IaaS層產(chǎn)品,已經(jīng)成為了很多公司進(jìn)行二次開(kāi)發(fā)的底座。
大家如果有興趣的話,可以上ZStack社區(qū),自己編譯和自己裝一下ZStack。ZStack的起步非常簡(jiǎn)單,只需要有一臺(tái)6核或者8核的電腦或者虛擬機(jī)就可以部署。
ZStack社區(qū)地址:
https://www.zstack.io/help_support/community_support/
結(jié)語(yǔ)
開(kāi)源軟件彼此組合、依賴(lài),連同各個(gè)為開(kāi)源做貢獻(xiàn)的維護(hù)者與開(kāi)發(fā)者,所共同形成的包含上萬(wàn)節(jié)點(diǎn)的開(kāi)源軟件供應(yīng)鏈,已經(jīng)是當(dāng)代社會(huì)中科技規(guī)模化協(xié)作發(fā)展的典范模式,也是激發(fā)軟件創(chuàng)新活力的有效手段。ZStack將不忘初心,與各位行業(yè)伙伴齊心協(xié)力,共同促進(jìn)我國(guó)云計(jì)算產(chǎn)業(yè)健康發(fā)展,提升我國(guó)云計(jì)算行業(yè)全球的競(jìng)爭(zhēng)力。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!