王家 龍冬梅
摘 ?要:隨著云計算技術的不斷發(fā)展,云原生應用已經(jīng)逐漸成為軟件開發(fā)領域一種主流的應用形式。高等院校在數(shù)字化建設過程中需要將分散的軟件和硬件資源進行整合,文章提出了一種針對高等院校教學事務的云原生平臺設計方案,命名為CNP-Edu,平臺能夠高效地部署開源云原生應用,為開發(fā)新的云原生應用提供軟件支持。CNP-Edu平臺結構簡單,易于維護,安全性高,便于擴展,為高校的云原生應用部署和管理提供了架構支撐。
關鍵詞:云原生;云原生架構;教學事務平臺
中圖分類號:TP311 ? ? 文獻標識碼:A ? 文章編號:2096-4706(2023)14-0012-04
Design and Research of University Digital Teaching Service Platform Based on Cloud Native Architecture
WANG Jia1, LONG Dongmei2
(1.Chengdu College University of Electronic Science and Technology of China, Chengdu ?611731, China;
2.Chengdu Jinhua Middle School, Chengdu ?610046, China)
Abstract: With the development of cloud computing technology, cloud native application has gradually become a mainstream application form in the field of software development. Colleges and universities need to integrate scattered software and hardware resources in the process of digital construction. This paper proposes a cloud native platform design scheme for teaching service of colleges and universities, named CNP-Edu (Cloud-Native Platform for Education). The platform can efficiently deploy open source cloud native applications and provide software support for the development of new cloud native applications. CNP-Edu platform has the advantages of simple structure, easy maintenance, high security and easy expansion, which provides the framework support for the deployment and management of cloud native applications in colleges and universities.
Keywords: cloud native; cloud native architecture; teaching service platform
0 ?引 ?言
近年來信息技術不斷發(fā)展,高等院校需要利用大數(shù)據(jù)、云計算、人工智能等技術建設智慧型的校園。同時教育部提出《教育信息化2.0行動計劃》,要求高校教學信息化覆蓋全體師生,其次高校的師生對于學校的辦公、教學、科研、生活等方面的高效和便捷性有了更高的要求[1]。而現(xiàn)狀是高校缺少能夠整合教學資源和信息技術資源的解決方案,本文提出了一套針對高等院校教學事務的云原生平臺設計方案,平臺命名為CNP-Edu(Cloud-Native Platform for Education),平臺能夠為師生提供數(shù)字化、網(wǎng)絡化、智能化的教學環(huán)境,不僅如此CNP-Edu還構建了一站式的教學資源、教學應用、科研開發(fā)的管理與服務平臺,為高校師生提供更加高效和便捷的信息服務,為高校提高教學質(zhì)量、提高教學資源利用率和教學服務能力提供基礎平臺的支持[2]。
CNP-Edu基于云原生設計理念,首先將高校的硬件資源通過該平臺進行整合,接著平臺為高效部署和安全運維提供基礎設施的支持,其次平臺可以滿足高校不同崗位人員對于信息化平臺的不同需求,科研人員可以使用平臺所提供的資源快速地部署開源項目的代碼,開發(fā)人員和學生可以使用代碼管理和DevOps服務開發(fā)新的云原生應用,教務管理人員可以使用平臺的管理功能對學校的日常事務進行管理,教務管理人員可以利用平臺的擴展功能與開發(fā)人員一起對現(xiàn)有功能進行二次開發(fā)。教師可以通過平臺上傳教學資源、批改學生的作業(yè)、錄入日常的學生的信息與學生進行交流,學生也可以通過平臺方便地獲取教學資源和信息服務[3]。
1 ?相關技術介紹
云原生是一種能充分利用云計算平臺的優(yōu)勢對應用服務進行設計、實現(xiàn)、部署、交付和運維的系統(tǒng)架構方法,它并不是簡單地使用云平臺運行現(xiàn)有的應用程序。云原生包含兩個層面的含義:應用程序在分布式云計算環(huán)境中運行,應用程序按照云平臺的彈性和分布式特性進行設計和運維[4]。
云原生平臺是為能夠開發(fā)、部署、運行云原生應用而設計和構建的針對云原生應用的服務平臺。云原生平臺由微服務技術、容器技術、聲明式API、DevOps技術、服務網(wǎng)格組成[5]。下面分別介紹五個技術的特點和作用。
微服務技術將一個應用程序拆分成許多小的服務,每個服務負責完成特定的功能。這些服務可以獨立部署,并且可以通過網(wǎng)絡調(diào)用來交互。微服務優(yōu)勢在于,它使得應用程序更容易擴展和維護。由于每個服務都是獨立的,因此可以更輕松地開發(fā)和部署新功能。此外,如果某個服務出現(xiàn)問題,只需要修復或重新部署該服務,而不需要重新部署整個應用程序。微服務還使得應用程序更靈活,因為它允許開發(fā)人員使用不同的技術棧來開發(fā)不同的服務。微服務在云原生平臺中起著重要的作用,使得應用程序更容易擴展和維護。
容器技術是云原生應用中的另一個重要概念。容器是一種輕量級的虛擬化技術,可以在單個操作系統(tǒng)內(nèi)運行多個應用程序。每個應用程序在容器內(nèi)運行并且可以使用容器內(nèi)的資源,不同應用程序之間是相互隔離的。容器技術的優(yōu)勢在于,它使得應用程序可以在不同的環(huán)境中輕松地運行。
聲明式API旨在使開發(fā)人員能夠使用簡單的聲明來描述所需的功能,而無須關注底層實現(xiàn)細節(jié)。聲明式API的主要作用是簡化開發(fā)人員的工作,使應用程序構建更加快速、高效和可維護性。
DevOps技術能夠提高軟件開發(fā)、測試和部署的效率。DevOps技術在云原生架構中起著重要的作用,可以幫助企業(yè)更快地構建和部署應用程序。DevOps技術主要通過自動化流程、持續(xù)集成和持續(xù)交付來實現(xiàn)效率提升的目標。
服務網(wǎng)格通常用于描述微服務網(wǎng)絡以及網(wǎng)絡之間的交互。服務網(wǎng)格好比一個小型的計算中心,它為計算設備提供一個集中部署的虛擬環(huán)境,為計算應用程序提供豐富的服務。服務網(wǎng)格借助于計算節(jié)點之間的數(shù)據(jù)包傳輸,為應用程序創(chuàng)建豐富的應用程序棧,并提供可靠的計算性能。服務網(wǎng)格被定義為一個專門的基礎設施層,用于管理服務與服務之間的通信,使其可管理、可見、可控制。
2 ?系統(tǒng)架構
如圖1所示,CNP-Edu平臺包括4個主要層次組成:基礎底座層,服務中心,應用中心,系統(tǒng)監(jiān)控層。每個層次又由若干模塊構成,下面分別介紹各個層次和模塊的作用和特點。
圖1 ?CNP-Edu平臺架構
基礎底座的作用主要是為了更好地整合高校的硬件資源,將分散在各個學院的硬件資源整合在基礎底座所在的虛擬數(shù)據(jù)中心?;A底座采用分布式的設計理念,通過OpenStack虛擬操作系統(tǒng)將分散在各個機房的服務器整合到一起,組成一個虛擬數(shù)據(jù)中心。通過Docker容器技術模塊與K8S自動編排模塊配合,為微服務提供相關的應用程序運行環(huán)境和管理接口。虛擬機為高校已有的應用遷移到平臺中提供了基礎支持,可以在不修改已有程序的情況下,將已有的網(wǎng)站和系統(tǒng)部署到CNP-Edu平臺中,并且使用平臺所提供的各項系統(tǒng)監(jiān)控和安全功能。
基礎底座為上層的服務中心和應用中心提供虛擬的運行環(huán)境。比如科研開發(fā)事務中心可以將Docker容器和虛擬機分配給學生和老師進行使用,服務中心的微服務也會運行在基礎底座所供的Docker環(huán)境中,系統(tǒng)監(jiān)控中心可以對當前基礎底座運行情況進行監(jiān)控和管理??傊?,基礎底座為CNP-Edu平臺整合了硬件資源提供了運行虛擬的環(huán)境。
服務中心主要提供云原生應用開發(fā)服務,包括源代碼管理,項目管理,持續(xù)集成等服務,為高校的科研人員和學生的項目開發(fā)提供公共的開發(fā)服務。服務中心通過Gitlab模塊提供源代碼管理,便于團隊開發(fā)過程中代碼共享和管理,Jenkins模塊提供代碼持續(xù)集成的支持,Maven項目管理模塊對開發(fā)任務的全周期進行管理。
應用中心包含6個模塊,教學資源中心包括常用軟件資源、期刊數(shù)據(jù)庫資源、圖書信息資源和校園網(wǎng)站資源。教學應用資源模塊集成了科研管理與服務,本科生培養(yǎng),學生管理與服務,心理教育管理,知識產(chǎn)權管理,就業(yè)管理與服務等資源,并且提供統(tǒng)一的接口,方便開發(fā)人員將相關應用集成到微信、釘釘、飛書等第三方平臺。教學辦事中心為學生提供網(wǎng)上選課、成績查詢、網(wǎng)上評教、成績錄入等教學事務的服務,為老師提供教務、科研、財務、國際交流等方面的服務[6]。
個人數(shù)據(jù)中心由個人數(shù)據(jù)服務、部門數(shù)據(jù)服務、綜合校情三個部分組成。個人數(shù)據(jù)服務可以查看教職工和學生的基本信息。部門數(shù)據(jù)服務包括學校各個院系和部門業(yè)務產(chǎn)生的數(shù)據(jù),形成數(shù)據(jù)資源目錄,可以系統(tǒng)地展示學校各部門的情況。綜合校情展示學校師資情況、科研情況、教學情況、招生情況、就業(yè)情況。
日程中心為用戶提供公開日程查看和個人日程管理服務,為學生推送課程表、院系活動、校內(nèi)講座等信息,教師通過平臺下發(fā)日程任務,平臺為學生推送日程信息并進行提醒,節(jié)省了教師和管理人員的時間和精力??蒲虚_發(fā)事務中心主要針對云原生平臺進行功能擴展,以及使用基礎底座服務提供支持。科研人員可以通過平臺申請硬件資源和軟件開發(fā)接口的資源,開發(fā)人員可以提交部署新的應用到云原生平臺中。
系統(tǒng)監(jiān)控包括三個主要的模塊,日志監(jiān)控提供故障恢復和運行狀態(tài)監(jiān)控的能力,資源監(jiān)控提供對資源的度量和監(jiān)控,服務監(jiān)控提供服務發(fā)現(xiàn)、負載均衡的能力。監(jiān)控模塊能夠有效地利用云原生平臺的資源,對當前資源要求較多的服務提供彈性的計算資源,對當前出現(xiàn)故障的服務進行恢復或者容錯。能夠按照當前系統(tǒng)的狀態(tài)自動完成相關的服務和應用的維護。
總之,CNP-Edu平臺能夠充分整合高校的IT資源,降低應用的運營成本,提高應用的安全性和擴展性。
3 ?案例驗證
為了驗證CNP-Edu平臺是否能夠協(xié)調(diào)使用平臺的各種角色,同時驗證平臺已有的功能是否能夠滿足系統(tǒng)擴展的需要,設計了以下校園停車場景案例。
基于CNP-Edu平臺開發(fā)校園停車的云原生應用的流程如圖2展示,參與案例的角色包括開發(fā)人員、科研人員、教務管理員、學生和老師。
首先教務管理人員提出基于CNP-Edu平臺的云原生校園停車應用的需求,需求包括老師和學生在校園內(nèi)停車時,自動識別車輛信息、自動管理當前車位狀態(tài)、通過第三方平臺完成車輛收費等功能。
校園停車需求通過科研開發(fā)事務中心提交軟件開發(fā)人員和科研人員,科研人員需要對車輛號牌的自動識別,車位當前使用情況的自動識別進行科研??蒲腥藛T首先需要利用基礎底座所提供的虛擬機和容器完成科研環(huán)境的搭建,接著完成自動識別號牌和車位信息的算法和模型的科研任務,最后將模型部署到服務中心,使得開發(fā)人員可以直接使用車輛號牌和車位狀態(tài)信息的云原生服務。
開發(fā)人員需要根據(jù)需求對系統(tǒng)進行設計,開發(fā)人員首先需要向服務中心申請所需要的服務,包括由科研人員開發(fā)的車輛號牌和車位狀態(tài)信息的服務、教師數(shù)據(jù)和學生數(shù)據(jù)接口服務、源代碼管理服務、項目管理服務,接著完成系統(tǒng)的后臺程序的開發(fā),同時前臺應用需要和第三方平臺,如微信進行綁定,從而完成自動收費功能,最后將后臺和前臺停車收費服務部署到服務中心。
圖2 ?開發(fā)案例流程圖
云原生校園停車應用開發(fā)和部署完成以后,教師和學生可以對相關的停車系統(tǒng)進行使用并且提供反饋意見,教務人員可以對停車收費系統(tǒng)進行管理,同時系統(tǒng)管理人員可以對提車服務的使用情況進行監(jiān)控,包括資源、日志、安全性等方面。如圖3所示展示了校園停車收費系統(tǒng)的后臺頁面,云原生應用能夠和CNP-Edu平臺完美融合。
通過案例展示了CNP-Edu平臺擁有良好的系統(tǒng)結構,能夠協(xié)調(diào)各種角色完成平臺的擴展,并且可以為開發(fā)任務提供硬件和軟件服務的支持,平臺也為云應用的高效監(jiān)控和運維提供了堅實的支持。
4 ?結 ?論
本文提出了CNP-Edu平臺,該平臺使用云原生架構設計理念作為基礎,能夠滿足老師、學生、教務管理人員、開發(fā)人員、科研人員對于高校教學信息化的不同需求,能夠充分整合高校的軟件和硬件資源,提高教學資源使用率,提高云原生應用開發(fā)效率、降低運營成本、提高運營的安全性。
參考文獻:
[1] 孫健,仇俊杰.云原生應用程序保護平臺(CNAPP)技術淺析 [J].中國信息安全,2022(5):56-58.
[2] 李萍.基于云原生架構的廣播電視智能融媒云平臺框架設計研究 [J].廣播與電視技術,2022,49(9):41-45.
[3] 萬曉蘭,李晶林,劉克彬.云原生網(wǎng)絡開創(chuàng)智能應用新時代 [J].電信科學,2022,38(6):31-41.
[4] 王文哲,安崗,吳健,等.一種支持云原生的工業(yè)互聯(lián)網(wǎng)業(yè)務管理平臺 [J].電信科學,2022,38(S1):203-213.
[5] 樊良優(yōu),姚小強,王剛,等.基于云原生的開放式指揮控制平臺構建技術 [J].航空兵器,2022,29(4):26-32.
[6] 劉軍.云原生技術下軟件教學模式的探索和實踐 [J].江蘇通信,2022,38(5):86-89+107.
作者簡介:王家(1982—),男,漢族,四川成都人,講師,碩士,研究方向:語音識別、深度學習、機器學習;龍冬梅(1986—),女,漢族,四川綿陽人,中學二級教師,本科,研究方向:人工智能、大數(shù)據(jù)分析。