



[摘"要]文章旨在研究大型分布式數字管理平臺的構建思路,為創建支持超高并發、超大流量的大型在線教育平臺提供借鑒。從平臺的主體功能及受眾數量大分布廣等特點出發,較系統地提出從構建平臺需要的基礎設施、網絡架構到微服務的劃分、編排與部署,再到平臺前后端的架構設計思路。提出采用微服務架構部署職業教育大型分布式數字管理平臺,從而滿足超大并發、超大流量、超低時延等性能及功能需求,實現在線教育服務智能化敏捷部署和管理。
[關鍵詞]微服務;分布式;云;容器;Kubernetes
[中圖分類號]"G712;TP311
[文獻標識碼]"A""[文章編號]1008-4648(2024)04-0031-08
Design Ideas for the Architecture of Vocational Education
Digital Management Platform
Chao Xiaolin
(The Open University of Shaanxi,Xi’an 710065)
Abstract:Research objective: To study the construction ideas of large-scale distributed digital management platforms, and provide reference for creating large-scale online education platforms that support ultra-high concurrency and ultra large traffic. Research method: Starting from the main functions of the platform and the characteristics of a large and widely distributed audience, a systematic approach is proposed to design the architecture from the infrastructure and network architecture required for building the platform to the division, arrangement, and deployment of microservices, and then to the front-end and back-end of the platform. Results and Conclusion: A microservices architecture can be used to deploy a large-scale distributed digital management platform for vocational education, to meet performance and functional requirements such as ultra high concurrency, ultra high traffic, and ultra-low latency, and to achieve intelligent and agile deployment and management of online education services.
Keywords:Microservices ;Distributed;Cloud;Container;Kubernetes
引言
“數字化工作世界”的到來,致使全球許多傳統行業受到極大沖擊,其員工面臨轉崗和新技術的挑戰,我國也不例外。如何高度共享職業教育優質資源[4],幫助眾多的職業人在數字經濟浪潮中順利轉崗或再就業,成了職業教育的使命,也使職業教育更加趨于多元化、訂單化、實時化。這須要構建強大的職業教育師資庫、教學資源庫,并建立以就業為導向的健全的職業教育管理體系和管理機制[6,10],面向全國職業教育受眾實時采集其教育需求,針對不同的需求在師資庫中挑選有實力的師資動態組建教學團隊,設計教育教學任務并落實,才能滿足多元化、訂單化、實時化的職業教育培養目標。然而,全國職業教育受眾數量龐大,且受教者和有實力的施教者往往也分散于全國各地,如何暢通受教者、施教者和管理者的溝通渠道,使各方突破時空的限制,快速響應,高效溝通、協調運作,制定實施科學的教育教學方案及考評機制,筆者認為最好的辦法就是以云架構為基礎構建大型分布式數字管理平臺(以下簡稱“數字平臺”),將全國職業教育受眾、職業教育師資、職業教育管理組織(含職業教育相關政府部門、院校及社會培訓機構)、職業教育教學資源統一納管起來,實現數字平臺服務的超高可靠、敏捷部署、智能檢測和故障恢復等優良性能,并融合5G技術、大數據技術、VR/AR等新技術,使之賦能“數字平臺”,實現高效學習、高效管理。
一、“數字平臺”的架構選型
我國“東數西算”工程的實施,加上互聯網應用、5G應用的快速普及,云網融合及相關技術的迭代升級,已逐漸形成了能夠支持大型分布式服務平臺的較完整的生態系統,而且將更加完善,區域分布也將更加合理。一些大型互聯網和電商企業正在或已經轉向基于云的分布式微服務架構[3],以實現超高可靠、動態調度、彈性伸縮、實時監測及自動運維等,為“數字平臺”構建提供了借鑒。
“數字平臺”是為全國各地的所有職業教育受眾服務的,用戶數量龐大,而且需要提供海量的教學培訓資源,其中會有大量的視頻資源(包括越來越多的VR/AR等資源),數據流量巨大,決定了數字平臺應選用能應對超大流量和超高并發的基于云的分布式微服務架構,在全國范圍內多地云數據中心部署分布式服務節點(Distributed Service Node,DSN,可采用KVM虛擬機充當)[1],分別提供web服務和數據庫服務等,以實現平臺的高可用及負載均衡,同時將如視頻、音頻、圖片、HTML網頁等靜態資源就近緩存在內容分發網絡(即靜態資源服務器,Content Delivery Network,CDN)節點上[1],并使這些節點盡可能靠近它們所服務的最終應用,從而大大提升平臺整體服務效能。要采用基于容器云的分布式微服務架構部署“數字平臺”,首先需要部署能夠支持分布式微服務架構的分布式網絡基礎設施。
二、“數字平臺”的分布式網絡基礎架構構建思路
網絡技術的發展及其應用的快速普及伴隨著5G+的廣泛融入,在此過程中,網絡虛擬化技術和云網融合技術也在不斷迭代升級。尤其是基于以太網虛擬私有網絡(Ethernet Virtual Private Network,EVPN[1])的虛擬擴展局域網(Virtual Extensible Local Area Network,VXLAN)技術可以為分布式網絡架構提供很好的支持。VXLAN可以結合EVPN[1]技術實現在IP層之上的隧道封裝,實現跨三層網絡的大二層網絡(Overlay),從而實現異地多數據中心(IDC,或稱Cloud DataCenter)之間數據的快速轉發,還可以支持路由的控制平面,控制數據流在相應隧道的傳輸,從而實現網絡設備控制面與數據面的分離,實現網絡流量的靈活控制,這就為“數字平臺”實現IDC之間數據的高速轉發、備份及業務的高效處理成為可能。
基于以上分析,為了保證“數字平臺”的可靠性和可用性,本文建議在多地IDC部署多活服務節點DSN(可用KVM虛擬機或物理設備充當)并通過VXLAN+EVPN技術構建大二層虛擬網絡,實現多IDC服務節點之間的無縫連接,從而使分布在各IDC的服務節點可以共同構成服務集群,如圖1所示。在這種場景下,多個IDC的服務器就像在同一個二層網絡一樣可以實現IDC之間的數據同步、轉儲及服務遷移等。在此基礎上進一步定義數據轉發平面和路由控制平面并使二者解耦,通過應用層的服務網格(ServiceMesh)技術(常用產品如Nginx)實現負載均衡、遙測和安全等。要實現這些目標,網絡基礎架構必須支持良好的橫向擴展,并且可以很好地支持東西向流量,CLOS[1]網絡的特性則能夠很好的滿足這些需求。所以數字平臺的網絡底層(Underlay)可采用三層路由CLOS網絡,即骨干(spine)+葉子(leaf)的網絡結構,服務器均連接到Leaf上,Leaf再連接到Spine上,任意兩臺服務器之間都會有多條等價路徑,路由協議(如BGP)可以通過等價多路徑(Equal Cost Multi-Path,ECMP)來均衡服務器之間的流量,或使服務盡可能靠近用戶的實際應用,也可以通過增加Spine來增加可用帶寬,以便為微服務架構下可觀的東西向流量提供良好的支持,實現超大流量的低時延轉發。由于VXLAN+EVPN的隧道隔離性,也可以在一定程度上保障數據的安全。
三、“數字平臺”分布式微服務架構設計思路
微服務[1,3]即將一個龐大的應用系統按照功能相對獨立性劃分成若干較小的功能單元,每個單元能夠提供較小的服務,稱作微服務。由于微服務可以通過容器化(即制作成容器鏡像)實現應用與底層操作系統的解耦,這使微服務的容器鏡像表現出卓越的跨平臺的兼容性,能夠通過容器編排軟件在不同平臺實現微服務(體現為容器實例Containerd)的敏捷部署(通過pod[1]實現,pod可以由單個或一組容器封裝而成)。對于較大規模的應用系統可以將整個應用按照微服務的關聯程度劃分成不同的微服務組(即Containerd組),并將各Containerd組分別封裝成pod(同一個pod內的Containerd之間能夠相互快速調用),并通過容器編排軟件(目前最優秀的產品是Kubernetes[1,5])的管理節點(Master node)將pod組部署在多個DSN(即Worker node,可分布在異地)上,實現微服務的高可用。為了保證管理節點的可靠性,可采用雙Master節點(主備)部署,如圖2所示。
“數字平臺”服務地域廣泛,需要在多地部署DSN,并力求DSN接近實際應用。所以本文首先提出運用VXLAN+EVPN技術構建大二層網絡,然后在該場景下部署異地多活的DSN(即Worker node),并通過Kubernetes的Master node對各DSN中的微服務(容器)進行統一智能化管理(Kubernetes集群部署可參考圖2),同時應部署備份Master node以增強管理節點的可靠性。
“數字平臺”面對的受眾數量龐大,會引發超大連接、超大并發及海量數據流,部署分布式服務節點可以避免集中處理數據的巨大壓力,實現節點(node)之間的負載均衡或數據的就近處理。還可以進一步將“數字平臺”的應用程序拆分成多個子系統,并將每個子系統涉及的微服務(關聯度高)容器化,生成相應容器鏡像,然后將這些容器鏡像以子系統為組封裝為相對獨立的pod單元,并通過Kubernetes對pod進行多地多活的自動化敏捷部署、自動化按需擴縮容及微服務的快速遷移等管理,同一pod內部的各容器(微服務)之間可以通過虛擬交換機進行數據的快速交換,實現微服務的快速響應。
(一)“數字平臺”的微服務劃分及pod設計
由于“數字平臺”面對的全國職業教育受眾及施教者、管理者等職業教育相關各方數量龐大,且需要通過認證授權審計機制確保其行為的合規性、合法性,所以,可以將用戶管理作為相對獨立的子系統。主體業務功能上,“數字平臺”不僅要呈現形式多樣化、內容個性化的教育教學資源,以滿足全國職業教育不同受眾群的學習需求,還需要對教育教學活動和效果進行管理、考評,滿足職業教育各方溝通及管理的需求。另外,由于某些教學資源可能需要付費取得或有償提供給職業教育受眾,故平臺還應該具有收付費管理功能。因此,可以將平臺劃分為用戶管理子系統、教學資源子系統、教學管理子系統和費用收支子系統。這只是平臺的幾個主體功能,如果需要實現其他功能,可以類似地添加相應子系統。
基于以上子系統的劃分,可以將每個子系統的前后端分別作為微服務進行容器化,并將各子系統相應的容器封裝為pod。如圖3所示“數字平臺”微服務架構示意圖,可以將用戶管理、教學資源管理、教學業務管理、費用收支幾個業務子系統的web服務、緩存、數據庫服務分別容器化并以各子系統為單元封裝為相應的pod。然后通過Kubernetes將pod敏捷部署在異地多活的DSN(即Worker node),并根據訪問量、并發數對微服務進行彈性伸縮、負載均衡、動態監測和故障排除,保證微服務的高可靠性和高可用,從而實現科學高效的平臺架構管理和業務管理。面對來自“數字平臺”業務系統頁面的超大訪問量,可通過冗余的反向代理(如Nginx[1,2,3])調用pod中的web服務和數據庫等微服務,對于視頻、文檔、圖片等可以部署CDN加速訪問響應速度,如圖3所示。
(二)“數字平臺”的數據庫架構設計
如上所述,根據“數字平臺”不同業務的相對獨立性,將整個系統業務垂直劃分為“用戶管理子系統”、“教學資源子系統”、“教學管理子系統”和“費用收支子系統”各個子系統,則其數據庫也應對應地實行“分庫”管理,分別選用各自適用的數據庫管理系統(DBMS)來創建與管理業務相適的數據庫,分別存儲不同業務產生的數據,并盡量減少數據的耦合度,增強分布式數據庫部署的靈活性,實現將對同一系統的高并發訪問、海量數據存儲、超大流量分流到各個子系統,減輕服務器數據處理的壓力,提高數據處理的效率。“數字平臺”的數據庫分庫思路如圖3所示。
在數據庫產品的選擇上,用戶管理DB、教學資源管理DB、可以采用MySQL[2,3,7]或PostgreSQL數據庫,教學管理DB需要記錄較多日志信息,可以選擇MongoDB,費用收支DB可以選用ALISQL提升并發寫性能。對每個業務子系統,均可獨立構建NoSQL[8]+RDB(如Redis[9]+MySQL)的兩級數據庫,并分別容器化后作為pod中的微服務在全國范圍多點部署,以實現分解數據庫服務器工作壓力及業務就近高效處理和負載均衡的目的,當然這需要通過部署負載均衡器實現。
NoSQL+RDB即非關系型數據庫+關系型數據庫的兩級數據庫組織結構,可以使非結構化和不需要持久化的數據在緩存(如Redis)中得到快速處理,不需要落盤到關系型數據庫(如MySQL或PostgreSQL),僅把需要持久化的可結構化數據落盤到關系型數據庫中并在pod之外部署專用存儲器保障數據的安全。這樣,既可以簡化各種異構數據處理的復雜度,也可以充分發揮緩存的高效處理能力,使數據處理任務實現兩級負載分擔,可以大大減輕關系型數據庫的負擔。加上承載微服務的pod在全國范圍內的多節點分布式部署,可利用邊緣計算使來自全國范圍數量龐大的職業教育用戶就近實現數據訪問,從而保證數據訪問效率。
圖3也簡要表達了“數字平臺”數據庫的“分庫”管理思想,在項目實際設計實施時,可以根據實際需要對圖3所示微服務中的數據庫進一步進行“分庫”或“分表”,具體分解粒度需要結合實際并發數和吞吐量的大小等指標及未來發展規模來確定。
如上所述,“數字平臺”各子系統大多采用非關系型數據庫+關系型數據庫(NoSQL+RDB)的兩級數據庫組織結構,并以NoSQL+RDB的伴侶在各云數據中心進行多點分布式部署,可以實現對超大規模訪問量的負載分擔,每個節點還可以通過雙主雙備或雙主多備增加可靠性。所以,各子系統數據庫設計思路有一定的共性,但也有一些個性化的特點,分述如下。
1.用戶管理子系統
為保證整個“數字平臺”系統數據的有效性,該子系統要求所有平臺使用者首先要進行用戶注冊(個人或單位)、實名認證(個人)、提交和查驗相關資歷證明(個人或單位)。該子系統對于各類用戶以上過程中的臨時性數據或證書、證明等非結構化數據可采用NoSQL數據庫(如Redis)進行存儲和處理,并對證書、證明等體現用戶資質的重要數據進行持久化及備份處理;對于可結構化的用戶基本信息還需落盤到關系型數據庫中(如MySQL)。還可以根據實際需要對重要的資質證明利用MD5等算法計算其摘要再經過數字簽名存儲在MySQL中,以便判斷文件有沒有被篡改調換等,保證數據的完整性。該子系統可對不同類型用戶(如受教者、施教者個人或單位、以及管理者)的數據進行垂直分表存儲和管理,對數量可能上億級的職業教育受眾的數據可以進一步以云數據中心名稱為key實施水平分表管理,以避免用戶訪問量過大引發的檢索瓶頸爆發。為增加可靠性,每個云數據中心內可部署多node實現數據庫服務的雙主雙備或雙主多備實現讀寫分離、高可靠和負載分擔。
2.教學資源子系統
要面對全國職業教育受眾提供豐富的個性化的教學資源,一方面平臺需要自主開發大量視頻或文檔資源,另一方面應該整合多個互聯網教育教學平臺的現有資源,并定期將其他平臺的資源鏈接同步到“數字平臺”,為用戶提供統一的接入界面,讓用戶如在同一系統中查找、檢索和使用資源一樣。故該平臺應該按照資源的來源實行分庫管理,對于外來資源,以關系型數據庫(如MySQL)存儲資源所在位置(URL)等重要信息即可;對于自建資源,建議按資源類型(如視頻、文檔等)進行分別存儲,并分庫管理。對于自建視頻資源,需要用流媒體服務器提供相應服務。為提高數據處理效率,該子系統同樣可以用NoSQL+RDB的部署方式進行數據處理的負載分擔,資源數量可能接近檢索瓶頸時,還需要對數據進行水平分表處理,對于過時的訪問量極少的教學資源應及時進行遷移,以保證檢索效率。
3.教學管理子系統
該子系統主要實現用戶選課訂單的信息存儲與教學行為的統計分析,可按教學形式(線上、直播和集中培訓等)垂直分庫管理,也可在同一數據庫中按教學形式實施垂直分表管理。隨著業務量的累積,還需要對相應類型的訂單表實施水平分表以避免數據量過大導致檢索效率下降,每個節點的數據庫服務器均建議采用雙主多備實現讀寫分離,加強可靠性,實現負載分擔。同時可以利用MongoDB數據庫對學員學習行為相關數據進行結構化和統計分析,為教學質量監控[6]提供依據,并對訂單形成過程的協議、方案等進行存儲。該子系統數據量會隨時間線性增長,故對于久遠的歷史數據應及時遷移,避免因數據量過大引發數據訪問速率瓶頸。
4.費用收支子系統
對于付費資源或訂單,可以引進成熟的費用收支平臺,也可以自建相應的費用管理子系統。由于該平臺可能需要應對高并發寫操作,所以可以引進在這方面性能較優越的AliSQL數據庫。
以上各子系統均可能會因為某張或某些表數據量過大需要采取水平分庫分表來分散數據庫服務器的壓力,在這種場景下,就需要選擇支持分庫分表的中間件來通過路由(Sharding)選擇相應數據庫服務器。支持分庫分表的中間件主要有兩大類,一類是基于proxy架構(如Cobar和MyCat),另一類基于應用集成架構(如TDDL和Shark),可根據實際需要選用合適的中間件。其中Shark具備豐富、靈活的路由算法支持,執行性能高,提供一站式解決方案,易于實施和維護,可作為首選中間件。
(三)“數字平臺”應用層設計
1.網站主頁布局與基本要素
“數字平臺”應具有Logo、banner、導航欄(Navigator)、搜索引擎、內容區(Content)和版權欄(Bottom)等基本要素。作為面向全國職業教育受眾的大型分布式數字管理平臺,平臺主要頁面都應該呈現其專屬Logo;在主頁設置banner區域,并采用輪播的方式推送一些熱門新技術的培訓廣告等;主頁導航欄應按各子系統分級列示其下的一些重要的子功能或子頁面鏈接;面對海量教學資源應通過搜索引擎為用戶提供高效的個性化的過濾服務;頁面主要區域應為內容區,該區域應該進一步按照欄目分為幾個版塊,分別顯示信息通告、熱門教學資源部分縮略圖及其鏈接、輔助鏈接等,熱門教學資源可進一步按大類分子版塊展示,同時提供“更多”鏈接供用戶瀏覽更多資源;版權欄可以提供備案信息、聯系信息等,為網站提供合法性驗證等信息?!皵底制脚_”主頁的基本架構可參照圖4。
2.主頁登錄、注冊與認證模塊設計
“數字平臺”作為職業教育管理者、施教者和受教者等各方的溝通平臺和職業教育教學管理平臺,所有用戶必須實名認證,故平臺主頁前端必須具有登錄、注冊及身份認證入口以確保單位和個人身份的合法性,后端關聯該子系統數據庫模塊,保障其行為的有效性。所以,平臺主頁header區應提供“登錄/注冊”鏈接,也可在內容區(Content)設置欄目。
3.主頁教學資源管理模塊設計
作為面向全國職業教育受眾的大型分布式數字管理平臺,需要為不同受眾提供個性化、訂單式的教學服務,應提供非常豐富的教學資源,所以不僅需要自主開發大量的學習資源(包括VR/AR資源等),也需要整合其他平臺(如中國大學MOOC、智慧職教等)的教學資源。對于海量的教學資源,建議在主頁banner或導航條(Navigator)附近較顯眼的位置設置搜索引擎,通過高級搜索引擎提供統一的資源檢索及訪問入口。為了避免外來資源通過搜索引擎調用異常,還可在主頁內容區(Content)提供相應輔助平臺(如中國大學MOOC、智慧職教等)的鏈接,為用戶直接訪問相應平臺資源提供方便。除用搜索引擎進行教學資源的搜索外,建議同時按行業大類將實用性強、品質優良的熱點資源,通過主頁內容區(Content)分區呈現給用戶,同時提供“更多”鏈接供用戶瀏覽更多資源。
此外,除靜態教學資源外,還需要提供直播教學、云實驗室等資源為職業教育受眾提供實時的教學資源,這些資源可以使用第三方成熟產品,但至少應在平臺主頁提供鏈接。
4.主頁消息展示區設計
主頁內容區(Content)應設置消息展示區以及時發布培訓信息等通知或公告類信息,該區域應能夠滾動顯示以呈現更多消息。
5.教學管理模塊的主頁入口設計
平臺的教學管理模塊主要包括學員選課,購課,學習行為記錄、統計、考核等事務,以及創新教學團隊創建等,這些事務個性化強,具體操作界面不必直接展示在主頁,但主頁應提供進入該模塊的登錄等鏈接。
6.費用收支模塊的主頁入口設計
該模塊建議引用第三方的成熟產品,如支付寶等。該模塊具體操作應設置在子系統相關頁面,主頁可設置相關鏈接(如登錄、個人中心等)直接或間接調用相關頁面。
7.數字平臺的管理后臺設計
以上為“數字平臺”前端主頁設計框架,如圖4所示。除前臺設計外,“數字平臺”還應設計后臺管理頁面,包括后臺登錄頁面和各子系統的管理操作界面,為管理員進行用戶管理、教學資源管理、教學管理等提供方便。
(四)新技術賦能“數字平臺”
“數字平臺”作為用戶數量最多的超大型分布式職業教育平臺,應采用新的智能化的高性能的技術和工具實現相關業務的高效運作與管理,以提升職業教育質量。5G應用的推廣使海量數據、遠距離高清晰、低時延傳送成為事實,5G+VR/MR/AR更是可以實現遠程精細化交互操作,這使得遠程醫療也成為了事實,這些新技術也完全可以運用于遠程醫療教學、遠程護理教學及旅游、建筑、交通運輸等等交互性強且場景和教具獲取困難的遠程教學中,使教學內容變得直觀易懂,大大提升教育教學質量。還可以利用容器云技術+5G可以部署云實驗室,利用大數據技術為平臺采集職業教育受眾需求、統計學員學習數據等。這些新技術可以讓信息收集、信息傳送、場景部署、交互操作的實現更加方便、快捷、高效,在“數字平臺”構建中科學合理地采用新技術為其賦能,將會使“數字平臺”如虎添翼,整體大幅提升平臺的服務效能。
四、結語
職業教育大型分布式數字管理平臺的構建是一項規模龐大的系統工程,雖然作者從宏觀的基礎設施構建到微服務的劃分、部署再到平臺前后端的設計均作了一些探索和研究,并從網絡基礎設施平面、分布式資源調度的控制平面、數據轉發平面各層面提出了“數字平臺”的高可靠性設計思路,但這僅僅是最基本的思路,由于作者水平有限,并不能面面俱到,文中所述設計思路也或許存在爭議,故希望能得到相關領域讀者及專家的有益建議和批評指正。
[參考文獻]
[1]劉準,邢業平,朱華興,張晨.構建分布式服務云架構[M].北京:機械工業出版社,2022.
[2]張程.分布式系統架構技術棧詳解與快速進階[M].北京:機械工業出版社,2020.
[3]高翔龍.超大流量分布式系統架構解決方案[M].北京:電子工業出版社,2020.
[4]李萍,薛穎.數字技術賦能下的高校智慧學習系統建設路徑研究[J].陜西開放大學學報,2024 ,26 (03):5-9+67.
[5]夏麗娟,烏日娜,潘新.Kubernetes容器云編排系統的研究與實現[J].自動化應用,2023,64(14):224-227.
[6]李欣,孔令軍,賀禹.大數據背景下高校線上教學質量監控系統建設研究[J].陜西開放大學學報,2022,24(01):24-28.
[7]張仙妮. MySQL分區分表的設計及實現[J].北京工業職業技術學院學報,2023,22(03):14-18.
[8]李立猛.關系型數據庫與NOSQL數據庫的應用場景[J].電子技術與軟件工程,2022(16):184-187.
[9]王歡,李民,鄧秀輝,焦宇,余開朝.基于Redis緩存數據庫和Nginx負載均衡技術的購物網站性能優化[J].軟件導刊,2022,21(08):114-119.
[10]李從明.“互聯網+”背景下網絡考試平臺分析與設計[J].陜西開放大學學報,2022,24(04):30-36.
[責任編輯"李"帆]