吉承文,馬 超,張鐵鋼,朱 淼
(海南電網(wǎng)有限責任公司信息通信分公司,海南 ???570203)
國家對信息化建設(shè)非常重視,電網(wǎng)企業(yè)初步建立了數(shù)據(jù)處理中心云計算平臺,提供基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)、軟件即服務(wù)(SaaS)三種服務(wù)模型[1]。云計算平臺的充分開發(fā)和應(yīng)用,將云計算服務(wù)逐漸應(yīng)用到電網(wǎng)企業(yè)生產(chǎn)活動中,有著重要的意義。
隨著電網(wǎng)業(yè)務(wù)功能的快速拓展,對應(yīng)用架構(gòu)提出了高內(nèi)聚、低耦合的要求。微服務(wù)架構(gòu)與容器虛擬化技術(shù)日趨成熟,滿足了這一需求。采用微服務(wù)架構(gòu)設(shè)計[2],運用基于容器技術(shù)的容器即服務(wù)(CaaS)服務(wù)模型[3],能快速構(gòu)建云平臺基礎(chǔ)設(shè)施和開發(fā)流程,實現(xiàn)自動化部署和發(fā)布,降低系統(tǒng)運維難度,有利于電網(wǎng)平臺的集成和擴展。
微服務(wù)是一項在云中部署應(yīng)用和服務(wù)的架構(gòu)技術(shù)。微服務(wù)架構(gòu)技術(shù)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具進行構(gòu)建[2]。微服務(wù)運行在各自隔離的環(huán)境中,是將業(yè)務(wù)功能進行細粒度劃分的結(jié)果。微服務(wù)之間的交流采用輕量級通信機制進行。
微服務(wù)架構(gòu)有別于傳統(tǒng)的單體式方案,也區(qū)別于傳統(tǒng)的SOA架構(gòu)。微服務(wù)架構(gòu)可將應(yīng)用拆分成多個核心功能,每個功能都被稱為一項服務(wù)。每一個微服務(wù)的構(gòu)建和部署運行是在各自獨立環(huán)境中的,這意味著各項微服務(wù)在工作和出現(xiàn)故障時,被隔離在自身的環(huán)境中,錯誤崩潰不會影響其他微服務(wù)業(yè)務(wù),最大程度地保證了系統(tǒng)穩(wěn)定與可靠。
虛擬化(Virtualization)是云計算技術(shù)的基礎(chǔ)架構(gòu)即服務(wù)層,其將各種資源如內(nèi)存、存儲、服務(wù)器及網(wǎng)絡(luò)等予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,提供資源的整合和數(shù)據(jù)資源按需分配,使得資源充分利用。
虛擬化技術(shù)能夠在一臺高性能服務(wù)器上構(gòu)建出多個虛擬操作系統(tǒng),最大化地利用硬件平臺所有資源。虛擬化是對用戶交付資源的一種呈現(xiàn)方式,交付給用戶的資源不再是物理實體,而是滿足用戶資源配置需求的邏輯資源[3]。
容器技術(shù)是虛擬化的服務(wù)器資源共享方式,可以按需構(gòu)建操作系統(tǒng)應(yīng)用實例。Docker是容器技術(shù)的典型應(yīng)用,圍繞Docker開發(fā)的眾多項目,如容器操作系統(tǒng)、開發(fā)平臺、開發(fā)工具、大數(shù)據(jù)、系統(tǒng)監(jiān)測等[5,6],主要使用Docker應(yīng)用程序接口來進行容器管理。
容器技術(shù)相較于虛擬機技術(shù),優(yōu)勢十分明顯。虛擬機將完整操作系統(tǒng)內(nèi)核進行了虛擬化。Docker容器是更加輕量級的解決方案,未使用虛擬機操作系統(tǒng)來實現(xiàn)資源和環(huán)境的隔離。容器技術(shù)與虛擬機技術(shù)的優(yōu)勢主要在于[5,6]:
(1)容器技術(shù)的抽象層更為簡單。Docker沒像虛擬機那樣將硬件資源虛擬化,容器內(nèi)運行的服務(wù)都是直接使用物理機底層資源,在利用CPU和內(nèi)存方面占據(jù)顯著優(yōu)勢。
(2)容器技術(shù)的輕量級、高性能、便捷性。Docker直接利用宿主操作系統(tǒng)的內(nèi)核,而不需要創(chuàng)建虛擬機操作系統(tǒng),能夠節(jié)省大量的時間和資源消耗。利用Docker技術(shù)很容易創(chuàng)建成百上千的容器。
Docker容器化管理架構(gòu)如圖1所示。最上層電網(wǎng)業(yè)務(wù)連接著Docker客戶端。運行在后臺的是Docker守護進程,通過Docker服務(wù)器模塊接收Docker客戶端的請求,在Docker引擎中處理請求,根據(jù)處理情況創(chuàng)建特定的作業(yè)并運行。Docker底層保證了PaaS層各Docker實例進程間的安全性與隔離性,Docker實例都在獨立空間內(nèi)運行。
在服務(wù)器上安裝Docker引擎,通過Docker將常用的應(yīng)用制作成鏡像,直接將業(yè)務(wù)參數(shù)配置完成,在發(fā)布和部署過程中大大提高效率。
圖1 Docker容器化管理架構(gòu)
海南電網(wǎng)數(shù)據(jù)中心云平臺的微服務(wù)框架是面向企業(yè)級集資源管理、微服務(wù)開發(fā)、服務(wù)治理和服務(wù)運維為一體的平臺,幫助業(yè)務(wù)開發(fā)和運維人員快速構(gòu)建和發(fā)布微服務(wù)應(yīng)用,提供多樣化的運維工具,保障服務(wù)的上線質(zhì)量。
微服務(wù)框架為企業(yè)構(gòu)建微服務(wù)應(yīng)用提供全生命周期管理,調(diào)用鏈跟蹤,數(shù)字化運營,資源管理等能力,同時兼容主流開源框架,低成本輕松接入。
微服務(wù)框架提供兼容SpringCloud的微服務(wù)開放框架,滿足服務(wù)注冊、服務(wù)調(diào)用、動態(tài)配置、服務(wù)鑒權(quán)、參數(shù)傳遞等功能。SpringCloud微服務(wù)框架原生應(yīng)用可無縫遷移到微服務(wù)框架平臺,同時兼容Dubbo等主流開源框架,通過簡單的Jar包替換,即可使用微服務(wù)框架服務(wù),使用“零”門檻。
微服務(wù)框架提供從創(chuàng)建應(yīng)用到運行應(yīng)用的全程管理,功能包括創(chuàng)建、刪除、部署、回滾、擴容、下線、啟動和停止應(yīng)用。微服務(wù)框架提供應(yīng)用分組來實現(xiàn)應(yīng)用的版本控制和灰度發(fā)布功能。
微服務(wù)框架提供構(gòu)建微服務(wù)所需的計算,網(wǎng)絡(luò),命名空間等資源的管理。微服務(wù)框架支持云主機和容器部署應(yīng)用,提供云主機和容器的創(chuàng)建、配置、銷毀等全生命周期管理。通過設(shè)定命名空間,可以將不同的命名空間的部署組內(nèi)的應(yīng)用進行隔離,例如可以將開發(fā)環(huán)境、聯(lián)調(diào)環(huán)境、測試環(huán)境的服務(wù)分別放到不同的命名空間中,實現(xiàn)三個環(huán)境相互隔離,互不影響。
微服務(wù)框架提供全面的監(jiān)控和分布式調(diào)用鏈分析工具,幫助用戶把握應(yīng)用上線后的運行狀況。用戶可以根據(jù)時間范圍和服務(wù)名等條件來查詢一組調(diào)用鏈。調(diào)用鏈詳情顯示了請求經(jīng)過每個服務(wù)的層次關(guān)系和耗時情況等信息。
電網(wǎng)系統(tǒng)業(yè)務(wù)規(guī)模大,業(yè)務(wù)用戶眾多,業(yè)務(wù)交互需求多樣化,采用微服務(wù)和容器框架不僅能讓多租戶共用一個應(yīng)用程序或運算環(huán)境,實現(xiàn)租戶間應(yīng)用程序環(huán)境的隔離和數(shù)據(jù)隔離,且增加多用戶使用云平臺的便捷性,完成電網(wǎng)數(shù)據(jù)的深度挖掘和價值利用。
本文研究將傳統(tǒng)業(yè)務(wù)系統(tǒng)架構(gòu)轉(zhuǎn)換成微服務(wù)架構(gòu)的系統(tǒng),提出多租戶模型,結(jié)合負載均衡、容錯管理和服務(wù)監(jiān)控技術(shù),用微服務(wù)技術(shù)將系統(tǒng)應(yīng)用解耦,用容器技術(shù)將系統(tǒng)功能獨立,充分提高系統(tǒng)可靠性。
基于微服務(wù)架構(gòu)的分布式系統(tǒng),其業(yè)務(wù)應(yīng)用需要更好的環(huán)境隔離,更細力度的計算資源隔離和調(diào)度能力,本文采用微服務(wù)與容器構(gòu)建多租戶服務(wù)平臺,如圖2所示。架構(gòu)上層提供主機、網(wǎng)絡(luò)及其他配套資源等基礎(chǔ)設(shè)施微服務(wù)。容器虛擬化資源服務(wù)是架構(gòu)底層,提供存儲、權(quán)限管理等綜合微服務(wù)。架構(gòu)的多租戶之間相互隔離,微服務(wù)相互獨立,數(shù)據(jù)開發(fā)和數(shù)據(jù)應(yīng)用自由。資源管理、數(shù)據(jù)服務(wù)、權(quán)限管理、監(jiān)控服務(wù)等由公共服務(wù)區(qū)的微服務(wù)提供。
圖2 基于微服務(wù)與容器的多租戶架構(gòu)
平臺是多租戶數(shù)據(jù)服務(wù)監(jiān)控及管理體系,為擴大平臺的適用和靈活應(yīng)用,多租戶數(shù)據(jù)微服務(wù)平臺應(yīng)具備以下特性:
(1)按需使用:租戶對資源或服務(wù)可以自助配置并自動化使用。
(2)廣泛接入:平臺支持與兼容多種設(shè)備、協(xié)議、接口和安全技術(shù),具備被廣泛訪問的能力。
(3)資源管理:實現(xiàn)多租戶資源池化和隔離。
(4)彈性擴展:自動、透明地擴展資源。
(5)用量統(tǒng)計:平臺要對租戶的實際使用或被授予資源能精確記錄。
(6)可恢復(fù)性:平臺服務(wù)要具備高可用和自愈設(shè)計,給租戶提供故障恢復(fù)能力。
微服務(wù)架構(gòu)和容器等技術(shù)逐漸發(fā)展成為較為領(lǐng)先的設(shè)計思想,本文探討了基于微服務(wù)與容器架構(gòu)在電力業(yè)務(wù)系統(tǒng)應(yīng)用。微服務(wù)架構(gòu)與容器虛擬化的服務(wù)組件提高了靈活性、可靠性。微服務(wù)架構(gòu)化的電力業(yè)務(wù)系統(tǒng)實踐,體現(xiàn)業(yè)務(wù)系統(tǒng)具有較好的交互性、可維護性和可擴展性。