華為云計算 云知識 華為云Stack基礎(chǔ)設(shè)施服務(wù)架構(gòu)設(shè)計
華為云Stack基礎(chǔ)設(shè)施服務(wù)架構(gòu)設(shè)計

華為云Stack 基礎(chǔ)設(shè)施服務(wù)的產(chǎn)品設(shè)計,基于公有云先進的架構(gòu)技術(shù)和創(chuàng)新能力,采用了重構(gòu)改造+積木式搭配+抽屜式替換等一些典型架構(gòu)設(shè)計理念相結(jié)合的方式,繼承式的迭代改良產(chǎn)品能力來滿足政企客戶場景。

  • 重構(gòu)改造:會侵入原有系統(tǒng),但具備復(fù)用效率上的優(yōu)勢,適用于邏輯重疊且相對確定性的特性;
  • 積木式搭配:與原有系統(tǒng)以接口方式松耦合集成,適用于邏輯相對獨立的特性能力;
  • 抽屜式替:換要求系統(tǒng)提供基于模型抽象的框架能力來組合差異化能力,可用于需要差異化靈活適配的場景。

下面我們結(jié)合幾個具體例子,分享一些華為云Stack基礎(chǔ)設(shè)施服務(wù)從場景分析到設(shè)計實現(xiàn)過程中的思考與實踐。

IaaS架構(gòu)設(shè)計實踐

下面我們結(jié)合幾個具體例子,分享一些華為云Stack基礎(chǔ)設(shè)施服務(wù)從場景分析到設(shè)計實現(xiàn)過程中的思考與實踐。

存量異構(gòu)網(wǎng)絡(luò)的集成網(wǎng)關(guān)

云內(nèi)的網(wǎng)絡(luò) 自動化 設(shè)計,通常面向的是云內(nèi)資源,通過聯(lián)動云內(nèi)資源的生命周期管理模塊,實現(xiàn)網(wǎng)絡(luò)的自動化配置,云和外部的連接通常以存在Internet或?qū)>€接入為前提。政企客戶由于多年IT基礎(chǔ)設(shè)施的發(fā)展,積累了大量存量或異構(gòu)資源,包括物理機、虛擬化、多種Appliance設(shè)備等,這些資源和云之間的連接,往往是同機房或近機房的短距離部署,不依賴Internet或?qū)>€,客戶需要的是一種高效的二三層直連網(wǎng)絡(luò),幫助客戶的應(yīng)用快速上云和互通。

存量異構(gòu)網(wǎng)絡(luò)的集成網(wǎng)關(guān)正式面向這種場景的設(shè)計,考慮到VNF的帶寬限制及成本,選擇以單組800Gbps吞吐量*N組的硬件交換機來實現(xiàn)中轉(zhuǎn),可以低成本連接云內(nèi)VPC網(wǎng)絡(luò)并提供L2/L3互聯(lián)能力,形成云內(nèi)云外的一張網(wǎng)。

圖1  集成網(wǎng)關(guān)架構(gòu)設(shè)計

如圖1所示,云內(nèi)VPC網(wǎng)絡(luò)控制器將虛擬機/裸機資源的 虛擬網(wǎng)絡(luò) 位置信息,通過路由轉(zhuǎn)換模塊,轉(zhuǎn)換為EVPN路由,通過消息機制通知集成網(wǎng)關(guān)的路由控制模塊,配置到集成網(wǎng)關(guān)交換機,最后集成網(wǎng)關(guān)交換機根據(jù)路由信息,配置相應(yīng)的云內(nèi)VPC資源的ARP、MAC策略,以及到云內(nèi)物理主機的隧道策略。

在這個設(shè)計中,云內(nèi)控制器部分做了部分代碼重構(gòu),新增了路由轉(zhuǎn)換模塊和云內(nèi)VPC資源數(shù)據(jù)實施對接,同時新增了兩個設(shè)備管理模塊及路由控制模塊,和云平臺松耦合集成,可獨立部署運行,通過積木式搭配滿足該場景下的客戶要求。

云主機同城主備容災(zāi)

政企關(guān)鍵應(yīng)用在生產(chǎn)中心發(fā)生災(zāi)難時,需要能夠在災(zāi)備中心快速恢復(fù)業(yè)務(wù),另外日常維護的計劃內(nèi)停機,也往往會通過災(zāi)備中心過渡,在原生產(chǎn)中心完成計劃性活動后將業(yè)務(wù)切回。云主機容災(zāi)服務(wù)即是針對這種場景的解決方案,和基于應(yīng)用層的容災(zāi)方案所不同,云主機容災(zāi)服務(wù)提供了基于IaaS層可以無需上層應(yīng)用感知或改造的主備容災(zāi)能力??蛻粢部梢曰谠撃芰ΓY(jié)合應(yīng)用層容災(zāi)或應(yīng)用雙活的設(shè)計,來滿足自身的需要。

