汪 朋,姜紅玉,封 雷
(中國電子科技集團公司第十五研究所,北京 100083)
信息技術從出現伊始到漸成主流,其發展歷程經歷了軟件、開源、云三個階段。從軟件到開源,再到云,這也是信息技術的發展趨勢。容器技術日趨成熟,在應對微服務和系統集約化方面具有巨大優勢[1]。僅通過開源產品搭建并運維一個高可用、高度彈性化的平臺,進而實現近乎100%的可用性,難度可想而知。因此,在提供技術思路的同時,進一步提供整套云解決方案以保障不斷擴展的非功能需求,便成了當今新一代平臺的追求[2]。
隨著虛擬化技術的成熟和分布式架構的普及,用來部署、管理和運行應用的云平臺被越來越多地提及。IaaS、PaaS和SaaS是云計算的三種基本服務類型,分別表示關注硬件基礎設施的基礎設施即服務、關注軟件和中間件平臺的平臺即服務,以及關注業務應用的軟件即服務。容器的出現,使原有的基于虛擬機的云主機應用,徹底轉變為更加靈活和輕量的“容器+編排調度”的云平臺應用[2]。
容器技術作為一種比虛擬化更輕量的資源提供技術,受到業界廣泛青睞與應用,大大推動和簡化了軟件的開發、部署和運營。容器服務依托容器技術,通過整合軟硬件資源,以容器的形式向開發者/運營者提供應用的編排、部署、管理和監控等云服務。
云一般是指一個提供資源的平臺,云計算的本質是按需分配資源和彈性計算。云是指我們在哪里計算,而云原生指的是如何實現[3]。云原生應用被重點關注的地方,是讓應用能夠利用云平臺實現資源的按需分配和彈性伸縮。云原生還關注規模,分布式系統應該具備將節點擴展到成千上萬個的能力,并且這些節點應具有多租戶和自愈能力。
從本質上來說,云原生是一種設計模式,它要求云原生應用具備可用性和伸縮性,以及自動化部署和管理的能力,可隨處運行,并且能夠通過持續集成、持續交付工具提升研發、測試與發布的效率[4-10]。
Kubernetes是一個全新的基于容器技術的分布式架構領先方案[11]。Kubernetes是一個容器編排系統,基于容器技術,實現了資源管理的自動化,擅長無狀態的應用部署管理,在微服務領域起到了重要作用。Kubernetes對運行在其上的應用會進行實時狀態監控,當集群判斷出容器狀態異常時,可自動對應用進行重啟,保證業務穩定運行[12]。在云原生設計模式下,Kubernetes作為重要基礎設施,成為了云服務及應用交付的新底座。
面向數據處理與信息管理的云平臺系統是以先進的云平臺技術為基礎,集多源異構數據存儲管理和數據處理服務、在線信息云服務等于一體的基礎云平臺。將云平臺技術和數據處理與信息管理業務進行融合,使信息在存儲、大規模計算、深度數據挖掘等方面獲得云平臺技術的強力支撐,提升數據處理能力。
面向數據處理與信息管理的云平臺系統,以容器為核心,結合業務場景與云原生技術進行整體設計,旨在建立一個能夠讓高度分布式的應用程序可以在不斷變化的環境中運行的云平臺。
3.1.1 系統功能組成
面向數據處理與信息管理的云平臺系統由基礎云平臺系統、運維及安全管理系統、分布式信息存儲管理系統、信息處理插件支撐系統、信息在線應用支撐系統五個分系統組成,如圖1所示。

