汪 朋,姜紅玉,封 雷
(中國電子科技集團(tuán)公司第十五研究所,北京 100083)
信息技術(shù)從出現(xiàn)伊始到漸成主流,其發(fā)展歷程經(jīng)歷了軟件、開源、云三個(gè)階段。從軟件到開源,再到云,這也是信息技術(shù)的發(fā)展趨勢。容器技術(shù)日趨成熟,在應(yīng)對(duì)微服務(wù)和系統(tǒng)集約化方面具有巨大優(yōu)勢[1]。僅通過開源產(chǎn)品搭建并運(yùn)維一個(gè)高可用、高度彈性化的平臺(tái),進(jìn)而實(shí)現(xiàn)近乎100%的可用性,難度可想而知。因此,在提供技術(shù)思路的同時(shí),進(jìn)一步提供整套云解決方案以保障不斷擴(kuò)展的非功能需求,便成了當(dāng)今新一代平臺(tái)的追求[2]。
隨著虛擬化技術(shù)的成熟和分布式架構(gòu)的普及,用來部署、管理和運(yùn)行應(yīng)用的云平臺(tái)被越來越多地提及。IaaS、PaaS和SaaS是云計(jì)算的三種基本服務(wù)類型,分別表示關(guān)注硬件基礎(chǔ)設(shè)施的基礎(chǔ)設(shè)施即服務(wù)、關(guān)注軟件和中間件平臺(tái)的平臺(tái)即服務(wù),以及關(guān)注業(yè)務(wù)應(yīng)用的軟件即服務(wù)。容器的出現(xiàn),使原有的基于虛擬機(jī)的云主機(jī)應(yīng)用,徹底轉(zhuǎn)變?yōu)楦屿`活和輕量的“容器+編排調(diào)度”的云平臺(tái)應(yīng)用[2]。
容器技術(shù)作為一種比虛擬化更輕量的資源提供技術(shù),受到業(yè)界廣泛青睞與應(yīng)用,大大推動(dòng)和簡化了軟件的開發(fā)、部署和運(yùn)營。容器服務(wù)依托容器技術(shù),通過整合軟硬件資源,以容器的形式向開發(fā)者/運(yùn)營者提供應(yīng)用的編排、部署、管理和監(jiān)控等云服務(wù)。
云一般是指一個(gè)提供資源的平臺(tái),云計(jì)算的本質(zhì)是按需分配資源和彈性計(jì)算。云是指我們?cè)谀睦镉?jì)算,而云原生指的是如何實(shí)現(xiàn)[3]。云原生應(yīng)用被重點(diǎn)關(guān)注的地方,是讓應(yīng)用能夠利用云平臺(tái)實(shí)現(xiàn)資源的按需分配和彈性伸縮。云原生還關(guān)注規(guī)模,分布式系統(tǒng)應(yīng)該具備將節(jié)點(diǎn)擴(kuò)展到成千上萬個(gè)的能力,并且這些節(jié)點(diǎn)應(yīng)具有多租戶和自愈能力。
從本質(zhì)上來說,云原生是一種設(shè)計(jì)模式,它要求云原生應(yīng)用具備可用性和伸縮性,以及自動(dòng)化部署和管理的能力,可隨處運(yùn)行,并且能夠通過持續(xù)集成、持續(xù)交付工具提升研發(fā)、測試與發(fā)布的效率[4-10]。
Kubernetes是一個(gè)全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案[11]。Kubernetes是一個(gè)容器編排系統(tǒng),基于容器技術(shù),實(shí)現(xiàn)了資源管理的自動(dòng)化,擅長無狀態(tài)的應(yīng)用部署管理,在微服務(wù)領(lǐng)域起到了重要作用。Kubernetes對(duì)運(yùn)行在其上的應(yīng)用會(huì)進(jìn)行實(shí)時(shí)狀態(tài)監(jiān)控,當(dāng)集群判斷出容器狀態(tài)異常時(shí),可自動(dòng)對(duì)應(yīng)用進(jìn)行重啟,保證業(yè)務(wù)穩(wěn)定運(yùn)行[12]。在云原生設(shè)計(jì)模式下,Kubernetes作為重要基礎(chǔ)設(shè)施,成為了云服務(wù)及應(yīng)用交付的新底座。
面向數(shù)據(jù)處理與信息管理的云平臺(tái)系統(tǒng)是以先進(jìn)的云平臺(tái)技術(shù)為基礎(chǔ),集多源異構(gòu)數(shù)據(jù)存儲(chǔ)管理和數(shù)據(jù)處理服務(wù)、在線信息云服務(wù)等于一體的基礎(chǔ)云平臺(tái)。將云平臺(tái)技術(shù)和數(shù)據(jù)處理與信息管理業(yè)務(wù)進(jìn)行融合,使信息在存儲(chǔ)、大規(guī)模計(jì)算、深度數(shù)據(jù)挖掘等方面獲得云平臺(tái)技術(shù)的強(qiáng)力支撐,提升數(shù)據(jù)處理能力。
面向數(shù)據(jù)處理與信息管理的云平臺(tái)系統(tǒng),以容器為核心,結(jié)合業(yè)務(wù)場景與云原生技術(shù)進(jìn)行整體設(shè)計(jì),旨在建立一個(gè)能夠讓高度分布式的應(yīng)用程序可以在不斷變化的環(huán)境中運(yùn)行的云平臺(tái)。
3.1.1 系統(tǒng)功能組成
面向數(shù)據(jù)處理與信息管理的云平臺(tái)系統(tǒng)由基礎(chǔ)云平臺(tái)系統(tǒng)、運(yùn)維及安全管理系統(tǒng)、分布式信息存儲(chǔ)管理系統(tǒng)、信息處理插件支撐系統(tǒng)、信息在線應(yīng)用支撐系統(tǒng)五個(gè)分系統(tǒng)組成,如圖1所示。
圖1 系統(tǒng)組成
(1)云平臺(tái)系統(tǒng)。
依托云平臺(tái)為上層業(yè)務(wù)系統(tǒng)提供資源統(tǒng)一管理,提供資源按需分配、系統(tǒng)托管和業(yè)務(wù)快速部署的能力[13-14]。云平臺(tái)系統(tǒng)提供節(jié)點(diǎn)資源、存儲(chǔ)資源的管理功能,主要包括:計(jì)算框架/數(shù)據(jù)庫服務(wù)、存儲(chǔ)服務(wù)、消息隊(duì)列服務(wù)。提供應(yīng)用編排、應(yīng)用調(diào)度管理、應(yīng)用彈性伸縮管理、應(yīng)用升級(jí)管理、軟件包/鏡像包生命周期管理等云應(yīng)用管理功能。
(2)運(yùn)維及安全管控系統(tǒng)。
基于云平臺(tái)提供了覆蓋硬件、網(wǎng)絡(luò)基礎(chǔ)設(shè)施和應(yīng)用日志的基礎(chǔ)監(jiān)控,以及基于上述數(shù)據(jù)和業(yè)務(wù)模型實(shí)現(xiàn)的分布式應(yīng)用故障及性能管理工具,提供一個(gè)從問題發(fā)現(xiàn)、問題界定、問題定位、問題處置的故障全生命周期的管理平臺(tái)。
提供“統(tǒng)一安全服務(wù)框架”,為各應(yīng)用提供一站式的可視化授權(quán)管理中心和統(tǒng)一的鑒權(quán)服務(wù)中心。即統(tǒng)一用戶、組織機(jī)構(gòu)信息管理與查詢服務(wù);統(tǒng)一身份認(rèn)證;統(tǒng)一授權(quán)管理,并可支持分級(jí)授權(quán)管理;統(tǒng)一鑒權(quán)服務(wù);統(tǒng)一日志訪問管理與安全審計(jì)。
(3)分布式信息存儲(chǔ)管理系統(tǒng)。
分布式存儲(chǔ)是指文件系統(tǒng)管理的物理存儲(chǔ)資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過計(jì)算機(jī)網(wǎng)絡(luò)與存儲(chǔ)節(jié)點(diǎn)相連,設(shè)計(jì)目標(biāo)是在通用、廉價(jià)的硬件平臺(tái)上構(gòu)建大容量、高吞吐率和可伸縮性的分布式存儲(chǔ)架構(gòu)[15-16]。
基于分布式存儲(chǔ)技術(shù),實(shí)現(xiàn)分布式數(shù)據(jù)管理系統(tǒng);構(gòu)建多源信息的存儲(chǔ)組織模型,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的存儲(chǔ)與管理;基于分布式并行事務(wù)處理框架實(shí)現(xiàn)海量數(shù)據(jù)高效查詢?cè)L問功能。
(4)信息處理插件支撐系統(tǒng)。
基于云計(jì)算、虛擬化和并行處理技術(shù),構(gòu)建數(shù)據(jù)處理插件管理框架系統(tǒng),支撐面向各業(yè)務(wù)接入集成,實(shí)現(xiàn)處理任務(wù)的并行化執(zhí)行。
(5)信息在線應(yīng)用支撐系統(tǒng)。
提供面向支撐用戶應(yīng)用的平臺(tái)系統(tǒng),在線服務(wù)運(yùn)行環(huán)境提供對(duì)各類在線服務(wù)插件的支持,實(shí)現(xiàn)各類能力的網(wǎng)絡(luò)服務(wù)化訪問;集成框架提供自動(dòng)處理和人機(jī)交互插件的集成應(yīng)用軟件平臺(tái),方便用戶各類插件的訪問;可視化框架提供面向信息顯示和海量大數(shù)據(jù)可視化的平臺(tái),實(shí)現(xiàn)快速的數(shù)據(jù)訪問和多種數(shù)據(jù)可視化視圖。
3.1.2 系統(tǒng)部署形式
系統(tǒng)采用集群的模式進(jìn)行部署,集群包含的機(jī)器根據(jù)用處不同被分配給不同的系統(tǒng)來使用,系統(tǒng)軟件的具體部署部位如圖2所示。
圖2 系統(tǒng)物理組成
將兩臺(tái)服務(wù)器分配為云計(jì)算節(jié)點(diǎn),用于部署云平臺(tái)系統(tǒng)提供云平臺(tái)的基礎(chǔ)運(yùn)行環(huán)境;將另外兩臺(tái)服務(wù)器分配為數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),用于部署數(shù)據(jù)管理系統(tǒng),為數(shù)據(jù)生產(chǎn)、服務(wù)提供數(shù)據(jù)存儲(chǔ)訪問環(huán)境;在上述環(huán)境上構(gòu)建了處理云平臺(tái)部署處理插件系統(tǒng),提供各類處理功能的虛擬化運(yùn)行環(huán)境以及服務(wù)運(yùn)行管理框架,實(shí)現(xiàn)處理功能的插件化、并行化運(yùn)行;在其他虛擬化環(huán)境上部署應(yīng)用支持系統(tǒng)及運(yùn)維安全管控系統(tǒng),實(shí)現(xiàn)系統(tǒng)必須的基礎(chǔ)功能。
3.2.1 技術(shù)體系架構(gòu)
面向數(shù)據(jù)處理與信息管理的云平臺(tái)系統(tǒng)技術(shù)結(jié)構(gòu)按照云+端和平臺(tái)+插件應(yīng)用的架構(gòu)思路,構(gòu)建基于云計(jì)算與大數(shù)據(jù)的信息處理管理云平臺(tái)。數(shù)據(jù)處理云平臺(tái)負(fù)責(zé)提供多源、海量信息接入管理、融合處理、存儲(chǔ)等云服務(wù);服務(wù)應(yīng)用云平臺(tái)構(gòu)建基于平臺(tái)+插件的一體化綜合應(yīng)用服務(wù)框架,面向用戶提供信息綜合展現(xiàn)平臺(tái),提供數(shù)據(jù)服務(wù)、分析服務(wù)、應(yīng)用服務(wù)等插件功能。系統(tǒng)體系架構(gòu)如圖3所示。
圖3 系統(tǒng)體系架構(gòu)
3.2.2 功能體系
采用“共用平臺(tái)+數(shù)據(jù)+應(yīng)用插件”的集成框架,整合各種業(yè)務(wù)數(shù)據(jù)等信息資源,在統(tǒng)一的共用平臺(tái)上組織管理和共享使用,實(shí)現(xiàn)資源統(tǒng)一管理、信息統(tǒng)一服務(wù)。在統(tǒng)一平臺(tái)下將數(shù)據(jù)服務(wù)對(duì)外發(fā)布,構(gòu)建網(wǎng)絡(luò)服務(wù)云,實(shí)現(xiàn)數(shù)據(jù)柵格化信息服務(wù)能力,按需隨遇接入的各種應(yīng)用終端,支持四類信息服務(wù),包括共用支撐服務(wù)、軟件服務(wù)、業(yè)務(wù)功能服務(wù)和高級(jí)信息產(chǎn)品服務(wù),形成“網(wǎng)絡(luò)服務(wù)云”+“應(yīng)用終端”的服務(wù)體系。面向數(shù)據(jù)處理與信息管理的云平臺(tái)服務(wù)視圖如圖4所示。
圖4 系統(tǒng)服務(wù)視圖
共用支撐服務(wù)主要包括系統(tǒng)管理、資源管理、狀態(tài)監(jiān)控、租戶管理、人員權(quán)限與角色管理等用戶使用的基礎(chǔ)性服務(wù)。
軟件服務(wù)主要包括集成框架、通用插件包、插件管理容器、云端應(yīng)用平臺(tái)、集成規(guī)范等支撐應(yīng)用系統(tǒng)構(gòu)建和運(yùn)行的服務(wù)。
業(yè)務(wù)功能服務(wù)主要由各類處理插件構(gòu)成,分為平臺(tái)通用、處理基礎(chǔ)和處理專用插件三類。
高級(jí)信息產(chǎn)品服務(wù)包括各種業(yè)務(wù)數(shù)據(jù)等面向用戶的多樣化處理功能服務(wù)。
在線服務(wù)智能化管理調(diào)度技術(shù)是解決分布式網(wǎng)絡(luò)環(huán)境下多服務(wù)之間協(xié)同的問題,為建立高并發(fā)支撐能力、高性能、高可靠性在線信息服務(wù)系統(tǒng)奠定技術(shù)基礎(chǔ),主要包括兩方面:
(1)在線服務(wù)智能化調(diào)度。
主要解決如何將分布式上的多個(gè)在線服務(wù)虛擬成一個(gè)邏輯上統(tǒng)一的“超級(jí)”云服務(wù)中心的問題,實(shí)現(xiàn)統(tǒng)一的在線信息服務(wù)管理平臺(tái),實(shí)現(xiàn)對(duì)各個(gè)注冊(cè)的所有信息服務(wù)的虛擬化管理,以便支持服務(wù)的動(dòng)態(tài)綁定、發(fā)現(xiàn)和替換,以及為用戶即時(shí)提供更能面向用戶業(yè)務(wù)領(lǐng)域的、種類更豐富的服務(wù),達(dá)到信息服務(wù)的快速訪問與全局負(fù)載均衡效果。
在線服務(wù)智能化調(diào)度技術(shù)主要包括服務(wù)目錄、狀態(tài)監(jiān)控、訪問控制、動(dòng)態(tài)路由、服務(wù)發(fā)現(xiàn)及智能緩存等技術(shù)(見圖5),服務(wù)智能化調(diào)度的過程是:當(dāng)客戶端發(fā)送訪問請(qǐng)求時(shí),系統(tǒng)根據(jù)服務(wù)目錄搜索能夠滿足需要的所有在線服務(wù),并監(jiān)聽服務(wù)之間的多應(yīng)用服務(wù)器集群的狀態(tài),評(píng)估集群服務(wù)負(fù)載后,通過訪問控制來指派最優(yōu)的微服務(wù)來執(zhí)行[17],因服務(wù)擴(kuò)充或服務(wù)器停止工作等各類原因?qū)е路?wù)節(jié)點(diǎn)發(fā)生變化時(shí),網(wǎng)絡(luò)能進(jìn)行發(fā)現(xiàn)服務(wù)、動(dòng)態(tài)路由,為減少服務(wù)與應(yīng)用終端的網(wǎng)絡(luò)負(fù)載,在應(yīng)用終端采用智能緩存的方法實(shí)現(xiàn)本地化快速服務(wù)和離線條件下的應(yīng)用保障。
圖5 在線服務(wù)智能管理調(diào)度技術(shù)原理圖
(2)信息服務(wù)虛擬化管理。
虛擬化管理是指將多應(yīng)用服務(wù)器集群機(jī)制下的各類服務(wù)進(jìn)行聚類、組合、封裝、轉(zhuǎn)換,生成新的適合用戶要求的虛擬服務(wù),實(shí)現(xiàn)在線服務(wù)的聚合。
服務(wù)虛擬化指在不改變?cè)蟹?wù)功能的前提下,對(duì)服務(wù)進(jìn)行加工、抽象、轉(zhuǎn)換,生成新的適合用戶要求的虛擬服務(wù)。根據(jù)虛擬化層次的不同,服務(wù)虛擬化技術(shù)手段包括服務(wù)聚類技術(shù)、服務(wù)組合技術(shù)等。其中,服務(wù)內(nèi)聚是將功能相同或者相似的服務(wù)抽象成具有虛擬特性的聚類服務(wù);服務(wù)組合是將多個(gè)細(xì)粒度的服務(wù)組合成具有一定業(yè)務(wù)邏輯的粗粒度服務(wù)。
目前,部分業(yè)務(wù)信息處理周期長、服務(wù)能力單一,并且信息數(shù)據(jù)種類繁多,采集復(fù)雜,生產(chǎn)力量少而使用者眾多,基礎(chǔ)數(shù)據(jù)量龐大而更新頻率低、并發(fā)訪問數(shù)據(jù)量大、服務(wù)計(jì)算密度大的特點(diǎn),基于云平臺(tái)提供的多級(jí)并行計(jì)算框架能力,使信息在存儲(chǔ)、大規(guī)模計(jì)算、深度數(shù)據(jù)挖掘等方面獲得IT技術(shù)的強(qiáng)力支撐。
云計(jì)算的分布式特性天然具備了并行計(jì)算的基礎(chǔ)條件,在設(shè)計(jì)數(shù)據(jù)處理功能過程中,需要充分利用云計(jì)算提供的能力實(shí)現(xiàn)業(yè)務(wù)處理效能的提升。首先在物理層面,云環(huán)境會(huì)將處理功能發(fā)布到多個(gè)實(shí)體物理機(jī)上運(yùn)行,保證處理的并發(fā)和可靠性;在虛擬化層面,云平臺(tái)會(huì)根據(jù)任務(wù)配置情況開設(shè)合適數(shù)量的虛擬環(huán)境給每個(gè)處理任務(wù),一個(gè)處理任務(wù)可以對(duì)應(yīng)多個(gè)相同的處理插件服務(wù)同時(shí)進(jìn)行處理工作,實(shí)現(xiàn)處理任務(wù)的多進(jìn)程執(zhí)行;在處理層面每個(gè)處理插件服務(wù)內(nèi)部可以采用多線程模式進(jìn)行數(shù)據(jù)內(nèi)容單元的獲取,實(shí)現(xiàn)數(shù)據(jù)的并行訪問,而每個(gè)數(shù)據(jù)內(nèi)容單元存儲(chǔ)在分布式環(huán)境中,可以保證數(shù)據(jù)獲取的多I/O訪問。海量數(shù)據(jù)分布式存儲(chǔ)融合接入各種海量業(yè)務(wù)數(shù)據(jù)類型,支持結(jié)構(gòu)化和非結(jié)構(gòu)化大數(shù)據(jù)的統(tǒng)一存儲(chǔ)管理,支持彈性擴(kuò)容、大容量、高并發(fā)和高速一體化的數(shù)據(jù)訪問[18]。原理圖如圖6所示。
圖6 多級(jí)并行計(jì)算技術(shù)原理圖
該文結(jié)合某云平臺(tái)項(xiàng)目及測評(píng)報(bào)告,從基礎(chǔ)云平臺(tái)、集群計(jì)算能力驗(yàn)證、并發(fā)任務(wù)調(diào)度、存儲(chǔ)資源調(diào)度、租戶生命周期管理、租戶資源隔離、數(shù)據(jù)加密傳輸、數(shù)據(jù)安全、數(shù)據(jù)存儲(chǔ)管理能力、數(shù)據(jù)吞吐效率、數(shù)據(jù)檢索性能測試等18項(xiàng)指標(biāo)對(duì)該云平臺(tái)系統(tǒng)進(jìn)行了分析總結(jié),主要結(jié)果表明:
(1)單機(jī)群計(jì)算節(jié)點(diǎn)部署能力節(jié)點(diǎn)數(shù)量≥1 000個(gè);
(2)自動(dòng)化處理插件的并發(fā)調(diào)度處理流程個(gè)數(shù)≥100個(gè);
(3)并發(fā)任務(wù)調(diào)度測試響應(yīng)時(shí)間≤1秒;
(4)針對(duì)真實(shí)數(shù)據(jù),萬兆網(wǎng)絡(luò)環(huán)境下,單節(jié)點(diǎn)不低于200 MB/s處理吞吐能力,簡單業(yè)務(wù)處理延時(shí)毫秒級(jí);
(5)通過性測試項(xiàng)測試均為通過;
(6)有些數(shù)據(jù)處理插件運(yùn)算耗時(shí)較多,需要進(jìn)一步優(yōu)化處理工具算法效率。
大多數(shù)開發(fā)者都是基于多個(gè)現(xiàn)有解決方案進(jìn)行軟件開發(fā)的。即使是在開發(fā)一個(gè)新的軟件,可能也需要與那些現(xiàn)有的系統(tǒng)進(jìn)行對(duì)接,而且已經(jīng)運(yùn)行的軟件幾乎都不是云原生的。云原生的絕妙之處在于它最終是由許多不同的組件組成的,即使其中一些組件的模式不是最新的,云原生的組件仍然可以與它們進(jìn)行交互。即使你的軟件使用了舊的設(shè)計(jì)模式,應(yīng)用云原生模式依然可以帶來立竿見影的價(jià)值。
該文針對(duì)數(shù)據(jù)處理與信息管理云化改造需求,從體系架構(gòu)、關(guān)鍵技術(shù)等方面設(shè)計(jì)了一種面向數(shù)據(jù)處理與信息管理的云平臺(tái),給出了框架、方法和技術(shù)。通過應(yīng)用容器云技術(shù),該平臺(tái)能夠自動(dòng)部署集群、快速擴(kuò)容計(jì)算空間,用于應(yīng)對(duì)大型數(shù)據(jù)處理與信息項(xiàng)目面臨的計(jì)算量巨大、優(yōu)化困難等問題。通過容器技術(shù)和立體化監(jiān)控,可全方位監(jiān)控各集群的資源整理利用率,方便了集群的管理和維護(hù)。并通過多集群間動(dòng)態(tài)部署容器數(shù)量,實(shí)現(xiàn)靈活的水平擴(kuò)展能力。研究證明,容器云技術(shù)有力保證了數(shù)據(jù)處理與信息管理云平臺(tái)的高自動(dòng)化與高可用性,具有良好的應(yīng)用前景,為云平臺(tái)系統(tǒng)的架構(gòu)設(shè)計(jì)改造給出了參考。但考慮容器技術(shù)作為一個(gè)較新的技術(shù),在推動(dòng)容器技術(shù)的標(biāo)準(zhǔn)化和規(guī)范化、實(shí)現(xiàn)更多應(yīng)用的重構(gòu)及統(tǒng)管、構(gòu)建統(tǒng)一化的服務(wù)組件等方面,仍需要持續(xù)關(guān)注和研究。