圖2 華為云Stack 同城雙AZ容災(zāi)設(shè)計

這里以同城雙AZ場景為例,如圖3所示,當(dāng)AZ1發(fā)生災(zāi)害,或需要做計劃性維護時,管理員可以通過云主機容災(zāi)服務(wù),將保護組內(nèi)的業(yè)務(wù)通過自動或手工的方式在AZ2恢復(fù)。這個過程可以做到數(shù)據(jù)不丟失,業(yè)務(wù)恢復(fù)時間最小可達10分鐘。

這是一個復(fù)雜的系統(tǒng)級解決方案,架構(gòu)設(shè)計思想如圖所示,采用一種分層解耦積木式搭建的思路:

  • 存儲層:研發(fā)HyperMetro特性實現(xiàn)數(shù)據(jù)在生產(chǎn)中心到災(zāi)備中心的實時同步,并相上提供雙活LUN的接口能力,可以被上層系統(tǒng)松耦合集成。作為存儲雙活的原子能力,可用于傳統(tǒng)IT的使用場景、云場景下計算多路徑訪問的高可用場景,也可以用于云主機容災(zāi)場景,由容災(zāi)服務(wù)調(diào)用進行雙活LUN的配置和切換。
  • 計算層:提供主備虛擬機的元數(shù)據(jù)獲取和配置的原子接口,并提供災(zāi)備中心創(chuàng)建占位虛擬機的能力。容災(zāi)服務(wù)通過建立生產(chǎn)和容災(zāi)站點虛擬機之間的元數(shù)據(jù)映射關(guān)系,以保護組模型來管理,當(dāng)需要進行故障切換時,可調(diào)用計算層接口進行容災(zāi)虛擬機的啟動切換終止操作。
  • 網(wǎng)絡(luò)層:無論是否需要容災(zāi)特性,通用的多站點部署環(huán)境下,集中式形態(tài)的網(wǎng)元首先要解決自身的高可用能力,應(yīng)對鏈路故障、網(wǎng)元集群故障、設(shè)備故障甚至控制軟件問題等多種故障場景,而容災(zāi)只是其中一種整體AZ級別的故障模式。通過多集群冗余、鏈路冗余,設(shè)備探測、元數(shù)據(jù)同步、路由切換等多種手段的結(jié)合,首先設(shè)計了通用的多站點部署高可用能力,而后提供給容災(zāi)服務(wù),來解決雙AZ容災(zāi)的網(wǎng)絡(luò)切換問題。
  • 管控層:管控面服務(wù)自身的設(shè)計和網(wǎng)絡(luò)類似,首先設(shè)計通用的站點內(nèi)分布式集群冗余的高可用以及多站點部署環(huán)境下的高可用能力,解決管控面服務(wù)自身的故障切換問題,而后只需要暴露原子切換能力給容災(zāi)服務(wù),針對站點故障時做容災(zāi)切換的操作。

可以看出,以上各層提供的是應(yīng)對通用故障場景下自身的高可用原子能力,并且相互之間不形成依賴耦合關(guān)系。而容災(zāi)服務(wù)設(shè)計為一個獨立解耦的模塊,集成各層的能力,內(nèi)聚編排、策略、演練、任務(wù)流程,并最終提供面向管理員的容災(zāi)服務(wù)化體驗。

云平臺集成3rd塊存儲

客戶由于自身的采購策略或業(yè)務(wù)連續(xù)性等種種因素的考慮,會存在軟硬件分層的訴求。從云平臺軟件的角度,一定程度的南向開放能力,也是作為軟件平臺的開放架構(gòu)下的競爭要求,可以促進市場生態(tài)的繁榮。

同一廠商對自身同構(gòu)設(shè)備的集成,由于研發(fā)組織協(xié)作緊密、特性路標規(guī)劃明確、版本配套互鎖,短路徑集成性能更優(yōu)等一系列原因,通常會忽略對良好的開放性和能力差異化的設(shè)計考慮。下圖以云平臺集成某3rd塊存儲的實踐為例,分享一些云平臺在南向開放集成時的設(shè)計思路。

圖3 第三方存儲集成設(shè)計

如圖3所示,對南向設(shè)備的集成,包括管理運維、服務(wù)控制、及數(shù)據(jù)面集成幾個層次。數(shù)據(jù)面的集成,包括存儲、服務(wù)器及網(wǎng)絡(luò)設(shè)備在內(nèi),采用成熟標準的協(xié)議來對接。管理運維通常直接采用設(shè)備廠商的自帶系統(tǒng),對于管理運維協(xié)議標準化成熟度較高的設(shè)備,也可以考慮集成到統(tǒng)一管理運維平臺來提升體驗。