圖1 系統組成
(1)云平臺系統。
依托云平臺為上層業務系統提供資源統一管理,提供資源按需分配、系統托管和業務快速部署的能力[13-14]。云平臺系統提供節點資源、存儲資源的管理功能,主要包括:計算框架/數據庫服務、存儲服務、消息隊列服務。提供應用編排、應用調度管理、應用彈性伸縮管理、應用升級管理、軟件包/鏡像包生命周期管理等云應用管理功能。
(2)運維及安全管控系統。
基于云平臺提供了覆蓋硬件、網絡基礎設施和應用日志的基礎監控,以及基于上述數據和業務模型實現的分布式應用故障及性能管理工具,提供一個從問題發現、問題界定、問題定位、問題處置的故障全生命周期的管理平臺。
提供“統一安全服務框架”,為各應用提供一站式的可視化授權管理中心和統一的鑒權服務中心。即統一用戶、組織機構信息管理與查詢服務;統一身份認證;統一授權管理,并可支持分級授權管理;統一鑒權服務;統一日志訪問管理與安全審計。
(3)分布式信息存儲管理系統。
分布式存儲是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與存儲節點相連,設計目標是在通用、廉價的硬件平臺上構建大容量、高吞吐率和可伸縮性的分布式存儲架構[15-16]。
基于分布式存儲技術,實現分布式數據管理系統;構建多源信息的存儲組織模型,實現異構數據的存儲與管理;基于分布式并行事務處理框架實現海量數據高效查詢訪問功能。
(4)信息處理插件支撐系統。
基于云計算、虛擬化和并行處理技術,構建數據處理插件管理框架系統,支撐面向各業務接入集成,實現處理任務的并行化執行。
(5)信息在線應用支撐系統。
提供面向支撐用戶應用的平臺系統,在線服務運行環境提供對各類在線服務插件的支持,實現各類能力的網絡服務化訪問;集成框架提供自動處理和人機交互插件的集成應用軟件平臺,方便用戶各類插件的訪問;可視化框架提供面向信息顯示和海量大數據可視化的平臺,實現快速的數據訪問和多種數據可視化視圖。
3.1.2 系統部署形式
系統采用集群的模式進行部署,集群包含的機器根據用處不同被分配給不同的系統來使用,系統軟件的具體部署部位如圖2所示。

圖2 系統物理組成
將兩臺服務器分配為云計算節點,用于部署云平臺系統提供云平臺的基礎運行環境;將另外兩臺服務器分配為數據存儲節點,用于部署數據管理系統,為數據生產、服務提供數據存儲訪問環境;在上述環境上構建了處理云平臺部署處理插件系統,提供各類處理功能的虛擬化運行環境以及服務運行管理框架,實現處理功能的插件化、并行化運行;在其他虛擬化環境上部署應用支持系統及運維安全管控系統,實現系統必須的基礎功能。
3.2.1 技術體系架構
面向數據處理與信息管理的云平臺系統技術結構按照云+端和平臺+插件應用的架構思路,構建基于云計算與大數據的信息處理管理云平臺。數據處理云平臺負責提供多源、海量信息接入管理、融合處理、存儲等云服務;服務應用云平臺構建基于平臺+插件的一體化綜合應用服務框架,面向用戶提供信息綜合展現平臺,提供數據服務、分析服務、應用服務等插件功能。系統體系架構如圖3所示。

圖3 系統體系架構
3.2.2 功能體系
采用“共用平臺+數據+應用插件”的集成框架,整合各種業務數據等信息資源,在統一的共用平臺上組織管理和共享使用,實現資源統一管理、信息統一服務。在統一平臺下將數據服務對外發布,構建網絡服務云,實現數據柵格化信息服務能力,按需隨遇接入的各種應用終端,支持四類信息服務,包括共用支撐服務、軟件服務、業務功能服務和高級信息產品服務,形成“網絡服務云”+“應用終端”的服務體系。面向數據處理與信息管理的云平臺服務視圖如圖4所示。

圖4 系統服務視圖
共用支撐服務主要包括系統管理、資源管理、狀態監控、租戶管理、人員權限與角色管理等用戶使用的基礎性服務。
軟件服務主要包括集成框架、通用插件包、插件管理容器、云端應用平臺、集成規范等支撐應用系統構建和運行的服務。
業務功能服務主要由各類處理插件構成,分為平臺通用、處理基礎和處理專用插件三類。
高級信息產品服務包括各種業務數據等面向用戶的多樣化處理功能服務。
在線服務智能化管理調度技術是解決分布式網絡環境下多服務之間協同的問題,為建立高并發支撐能力、高性能、高可靠性在線信息服務系統奠定技術基礎,主要包括兩方面:
(1)在線服務智能化調度。
主要解決如何將分布式上的多個在線服務虛擬成一個邏輯上統一的“超級”云服務中心的問題,實現統一的在線信息服務管理平臺,實現對各個注冊的所有信息服務的虛擬化管理,以便支持服務的動態綁定、發現和替換,以及為用戶即時提供更能面向用戶業務領域的、種類更豐富的服務,達到信息服務的快速訪問與全局負載均衡效果。
在線服務智能化調度技術主要包括服務目錄、狀態監控、訪問控制、動態路由、服務發現及智能緩存等技術(見圖5),服務智能化調度的過程是:當客戶端發送訪問請求時,系統根據服務目錄搜索能夠滿足需要的所有在線服務,并監聽服務之間的多應用服務器集群的狀態,評估集群服務負載后,通過訪問控制來指派最優的微服務來執行[17],因服務擴充或服務器停止工作等各類原因導致服務節點發生變化時,網絡能進行發現服務、動態路由,為減少服務與應用終端的網絡負載,在應用終端采用智能緩存的方法實現本地化快速服務和離線條件下的應用保障。

