技術培訓 | 資源編排,人人都可以成為架構師

arron劉發表於2016-05-25

今天和大家分享的話題是如何利用青雲資源編排服務快速建立批次資源組合、規劃和構建系統,同時談談資源編排如何幫助我們複製一整套IT環境,以及如何實現跨區做相同架構資源的複製。

資源編排到底是什麼呢?

大家知道雲服務本質上是做 IT 架構軟體化和 IT 平臺智慧化的工作。

傳統方式我們構建一個系統,不管是做醫療、教育還是金融、媒體等等,最上層需要部署自身的業務程式碼;

中間層是業務依賴的專業軟體、平臺中介軟體、服務元件等;

下層是部署的硬體系統,包括計算節點、儲存資源、網路,然後安裝作業系統等等。

中下兩層是運維層面的內容,用傳統的IT 架構方式,企業可能需要很多工程師,包括在現場做苦活、累活、髒活的現場運維、開發工程師。

因為有些操作需要去啃硬體的使用手冊、瞭解主機板晶片介面、路由器指令等等。

雲服務提供的智慧化是把每一層都用軟體的方式實現,以標準化介面的方式提供,這樣很多苦活、累活都不用做了。

軟體的靈活排程特效能夠在 IaaS 層解決硬體的容錯問題, PaaS 層的標準元件能夠省卻 DevOps 搭建中介軟體需要考慮和維護的叢集化、動態控制節點規模、備份、容災等問題。

很多人都已經在使用雲端計算服務了,還有很多人沒有選擇上雲。

他們的區別在於你是否相信,雲服務提供的 IaaS/PaaS 服務能夠滿足企業的要求,它是否具有穩定性、安全性、彈性以及足夠的效能等等。

下面我們來說資源編排。

資源編排在哪一層呢?我們一般說的編排,包括資源編排、服務編排,後者是業務層面、應用層面的編排,以前者為基礎。

資源編排是在 IaaS 層之上的構建層,稱為 Resource Orchestration。它是在 IaaS 平臺之上構建系統,並且對這個系統進行生命週期管理。

資源編排需要具備抽象建模能力:每類雲資源有不同的裝置,如主機、路由器、負載均衡器、大資料等元件,你需要對它進行抽象建模——需要哪些資源,並且資源之間的拓撲關係是怎樣的;

然後你能夠對它的生命週期進行管理,如何從無到有進行建立,之後資源之間要能夠更新、增加、減少,如何操作。

具體來說資源編排具備的能力有幾點:

一是能否對現有資源做抽象、能夠按照我們定義好的模板規範建模;

二是基於模板把資源例項化出來,成為一整套具有獨立性的資源,並能對資源的屬性、原資料進行增刪、查改、回收等操作。

資源編排能做什麼?

概念是抽象的,我們看看具體能做什麼事情。

青雲QingCloud 的雲服務是想構建一個生態圈的概念,我們底層有 IaaS 、 Technical PaaS 。

線下交流時有人問,能否在青雲平臺上面提供 Hadoop 服務讓他們的使用者去使用?當然可以,你可以利用現有的 IaaS 和 PaaS 的 API 介面來做。

要完成這個任務,透過傳統方式來做,需要對整個 Hadoop 叢集所依賴的資源,比如路由器、私有網路、主機、映象、硬碟、公網 IP 等等,有一個拓撲概念和配置規劃,然後決定先後順序,呼叫 API 來完成這個搭建任務。

使用資源編排來做的話,只需給這個任務的配置做一個描述、生成模板,即可一次性地建立出來。

這對我們合作伙伴或是在這青雲QingCloud 上提供服務的獨立開發者來說是非常方便的。

只要將提供服務所需要的資源組合配置為模板,呼叫一次 API 即可生成資源。

如果不是作為應用提供者,我們列舉一些使用場景。

第一種場景是利用雲平臺做資源申請審批管理。

我們有些傳統客戶,他的主賬號是作為資源審批者,是管理部門;子賬號作為資源申請和使用者,是業務部門。

每次需要資源時,業務部門要先向管理部門申請。申請的時候以業務為單位,按業務型別和規模來申請。

比如要做內部開發系統、WEB 系統等等。每種業務系統其實是有類似的資源配置和組合的,只是規模大小有所不同。

這種場景,管理者可以先預定幾套資源編排配置模板,或者寫一個實時生成業務模板的邏輯,接收規模、配置等作為引數。這樣不論是需要主機、資料庫、 Hadoop,需要資源組網、VPN 登入,這些分散的資源可以組合整理出來,一次性生成。

第二種場景是多套環境的複製。

比如說開發初期只有一個小的開發環境,上線後要做測試、部署 Staging 環境以及線上環境。

每套環境對小規模系統來說,重建一套比較簡單。如果資源很多規模很大的話怎麼辦?運維工程師要做很複雜的工作,會很累。

資源編排有抽象能力的話,可以把現有的資源、拓撲關係和背景全部抽取出來,利用這套模板快速生成資源,原本需要大半天的時間,現在只需要十幾分鍾就可以搞定了。

第三種場景,沒有在雲上使用任何資源,但你想規劃現在的 IT 系統。

這種場景通常知道大概要上線的服務需要多少臺主機資源、資料庫資源,但並不知道他們之間應該如何透過網路連線、如何掛載附加資源,不知道它的價格是多少,不知道橫向擴充套件時如何核算成本。

你可以使用資源編排功能,先架構系統,看看它能否滿足你的要求,包括物理效能和配置,再看看價格預算是否在你接受的範圍內。

第四種場景,跨區的備份和部署。