控制面的集成,是設(shè)計復(fù)雜性的集中體現(xiàn)。一是設(shè)備的控制方式鮮有一致的標準,接口語法和語義各有不同,如果不做統(tǒng)一設(shè)計,逐款對接會導(dǎo)致管控面的處理邏輯代碼相互耦合,難以維護;二是設(shè)備的能力、規(guī)格和性能參差不齊,多種組合會引起代碼分叉嚴重,開發(fā)和交叉測試代價居高不下。

我們采用部分重構(gòu)結(jié)合抽屜式替換的思路來緩解這個問題,模型部分抽象出存儲服務(wù)等級描述如性能、容量、保護能力等,來簡化屏蔽細節(jié)差異的代價;通用的南向框架提供以Driver機制接入的方式來集成多種不同類型的南向設(shè)備,減少對主體控制流程的侵入;自動配置重構(gòu)優(yōu)化針對設(shè)備能力差異如快照、回滾、復(fù)制、動態(tài)調(diào)整等特性做自動識別從而減少代碼級別的耦合。進一步更靈活更解耦的優(yōu)化改造也正在設(shè)計和實踐中,包括徹底的二進制級的部署解耦,運維邊界劃分的設(shè)計,以及面向3rd設(shè)備廠商的開放的自動化集成測試驗證流程的工具集等。

跨平臺云 主機遷移

IaaS技術(shù)的發(fā)展會存在一些跨代的階梯式演進,如虛擬化引擎從XEN到KVM、經(jīng)典VLAN網(wǎng)絡(luò)到隧道網(wǎng)絡(luò),單體平臺架構(gòu)到分布式平臺架構(gòu)等等。在提供更先進的技術(shù)生產(chǎn)力的同時,也要盡量避免對客戶的已上線業(yè)務(wù)造成影響。新平臺通過解耦的管理系統(tǒng)納管舊平臺來水平演進,并提供平臺間的網(wǎng)路互聯(lián)服務(wù),是一種比較穩(wěn)妥的解決方案。而對于一些客戶,也希望能夠提供業(yè)務(wù)的 遷移 能力,高效的把舊平臺上的存量業(yè)務(wù)便捷的遷移到新平臺。

通用的遷移方式,是提供和云平臺不相關(guān)的遷移工具,基于計算資源內(nèi)的代理模塊做數(shù)據(jù)同步和資源重建。這種方式的適用范圍更廣,但也存在著較為低效的問題,同時由于和云平臺能力互不關(guān)聯(lián),數(shù)據(jù)模型的重建無法借助云平臺提供,在遷移體驗上會有損失。

基于這個考慮,在滿足一定條件的前提下,我們針對部分高優(yōu)先的場景,做了一些嘗試和實踐,可以基于存儲數(shù)據(jù)不搬遷的方式重建計算資源,消減數(shù)據(jù)拷貝帶來的影響,同時利用和云平臺的配合,提升配置同步的自動化體驗。

圖4 跨平臺云主機遷移設(shè)計

這個設(shè)計是獨立解耦的積木式搭配思路,對云平臺不做任何侵入式改造?;讵毩⒌?a href=" https://marketplace.huaweicloud.com/contents/da344844-3ddb-4cf4-8da8-25dbfc553112 " target="_blank" style="text-decoration:underline;"> 遷移服務(wù) 模塊,以松耦合北向API對接平臺的方式,可以形成和云平臺無關(guān)的可獨立演進的服務(wù),既不受平臺版本的內(nèi)部迭代變化和研發(fā)進度約束,又具備了可以持續(xù)累加能力的演進性。在當(dāng)前實踐的限定使用場景之上,未來也可以不斷擴展到更多的平臺形態(tài),更多的服務(wù)特性如遷移、調(diào)度、網(wǎng)絡(luò)互連,配置同步等,以及更廣泛的多云跨云場景下的混合控制能力。

以上列舉的幾點,是華為云Stack基礎(chǔ)設(shè)施服務(wù)和政企客戶共同探索過程中沉淀下來的場景化產(chǎn)品能力,在眾多客戶的實際生產(chǎn)環(huán)境中發(fā)揮著良好的效果。同時我們也實踐了軟件架構(gòu)設(shè)計中的一些典型思路,通過局部改造結(jié)合解耦分層設(shè)計的實踐,有效避免了由于碎片化發(fā)散帶來的產(chǎn)品不可持續(xù)演進的風(fēng)險。


 
華為云Stack
華為云Stack是部署在政企客戶本地數(shù)據(jù)中心的云基礎(chǔ)設(shè)施,通過持續(xù)創(chuàng)新,打造安全、可靠、高效的混合云,以用戶視角一朵云的能力,助力客戶從業(yè)務(wù)上云邁向深度用云,釋放數(shù)字生產(chǎn)力。