王玉琳 曹小靜 李智深 周春云
近幾年來,隨著信息技術(shù)的高速發(fā)展及現(xiàn)代化信息處理環(huán)境的復(fù)雜化,傳統(tǒng)信息系統(tǒng)變得越來越龐大,軟硬件之間、服務(wù)模塊間、前后臺之間緊耦合嚴(yán)重,導(dǎo)致信息系統(tǒng)擴(kuò)展性能差、重構(gòu)能力弱、升級改造困難,新功能開發(fā)或修改更加耗時。傳統(tǒng)的RPC架構(gòu)或SOA架構(gòu)已無法滿足各級各類信息系統(tǒng)適應(yīng)多樣化任務(wù)、快速更新迭代的需求。在信息系統(tǒng)需求升級的大背景下,開展國產(chǎn)微服務(wù)架構(gòu)關(guān)鍵技術(shù)研究已迫在眉睫,力求解決國產(chǎn)信息系統(tǒng)受國產(chǎn)基礎(chǔ)硬件平臺制約、運行效率低、交付擴(kuò)展及迭代能力不足等問題。
國產(chǎn)微服務(wù)基礎(chǔ)架構(gòu)技術(shù)是堅持國產(chǎn)自主可控發(fā)展路線,將國產(chǎn)信息系統(tǒng)中的不同模塊以微服務(wù)方式進(jìn)行拆分,每個微服務(wù)是獨立內(nèi)聚的業(yè)務(wù)邏輯,能夠單獨開發(fā)、調(diào)試、部署、運行及治理,每個服務(wù)運行在其獨立的進(jìn)程中,服務(wù)與服務(wù)間采用輕量級的通信機(jī)制互相協(xié)作。通過微服務(wù)與Docker技術(shù)相結(jié)合,將國產(chǎn)信息系統(tǒng)中的微服務(wù)編譯、部署、調(diào)測及升級演化成全自動化的工程,推動國產(chǎn)微服務(wù)基礎(chǔ)架構(gòu)的快速發(fā)展。國產(chǎn)微服務(wù)基礎(chǔ)架構(gòu)關(guān)鍵技術(shù)研究主要包含基于硬件混合架構(gòu)容器技術(shù)、容器化微服務(wù)開發(fā)標(biāo)準(zhǔn)等方面,并基于硬件平臺構(gòu)建微服務(wù)原型系統(tǒng)進(jìn)行關(guān)鍵技術(shù)驗證。
國產(chǎn)微服務(wù)基礎(chǔ)架構(gòu)關(guān)鍵技術(shù)研究采用“3層2域”,包括服務(wù)基礎(chǔ)環(huán)境層、微服務(wù)支撐層、剖分方法與典型應(yīng)用層,以及技術(shù)研究實施體系域與標(biāo)準(zhǔn)規(guī)范保障體系域,研究總體架構(gòu)如圖1所示。
服務(wù)基礎(chǔ)環(huán)境層采用容器技術(shù)實現(xiàn)國產(chǎn)龍芯、飛騰等混合硬件架構(gòu)資源的虛擬和池化,以容器形式提供混合架構(gòu)的微服務(wù)運行時環(huán)境。
服務(wù)支撐層主要由數(shù)據(jù)層、運行層、服務(wù)層組成。數(shù)據(jù)層為微服務(wù)訪問、交換、配置、運行提供數(shù)據(jù)共享同步、網(wǎng)內(nèi)融合與協(xié)同調(diào)度;運行層為微服務(wù)提供容器編排管理框架,支持容器管理與協(xié)同調(diào)度,具備迭代增量、快速交付能力;服務(wù)層以微服務(wù)為對象,提供動態(tài)協(xié)同交互能力,支持集中式、自組織協(xié)同等服務(wù)模式,并提供服務(wù)制作、注冊管理、編排組合應(yīng)用能力。
剖分方法與典型應(yīng)用層主要包括由剖分機(jī)制、剖分模型、剖分方法與剖分評價等,并結(jié)合典型應(yīng)用進(jìn)行關(guān)鍵技術(shù)驗證。
(一)基于混合硬件架構(gòu)的容器技術(shù)
通過在國產(chǎn)龍芯及飛騰平臺移植、適配Docker引擎,并對Docker存儲驅(qū)動進(jìn)行優(yōu)化,提供微服務(wù)運行時環(huán)境。在Docker移植適配方面,首先,在國產(chǎn)龍芯、飛騰等國產(chǎn)平臺上優(yōu)化GO編譯器;其次,選擇穩(wěn)定的Docker發(fā)行版,保證各國產(chǎn)平臺上接口的一致性;最后,移植Containerd、runC等組件,修改與平臺架構(gòu)相關(guān)的Golang代碼、結(jié)構(gòu)體定義和常量定義等,修復(fù)無法解析信號SIGEMT和部分龍芯、飛騰架構(gòu)兼容的問題,優(yōu)化Docker運行效率。在存儲驅(qū)動優(yōu)化方面,通過優(yōu)化地址映射、I/O攔截和緩存管理等機(jī)制解決國產(chǎn)硬件平臺上現(xiàn)有存儲驅(qū)動存在寫時復(fù)制操作粗粒度較大、冗余頁緩存、I/O性能較低等問題。首先,為了以較低開銷支持細(xì)粒度的寫時復(fù)制操作,地址映射機(jī)制采用兩級映射策略來支持兩種不同的虛擬塊大小,并針對不同的寫請求采用按需分配的塊分配機(jī)制,以實現(xiàn)高效的寫時復(fù)制操作;其次,為了有效地減少冗余I/O請求,冗余I/ O攔截提供了一個輕量級的攔截機(jī)制,可以準(zhǔn)確地檢測冗余I/O請求,并且支持從其它容器緩存而不是硬盤中讀取數(shù)據(jù);最后,基于有效的緩存監(jiān)控方法和回收策略,緩存管理機(jī)制可以顯著地減少緩存中的無用重復(fù)數(shù)據(jù),進(jìn)而達(dá)到提升緩存效率的目的。
(二)結(jié)合容器技術(shù)的微服務(wù)開發(fā)規(guī)范
通過研究容器運行機(jī)理與微服務(wù)特性,形成容器化微服務(wù)開發(fā)規(guī)范,支持兩者良好融合,實現(xiàn)微服務(wù)運維的一站式自動化,開發(fā)規(guī)范如下:
1.微服務(wù)原則:職能單一、低耦合與高內(nèi)聚、前后端分離、無狀態(tài)服務(wù)。
2.異常退出機(jī)制:服務(wù)提供異常退出機(jī)制,當(dāng)服務(wù)啟動失敗或異常時能夠正常退出。
3.長和短連接機(jī)制:應(yīng)用服務(wù)采用短連接訪問機(jī)制,特定情況下需要保持長連接時,應(yīng)用服務(wù)應(yīng)具備重連機(jī)制。
4.服務(wù)與客戶端IP解耦:應(yīng)用服務(wù)無法獲取到客戶端請求的源IP,不支持應(yīng)用服務(wù)對客戶端IP進(jìn)行檢測。
5.服務(wù)與本地IP解耦:應(yīng)用服務(wù)對外IP和本地IP代表不同的含義,不支持應(yīng)用服務(wù)將對外IP和本地IP進(jìn)行一致性檢測。
6.服務(wù)主程序前臺運行,不能以守護(hù)進(jìn)程方式運行:應(yīng)用服務(wù)主程序需要前臺運行,如果后臺運行則在容器啟動完成該程序后,認(rèn)為該程序執(zhí)行結(jié)束,容器將立即退出。
基于國產(chǎn)微服務(wù)基礎(chǔ)架構(gòu)關(guān)鍵技術(shù)研究成果,設(shè)計并構(gòu)建微服務(wù)原型系統(tǒng),系統(tǒng)由管理、計算、存儲等三類節(jié)點組成,部署拓?fù)淙鐖D2所示。
管理節(jié)點是系統(tǒng)的控制中心,負(fù)責(zé)管理和控制,接收用戶控制指令并負(fù)責(zé)具體執(zhí)行過程。管理節(jié)點采用集群式(至少3個節(jié)點)設(shè)計,避免單點故障,確保系統(tǒng)自身穩(wěn)定性。計算節(jié)點是執(zhí)行任務(wù)的負(fù)載節(jié)點,負(fù)責(zé)執(zhí)行管理節(jié)點分發(fā)的任務(wù)(以容器形式),并監(jiān)控容器的運行狀態(tài)。存儲節(jié)點為容器提供存儲空間,支持本地、共享等存儲方式,存儲節(jié)點為可選。計算節(jié)點可替代存儲節(jié)點,使用自帶硬盤提供存儲空間。管理節(jié)點之上也可以部署計算組件,既承擔(dān)管理職責(zé)又充當(dāng)計算節(jié)點的角色,實現(xiàn)管理節(jié)點資源最大化利用。
基于四臺龍芯服務(wù)器(CPU:龍芯3A3000處理器、雙路、8核,內(nèi)存:16GB,磁盤:1TB)和中標(biāo)麒麟服務(wù)器操作系統(tǒng)V5.0采用“3管理節(jié)點+4計算節(jié)點”部署模式構(gòu)建的微服務(wù)原型系統(tǒng),采用Iperf工具測試跨計算節(jié)點間容器網(wǎng)絡(luò)質(zhì)量情況,通過300組測試數(shù)據(jù)分析,虛擬化網(wǎng)絡(luò)傳輸速率折損率為1.23%,具體如圖3所示。
另外,使用Stress壓力測試工具分別將管理節(jié)點CPU負(fù)載達(dá)至20%、40%、60%、80%、90%,進(jìn)行30個高負(fù)載的200MCPU、200M內(nèi)存的測試容器創(chuàng)建、刪除操作,微服務(wù)原型系統(tǒng)運行正常。
通過研究于國產(chǎn)微服務(wù)基礎(chǔ)架構(gòu)關(guān)鍵技術(shù),設(shè)計微服務(wù)原型系統(tǒng),有效支撐國產(chǎn)信息系統(tǒng)的構(gòu)建。一方面在使得國產(chǎn)信息系統(tǒng)在復(fù)雜度可控的前提下,將系統(tǒng)的各個微服務(wù)分散運行于國產(chǎn)基礎(chǔ)硬件平臺之上,通過集群化思維可快速擴(kuò)充信息系統(tǒng)所依賴的基礎(chǔ)硬件平臺,提升信息系統(tǒng)的運行效率;另一方面使得國產(chǎn)信息系統(tǒng)具有良好的快速交付、升級擴(kuò)展、迭代重構(gòu)、容錯恢復(fù)以及自主可控等特性,保障國產(chǎn)信息系統(tǒng)的安全、可靠運行,滿足國產(chǎn)信息系統(tǒng)任務(wù)多樣化和快速更新迭代的需求。
作者單位:王玉琳、曹小靜、周春云 揚州萬方科技股份有限公司李智深 某部駐鎮(zhèn)江軍事代表室