如果大家在使用我們資源的時候可能會碰到一種情況:我們有不同區域的機房,實體資源都在具體機房裡。

如果在廣東 1 區有了一套系統,想要在兩地部署,北京 2 區複製一份這樣的結構,相同資源組合必須在北京 2 區生成並連線、組合起來。

利用資源編排的話,廣東 1 區的資源可以提取成全域性唯一的抽象模板,然後我們在新區域應用這個模板即可。

嘗試過資源編排的同學,可能覺得它就只是資源配置,其實裡面的事情還是挺複雜的。資源之間的關係、約束能否真正例項化、能否管理,這有很多工作。

首先我們會有抽象化的過程:有哪些資源,他們的關係如何,如何定義他們的約束;其次把它具體化形成一個個實體,包括路由器、資料庫、快取等等,把這些實體所具備的配置、關聯,比如硬碟、網路等等,作為它的屬性建模;最後把拓撲結構例項化出來,真正形成資源。

開放的 API

我們每次釋出服務都會提供相應的 API,把 API 直接暴露出來提供給使用者。

因為在雲上使用服務的使用者,有的偏技術一些,利用雲平臺要做很多事情,包括我們的合作伙伴在上面構建系統,需要用 API 做程式設計,用軟體形成快速部署;

另一種是終端使用者,透過控制檯,更喜歡用圖形化的操作方式。

資源編排 API 主要分為三類,一是 TopologyTemplate 相關 API,完成拓撲模板的維護,即增刪查改,還有配置、定義等等;

二是 Topology 例項化,把資源真正的批次建立出來;

三是檢查配置是否合法,能否滿足配額,能否建立起資源。

資源編排怎麼用呢?

說了這麼多,資源編排怎麼用呢?在控制檯上,資源編排可以使用圖形化的操作來建立模板。
我們在建立模板時提供了 4 種方法:以系統推薦模板作為樣本建立、從當前的資源抽取拓撲結構建立、從無到有手動建立,以及將已經建立的模板作為樣本建立。

如果您對青雲平臺還不太熟悉,或者對業務的資源需求不太瞭解,可以先從系統推薦的模板開始建立。

這裡系統推薦了幾種常見業務所需要的青雲平臺資源配置以及資源間的關係。

比如簡單的 Linux 主機叢集、公網負載均衡器的入口叢集、資料庫和快取的叢集、大資料叢集等等。

點選不同的模板,可以預覽它的拓撲關係,並檢視每一種資源的基本配置,還可以檢視到這個組合的資源價格。這裡的推薦模板是我們初始提供的,根據使用者的反饋和實際使用情況,我們會給出更多常見和入門的配置。

如果希望抽取當前的資源的屬性作為配置,並進一步複製出資源,可以從當前資源抽取模板。

抽取的物件是使用者名稱下的實體資源,如主機、路由器 / VPC、負載均衡器、共享儲存、資料庫和大資料平臺等。

硬碟、公網 IP、防火牆這些附屬資源不能單獨選擇,而是作為實體資源的關聯資源提取出來。

提取之後,可以繼續對該模板進行編輯,不影響被提取的資源。

資源編排的模板是跨區域共享的,使用者可以從某個區域的資源抽取一份模板,並將其在其他區域應用生成編排,就實現了跨區域複製資源結構。

若模板依賴的資源,例如自有映像在新區域不存在,可以先遷移映像。

在熟悉資源編排功能之後,手動建立模板是最常用的建立方式。

在這裡可以根據構想的資源組合,從無到有生成資源以及資源之間的關係。

資源的組合遵循實際依賴關係,如私有網路必須掛載在路由器 / VPC 內,硬碟必須掛載在主機或 Virtual SAN / VNAS 下,公網 IP 只能繫結到主機、路由器 / VPC 或負載均衡器等。

對建立好的模板可以修改基本屬性,以及刪除操作。還可以基於該模板繼續建立新模板。

在模板列表右鍵,或詳情頁左側資訊區右上角操作列表,可以找到該按鈕。點選該按鈕,會進入模板編輯頁面,並將模板的配置匯入當前編輯的模板中。

模板編輯介面分為3個區域:選擇區、繪圖區、配置區,分別提供了資源選取、拓撲編輯、配置編輯的功能。

  • 資源支援幾乎所有的 IaaS/PaaS 資源和元件,用拖動的方式可以拖拽到繪圖區。

  • 繪圖區現實當前模板的拓撲結構,可以新增、刪除、複製資源、縮放拖拽繪布、重新整理、清空、檢視價格等;

  • 配置區可以看到選中資源的配置,並對它進行修改。模板資源之間的關係如埠轉發、負載均衡器後端等,透過提取配置,可以直接顯示在圖中。

建立好的模板,在編排模板列表中可以看到。

可以檢視模板的結構,基於模板新建,或者應用模板生成具有相同配置的一整套資源。

應用模板之後,系統開始按依賴關係建立資源。建立的過程,可以控制檯右上角的實時任務中看到。

如果資源較多,或者有層次和依賴關係,可能需要數分鐘或更多的時間,請耐心等待。

建立資源時如果配額不足、餘額不足或其他原因導致的失敗,整個建立過程回滾,階段性建立的資源也會回收。

以上是我們對資源編排的定義、作用、介面和控制檯功能做的介紹。

開始提到的服務編排的功能,後續我們會基於資源編排去提供。

另外,編排出的資源,對於使用者可以是一個業務檢視,這些檢視會提供新的展示方式和更豐富的圖形化互動,以便不同的使用者方便管理自己的資源和業務。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26916835/viewspace-2107000/,如需轉載,請註明出處,否則將追究法律責任。

相關文章