華為云計算 云知識 華為云Stack如何實現(xiàn)高效建云
華為云Stack如何實現(xiàn)高效建云

華為云Stack 通過高內(nèi)聚低耦合的積木式架構(gòu)、簡單易用的 自動化 交付平臺、傻瓜式自動化端到端驗收以及標準化模型沉淀實現(xiàn)高效建云,把全棧云平臺大批量低成本復(fù)制到數(shù)據(jù)中心

云平臺自身固有的復(fù)雜性決定了建云是一個浩大的工程。在討論云平臺安裝部署之前,我們不妨先看看一些簡單軟件的安裝成本和對實施人員的技能要求:

軟件

安裝步驟

實施人員的技能要求

實施周期

(不考慮物料采購周期)

Nginx單機版

初始化Linux服務(wù)器、yum install,然后按需修改配置文件

Linux基礎(chǔ)命令

1小時內(nèi)

MySQL主備集群

初始化Linux服務(wù)器、在主備節(jié)點上分別yum install,然后配置主備關(guān)系,啟動服務(wù)

Linux基本操作及MySQL基本的維護經(jīng)驗

2小時

企業(yè)門戶網(wǎng)站

初始化Linux服務(wù)器、部署 數(shù)據(jù)庫 、網(wǎng)站應(yīng)用程序、nginx LB,配置DNS解析記錄

linux基本操作、數(shù)據(jù)庫維護、LB軟件維護、DNS軟件維護

2天以上

中等規(guī)模的企業(yè)應(yīng)用

初始化Linux服務(wù)器,部署API網(wǎng)關(guān),部署X套數(shù)據(jù)庫、N個微服務(wù)組件、LB,配置DNS,業(yè)務(wù)調(diào)測

除上述基本能力外,還需要充分理解業(yè)務(wù)流程,完成業(yè)務(wù)功能驗證

1月以上

從以上表格可見,當交付一個復(fù)雜度與企業(yè)ERP系統(tǒng)相當?shù)膽?yīng)用軟件時,對交付人員的技能要求就已經(jīng)比較高了,而且其交付周期已經(jīng)嚴重影響了客戶的業(yè)務(wù)發(fā)展。

下面我們再來看看華為云Stack的整體架構(gòu),以便對其復(fù)雜度有一個直觀的感受:

圖1 華為云Stack整體架構(gòu)

華為云Stack邏輯架構(gòu)上劃分為資源池層、公共組件、云服務(wù)層、運維運營系統(tǒng)等幾部分,每一層又由數(shù)十甚至上百個微服務(wù)及其依賴的DB、中間件、LB等組件構(gòu)成,并且各微服務(wù)、服務(wù)之間存在非常復(fù)雜的交互關(guān)系。整體復(fù)雜度比前面提到的ERP系統(tǒng)高了幾個量級。

面對如此復(fù)雜的分布式系統(tǒng),如果采用傳統(tǒng)的人工交付方式,其交付周期將是不可接受的,而且對交付人員的技術(shù)能力也會有非常高的要求。

為了應(yīng)對華為云Stack批量快速交付的挑戰(zhàn),我們主要采取了以下幾個方面的措施:

1. 產(chǎn)品研發(fā)階段,采用積木式架構(gòu),確保一個邏輯層、每一個服務(wù)單元的高內(nèi)聚低耦合。

2. 通過自研的一鍵式自動化交付平臺,驅(qū)動整朵云自下而上的自動化部署。

3. 通過云平臺自動化驗收工具確保交付的有效性,降低現(xiàn)場調(diào)試成本。

4. 通過標準化的數(shù)據(jù)中心級建模,為后續(xù)升級提供數(shù)據(jù)支撐,確保已交付站點的長期可持續(xù)升級演進。

下面我們對每一種措施展開詳細的介紹。

高內(nèi)聚低耦合的積木式架構(gòu)

