高效建云,把全栈云平台大批量低成本复制到数据中心
本文分享自華為云社區(qū)《【華為云Stack】【大架光臨】第9期:高效建云,把全棧云平臺大批量低成本復制到數據中心》,作者:華為云Stack工程架構領域架構師 魏世江 。
摘要
在國家“十四五”規(guī)劃和2035年遠景目標綱要中,明確提出“加快數字化發(fā)展 建設數字中國”的戰(zhàn)略目標。云計算以“一切皆服務”的理念,為用戶提供了像水電一樣可按需獲取的計算、存儲、網絡資源以及大量成熟的AI、大數據、應用治理等高階服務,已成為數字經濟、數字社會、數字政府的重要基礎設施,是政企數字化轉型、業(yè)務創(chuàng)新過程中至關重要的一環(huán)。而作為數字經濟的基座,云計算被明確列入“十四五”綱要“數字經濟重點產業(yè)”名錄。
云計算雖然極大加快了業(yè)務創(chuàng)新的效率,但是由于云平臺自身固有的復雜性,其初期建設過程一般涉及機房建設、IT設備采購、設備配置、云平臺軟件部署等多個環(huán)節(jié),建設周期較長,有可能成為影響數字化轉型落地節(jié)奏的重要因素。如果說“數字化經濟”是一座大型商場,那么云平臺就是商場的大樓及其附屬配套設施,樓什么時候建好,直接影響著商場何時開業(yè)。
本文將為讀者分享華為云Stack是如何高效的把全棧云平臺大批量低成本復制到客戶的數據中心,為客戶修建數字化轉型的高速公路。
云平臺自身固有的復雜性
建云是一個浩大的工程,主要原因在于云平臺自身固有的復雜性。
在討論云平臺安裝部署之前,我們不妨先看看一些簡單軟件的安裝成本和對實施人員的技能要求:
從以上表格可見,當交付一個復雜度與企業(yè)ERP系統(tǒng)相當的應用軟件時,對交付人員的技能要求就已經比較高了,而且其交付周期已經嚴重影響了客戶的業(yè)務發(fā)展。
下面我們再來看看華為云Stack的整體架構,以便對其復雜度有一個直觀的感受:
圖1:華為云Stack整體架構
華為云Stack邏輯架構上劃分為資源池層、公共組件、云服務層、運維運營系統(tǒng)等幾部分,每一層又由數十甚至上百個微服務及其依賴的DB、中間件、LB等組件構成,并且各微服務、服務之間存在非常復雜的交互關系。整體復雜度比前面提到的ERP系統(tǒng)高了幾個量級。
面對如此復雜的分布式系統(tǒng),如果采用傳統(tǒng)的人工交付方式,其交付周期將是不可接受的,而且對交付人員的技術能力也會有非常高的要求。
為了應對華為云Stack批量快速交付的挑戰(zhàn),我們主要采取了以下幾個方面的措施:
1. 產品研發(fā)階段,采用積木式架構,確保一個邏輯層、每一個服務單元的高內聚低耦合。
2. 通過自研的一鍵式自動化交付平臺,驅動整朵云自下而上的自動化部署。
3. 通過云平臺自動化驗收工具確保交付的有效性,降低現場調試成本。
4. 通過標準化的數據中心級建模,為后續(xù)升級提供數據支撐,確保已交付站點的長期可持續(xù)升級演進。
下面我們對每一種措施展開詳細的介紹。
高內聚低耦合的積木式架構
積木式的軟件架構是高效交付的前提。試想你要建造一棟大樓,但是運到工地上的都是一堆堆的沙子、水泥、鋼筋、木頭,需要現場測量,現場澆筑各種構件,那么其建設效率和質量將極其不可控。因此在現代化的建筑領域,一般會在工廠里根據架構師設計好的圖紙批量生產標準的預制件,然后在施工現場進行組裝,通過搭積木的方式快速完成建設。
華為云Stack在研發(fā)階段,已經充分考慮了軟件的可交付性,主要采取的措施包括:
? 通過華為公司自研的軟件建模工具對每個服務單元的交付模型、部署模型進行詳細設計及多輪評審,明確每個服務單元的部署、運行依賴。
? 通過分層架構方法,明確定義每一層之間的接口,并通過API管控工具確保每一層對外提供的API的穩(wěn)定性,進而降低各服務間對接的復雜度。
? 通過領域建模,抽取大多數服務所依賴的公共組件,以服務化的方式進行統(tǒng)一管理,從而提升了其標準化水平和交付效率。
? 制定了一套統(tǒng)一的安裝部署開發(fā)框架和規(guī)范,確保來自不同團隊的各種云服務的部署方式的統(tǒng)一。
以云主機服務ECS為例,在架構設計階段,可交付性方面要完成如下設計:
圖2:云服務設計可交付性相關設計
在開發(fā)階段,除業(yè)務功能代碼的開發(fā)外,每個服務還要根據自動化部署的開發(fā)規(guī)范開發(fā)自動化部署插件包,該插件包中包含了安裝部署的每一個子步驟的描述、參數聲明、依賴關系聲明以及相關的部署腳本。部署插件屏蔽了云服務內部的復雜細節(jié),對外提供了統(tǒng)一的交付接口。對華為云Stack的交付人員來說,無需理解要部署的是IaaS服務還是ManageOne云管平臺,大大降低了交付人員的學習成本和技能要求。
經過以上措施,華為云Stack中的每個服務單元都變成了一塊“樂高積木”,提供了標準的“卡槽”,為高效交付打下了堅實的基礎
簡單易用的自動化交付平臺
通過良好的架構設計,我們有了一堆可根據客戶需求靈活組裝的積木。但是,玩過樂高的朋友可能深有體會,對于大型的樂高模型,雖然每一塊都有標準的接口,但是面對成百上千塊積木,要把它拼裝起來,仍然是一項浩大的工程。
為了實現華為云Stack中成百上千的微服務的搭積木式交付,我們研發(fā)了一個高度靈活的可視化、自動化交付平臺(HUAWEI CLOU Stack Deployment Platform,簡稱HCSD)。該平臺的主要功能如下圖所示:
圖3:自動化部署平臺(HCSD)架構
該平臺相當于一個自動化搭積木的機器人,一線交付人員把軟件包和通用原子能力庫導入到交付平臺中,然后通過可視化UI按需選擇要部署的服務或組件,根據頁面上的提示導入參數表,啟動部署工程。接下來任務執(zhí)行引擎會加載所有云服務包中的部署插件,根據插件中定義的子任務依賴關系描述生成DAG并進行拓撲排序,然后并發(fā)執(zhí)行安裝任務,完成云平臺軟件的部署和配置。在部署完成后,還會自動化執(zhí)行每個云服務插件包中定義的E2E驗收用例,并自動生成驗收報告。
基于該平臺,華為云Stack的整體軟件交付流程和工時如下(以200臺物理機規(guī)模為例):
圖4:華為云Stack端到端交付流程及工時
傻瓜式自動化端到端驗收
傳統(tǒng)的軟件交付過程中,軟件部署完成后,會由對業(yè)務流程比較精通的專業(yè)人員通過實際操作來驗證軟件交付的正確性。這種方式對于簡單的軟件來說是可行的,但是面對向華為云Stack這種復雜的分布式系統(tǒng),如果想通過人工把所有驗收用例執(zhí)行一遍,既耗時耗力,又難免出現各種人因差錯而影響驗收結果的有效性。
為了提升驗收的效率和有效性,我們在軟件設計階段引入“可測試性”設計環(huán)節(jié),在功能特性設計之初就充分考慮了可測試性,并對E2E用例進行了詳細設計。在開發(fā)階段,會按照統(tǒng)一的規(guī)范把這些E2E測試用例代碼化,并隨交付件一起發(fā)布。
目前涵蓋的主要自動化E2E驗收用例包括:
? 各云服務主要API的端到端調用,如:創(chuàng)建VPC、上傳VM鏡像、創(chuàng)建VM、VM網絡互通性驗證、刪除VM等。
? 自動點擊云服務Web Console的鏈接和按鈕,抓取頁面截圖。
基于該自動化驗收調測工具,生成了Web版本和Word版本的驗收報告。更重要的是降低了對交付人員的技能要求,為華為云Stack大批量復制提供了重要支撐。
標準化模型沉淀,為云平臺持續(xù)升級演進提供有力保障
數字化建設是一個長期持續(xù)的過程,云平臺作為數字化平臺的基座,必須具備長期的可持續(xù)升級演進能力。因此在研發(fā)階段、交付階段要充分考慮云平臺的可升級能力,為后續(xù)的維護、升級提供必要的數據支撐。
目前在華為云Stack以ManageOne CMDB為載體,沉淀了整朵云運維變更相關的核心元數據。
圖5:CMDB運維數據模型
這些數據在研發(fā)階段是由各云服務團隊維護的,在部署階段由HCSD匯總并注入CMDB。
為了降低運維數據的維護成本,我們基于json schema定義了一套數據模型校驗基線,并給所有云服務的代碼庫配置了門禁,每次代碼提交都會觸發(fā)自動化模型校驗,確保數據的準確性。
在云服務軟件發(fā)布階段,各云服務按照規(guī)范把運維基線數據打包隨交付件發(fā)布,然后由HCSD自動化寫入CMDB。
通過這種方式,華為云Stack做到了整朵云一鍵端到端自動化升級,為政企客戶數字化資產的可持續(xù)運營打下了堅實的基礎。
總結
目前華為云Stack從架構設計到代碼開發(fā)、從發(fā)布到交付,已經形成一條高度標準化的流水線。未來我們會持續(xù)在新的交付模式上進行更多的創(chuàng)新探索,把華為公有云上的新技術、新特性第一時間復制到客戶數據中心,為客戶打造通往數字化轉型的高速公路。
點擊關注,第一時間了解華為云新鮮技術~
總結
以上是生活随笔為你收集整理的高效建云,把全栈云平台大批量低成本复制到数据中心的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows忘记本地pg数据库密码,修
- 下一篇: u盘格式化的格式及分配单元大小