圖5 在線服務智能管理調度技術原理圖
(2)信息服務虛擬化管理。
虛擬化管理是指將多應用服務器集群機制下的各類服務進行聚類、組合、封裝、轉換,生成新的適合用戶要求的虛擬服務,實現在線服務的聚合。
服務虛擬化指在不改變原有服務功能的前提下,對服務進行加工、抽象、轉換,生成新的適合用戶要求的虛擬服務。根據虛擬化層次的不同,服務虛擬化技術手段包括服務聚類技術、服務組合技術等。其中,服務內聚是將功能相同或者相似的服務抽象成具有虛擬特性的聚類服務;服務組合是將多個細粒度的服務組合成具有一定業務邏輯的粗粒度服務。
目前,部分業務信息處理周期長、服務能力單一,并且信息數據種類繁多,采集復雜,生產力量少而使用者眾多,基礎數據量龐大而更新頻率低、并發訪問數據量大、服務計算密度大的特點,基于云平臺提供的多級并行計算框架能力,使信息在存儲、大規模計算、深度數據挖掘等方面獲得IT技術的強力支撐。
云計算的分布式特性天然具備了并行計算的基礎條件,在設計數據處理功能過程中,需要充分利用云計算提供的能力實現業務處理效能的提升。首先在物理層面,云環境會將處理功能發布到多個實體物理機上運行,保證處理的并發和可靠性;在虛擬化層面,云平臺會根據任務配置情況開設合適數量的虛擬環境給每個處理任務,一個處理任務可以對應多個相同的處理插件服務同時進行處理工作,實現處理任務的多進程執行;在處理層面每個處理插件服務內部可以采用多線程模式進行數據內容單元的獲取,實現數據的并行訪問,而每個數據內容單元存儲在分布式環境中,可以保證數據獲取的多I/O訪問。海量數據分布式存儲融合接入各種海量業務數據類型,支持結構化和非結構化大數據的統一存儲管理,支持彈性擴容、大容量、高并發和高速一體化的數據訪問[18]。原理圖如圖6所示。

圖6 多級并行計算技術原理圖
該文結合某云平臺項目及測評報告,從基礎云平臺、集群計算能力驗證、并發任務調度、存儲資源調度、租戶生命周期管理、租戶資源隔離、數據加密傳輸、數據安全、數據存儲管理能力、數據吞吐效率、數據檢索性能測試等18項指標對該云平臺系統進行了分析總結,主要結果表明:
(1)單機群計算節點部署能力節點數量≥1 000個;
(2)自動化處理插件的并發調度處理流程個數≥100個;
(3)并發任務調度測試響應時間≤1秒;
(4)針對真實數據,萬兆網絡環境下,單節點不低于200 MB/s處理吞吐能力,簡單業務處理延時毫秒級;
(5)通過性測試項測試均為通過;
(6)有些數據處理插件運算耗時較多,需要進一步優化處理工具算法效率。
大多數開發者都是基于多個現有解決方案進行軟件開發的。即使是在開發一個新的軟件,可能也需要與那些現有的系統進行對接,而且已經運行的軟件幾乎都不是云原生的。云原生的絕妙之處在于它最終是由許多不同的組件組成的,即使其中一些組件的模式不是最新的,云原生的組件仍然可以與它們進行交互。即使你的軟件使用了舊的設計模式,應用云原生模式依然可以帶來立竿見影的價值。
該文針對數據處理與信息管理云化改造需求,從體系架構、關鍵技術等方面設計了一種面向數據處理與信息管理的云平臺,給出了框架、方法和技術。通過應用容器云技術,該平臺能夠自動部署集群、快速擴容計算空間,用于應對大型數據處理與信息項目面臨的計算量巨大、優化困難等問題。通過容器技術和立體化監控,可全方位監控各集群的資源整理利用率,方便了集群的管理和維護。并通過多集群間動態部署容器數量,實現靈活的水平擴展能力。研究證明,容器云技術有力保證了數據處理與信息管理云平臺的高自動化與高可用性,具有良好的應用前景,為云平臺系統的架構設計改造給出了參考。但考慮容器技術作為一個較新的技術,在推動容器技術的標準化和規范化、實現更多應用的重構及統管、構建統一化的服務組件等方面,仍需要持續關注和研究。