積木式的軟件架構(gòu)是高效交付的前提。試想你要建造一棟大樓,但是運到工地上的都是一堆堆的沙子、水泥、鋼筋、木頭,需要現(xiàn)場測量,現(xiàn)場澆筑各種構(gòu)件,那么其建設(shè)效率和質(zhì)量將極其不可控。因此在現(xiàn)代化的建筑領(lǐng)域,一般會在工廠里根據(jù)架構(gòu)師設(shè)計好的圖紙批量生產(chǎn)標準的預(yù)制件,然后在施工現(xiàn)場進行組裝,通過搭積木的方式快速完成建設(shè)。

華為云Stack在研發(fā)階段,已經(jīng)充分考慮了軟件的可交付性,主要采取的措施包括:

? 通過華為公司自研的軟件建模工具對每個服務(wù)單元的交付模型、部署模型進行詳細設(shè)計及多輪評審,明確每個服務(wù)單元的部署、運行依賴。

? 通過分層架構(gòu)方法,明確定義每一層之間的接口,并通過API管控工具確保每一層對外提供的API的穩(wěn)定性,進而降低各服務(wù)間對接的復(fù)雜度。

? 通過領(lǐng)域建模,抽取大多數(shù)服務(wù)所依賴的公共組件,以服務(wù)化的方式進行統(tǒng)一管理,從而提升了其標準化水平和交付效率。

? 制定了一套統(tǒng)一的安裝部署開發(fā)框架和規(guī)范,確保來自不同團隊的各種云服務(wù)的部署方式的統(tǒng)一。

以云主機服務(wù)ECS為例,在架構(gòu)設(shè)計階段,可交付性方面要完成如下設(shè)計:

圖2 云服務(wù)設(shè)計可交付性相關(guān)設(shè)計

在開發(fā)階段,除業(yè)務(wù)功能代碼的開發(fā)外,每個服務(wù)還要根據(jù)自動化部署的開發(fā)規(guī)范開發(fā)自動化部署插件包,該插件包中包含了安裝部署的每一個子步驟的描述、參數(shù)聲明、依賴關(guān)系聲明以及相關(guān)的部署腳本。部署插件屏蔽了云服務(wù)內(nèi)部的復(fù)雜細節(jié),對外提供了統(tǒng)一的交付接口。對華為云Stack的交付人員來說,無需理解要部署的是IaaS服務(wù)還是ManageOne云管平臺,大大降低了交付人員的學習成本和技能要求。

經(jīng)過以上措施,華為云Stack中的每個服務(wù)單元都變成了一塊“樂高積木”,提供了標準的“卡槽”,為高效交付打下了堅實的基礎(chǔ)

簡單易用的自動化交付平臺

通過良好的架構(gòu)設(shè)計,我們有了一堆可根據(jù)客戶需求靈活組裝的積木。但是,玩過樂高的朋友可能深有體會,對于大型的樂高模型,雖然每一塊都有標準的接口,但是面對成百上千塊積木,要把它拼裝起來,仍然是一項浩大的工程。

為了實現(xiàn)華為云Stack中成百上千的微服務(wù)的搭積木式交付,我們研發(fā)了一個高度靈活的可視化、自動化交付平臺(HUAWEI CLOU Stack Deployment Platform,簡稱HCSD)。該平臺的主要功能如下圖所示:

圖2 自動化部署平臺(HCSD)架構(gòu)

該平臺相當于一個自動化搭積木的機器人,一線交付人員把軟件包和通用原子能力庫導(dǎo)入到交付平臺中,然后通過可視化UI按需選擇要部署的服務(wù)或組件,根據(jù)頁面上的提示導(dǎo)入?yún)?shù)表,啟動部署工程。接下來任務(wù)執(zhí)行引擎會加載所有云服務(wù)包中的部署插件,根據(jù)插件中定義的子任務(wù)依賴關(guān)系描述生成DAG并進行拓撲排序,然后并發(fā)執(zhí)行安裝任務(wù),完成云平臺軟件的部署和配置。在部署完成后,還會自動化執(zhí)行每個云服務(wù)插件包中定義的E2E驗收用例,并自動生成驗收報告。

基于該平臺,華為云Stack的整體軟件交付流程和工時如下(以200臺物理機規(guī)模為例):

圖4 華為云Stack端到端交付流程及工時

傻瓜式自動化端到端驗收

傳統(tǒng)的軟件交付過程中,軟件部署完成后,會由對業(yè)務(wù)流程比較精通的專業(yè)人員通過實際操作來驗證軟件交付的正確性。這種方式對于簡單的軟件來說是可行的,但是面對向華為云Stack這種復(fù)雜的分布式系統(tǒng),如果想通過人工把所有驗收用例執(zhí)行一遍,既耗時耗力,又難免出現(xiàn)各種人因差錯而影響驗收結(jié)果的有效性。

為了提升驗收的效率和有效性,我們在軟件設(shè)計階段引入“可測試性”設(shè)計環(huán)節(jié),在功能特性設(shè)計之初就充分考慮了可測試性,并對E2E用例進行了詳細設(shè)計。在開發(fā)階段,會按照統(tǒng)一的規(guī)范把這些E2E測試用例代碼化,并隨交付件一起發(fā)布。

目前涵蓋的主要自動化E2E驗收用例包括:

? 各云服務(wù)主要API的端到端調(diào)用,如:創(chuàng)建VPC、上傳VM 鏡像 、創(chuàng)建VM、VM網(wǎng)絡(luò)互通性驗證、刪除VM等。

? 自動點擊云服務(wù)Web Console的鏈接和按鈕,抓取頁面截圖。

基于該自動化驗收調(diào)測工具,生成了Web版本和Word版本的驗收報告。更重要的是降低了對交付人員的技能要求,為華為云Stack大批量復(fù)制提供了重要支撐。

標準化模型沉淀,為云平臺持續(xù)升級演進提供有力保障

數(shù)字化建設(shè)是一個長期持續(xù)的過程,云平臺作為數(shù)字化平臺的基座,必須具備長期的可持續(xù)升級演進能力。因此在研發(fā)階段、交付階段要充分考慮云平臺的可升級能力,為后續(xù)的維護、升級提供必要的數(shù)據(jù)支撐。

目前在華為云Stack以ManageOne CMDB為載體,沉淀了整朵云運維變更相關(guān)的核心元數(shù)據(jù)。

圖5 CMDB運維數(shù)據(jù)模型

這些數(shù)據(jù)在研發(fā)階段是由各云服務(wù)團隊維護的,在部署階段由HCSD匯總并注入CMDB。

為了降低運維數(shù)據(jù)的維護成本,我們基于json schema定義了一套數(shù)據(jù)模型校驗基線,并給所有云服務(wù)的代碼庫配置了門禁,每次代碼提交都會觸發(fā)自動化模型校驗,確保數(shù)據(jù)的準確性。

在云服務(wù)軟件發(fā)布階段,各云服務(wù)按照規(guī)范把運維基線數(shù)據(jù)打包隨交付件發(fā)布,然后由HCSD自動化寫入CMDB。

通過這種方式,華為云Stack做到了整朵云一鍵端到端自動化升級,為政企客戶數(shù)字化資產(chǎn)的可持續(xù)運營打下了堅實的基礎(chǔ)。

 

目前華為云Stack從架構(gòu)設(shè)計到代碼開發(fā)、從發(fā)布到交付,已經(jīng)形成一條高度標準化的流水線。未來我們會持續(xù)在新的交付模式上進行更多的創(chuàng)新探索,把華為公有云上的新技術(shù)、新特性第一時間復(fù)制到客戶數(shù)據(jù)中心,為客戶打造通往數(shù)字化轉(zhuǎn)型的高速公路。


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