• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Rancher的DevOps應(yīng)用于智慧校園的研究

      2022-01-11 09:42:28施曉權(quán)林平榮楊俊欽陳沛?zhèn)?/span>
      現(xiàn)代計算機 2021年32期
      關(guān)鍵詞:遺留代碼容器

      施曉權(quán),林平榮,楊俊欽,陳沛?zhèn)?/p>

      (廣州軟件學(xué)院軟件研究所,廣州 510900)

      0 引言

      隨著《教育信息化2.0 行動計劃》的頒布,中國教育信息化邁進了“2.0”時代。智慧校園作為教育信息化的更高級形態(tài),高校需要在此新時代的機遇與挑戰(zhàn)中,依托大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、區(qū)塊鏈等新興技術(shù),為智慧校園的建設(shè)提速?!丁笆濉眹倚畔⒒?guī)劃》明確指出,高校要把握技術(shù)變革趨勢,聚力建設(shè)智慧校園,推動教育智慧化轉(zhuǎn)型[1]。在智慧校園建設(shè)過程中,高校在教學(xué)、管理等方面演化出繁多的信息化系統(tǒng),隨著建設(shè)推進,系統(tǒng)規(guī)模也日益龐大[2]。為了滿足智慧校園的可持續(xù)活躍,需要持續(xù)的優(yōu)化迭代升級與運維來保障,而教育政策的變革、智慧校園系統(tǒng)日益頻繁變更的需求、新老技術(shù)的更新迭代,這些都需要龐大的變更和維護成本。此外,軟件開發(fā)與運維已經(jīng)進入容器時代,構(gòu)建環(huán)境容器化早已應(yīng)用于各大規(guī)模的項目中,連貫的工作流程和流水線也需要一種方便易上手的方案?;诖?,構(gòu)建一套既滿足發(fā)展需要,又能銜接陳舊系統(tǒng)的開發(fā)迭代方案對于智慧校園轉(zhuǎn)型是十分必要的。本文圍繞高校轉(zhuǎn)型智慧校園背景,提出基于Rancher 的DevOps 平臺,來降低開發(fā)迭代的成本,降低持續(xù)活躍的難度系數(shù),提高產(chǎn)品發(fā)布的容錯性,借助用戶反饋加速產(chǎn)品迭代,推進智慧校園建設(shè),促進高校教育信息化踏上新階段。

      1 Rancher簡介

      目前容器管理的標準是Kubernetes,Kubernetes 也被大多數(shù)的云廠商作為標準的基礎(chǔ)設(shè)施對外提供。Rancher 支持對所有的Kubernetes 集群進行集中化創(chuàng)建和管理,用戶可以通過Rancher 提供的UI 界面進行點擊操作即可管理Kubernetes 集群,不再需要執(zhí)行復(fù)雜的腳本命令。這為高校信息化系統(tǒng)上Kubernetes 提供了可行性。而Kubernetes 可以實現(xiàn)容器自動化部署、自動化擴容、自動故障遷移等,在各種信息化系統(tǒng)數(shù)量及規(guī)模日益龐大的智慧校園場景中,如果高校如果能夠基于Kubernetes構(gòu)建,其中的價值不言而喻。

      Rancher 是一款開源的企業(yè)級容器管理工具。Rancher 提供了在生產(chǎn)環(huán)境中使用的管理Docker和Kubernetes 的全棧化容器部署與管理平臺,主要由基礎(chǔ)設(shè)施編排、容器編排與調(diào)度、應(yīng)用商店和企業(yè)級權(quán)限管理四部分組成。Rancher 的運行僅需主機具有CPU、內(nèi)存、硬盤和網(wǎng)絡(luò)資源即可,并且可以運行在任何Linux 主機中,因此Rancher 可以運行在各種公有云或私有云上。此外,Rancher 的各種服務(wù)是通過容器化部署的,具有靈活的容器編排與調(diào)度機制和嚴密的企業(yè)級權(quán)限管理機制,這些讓Rancher 具備了通用、高可用和安全等特性。

      Rancher 由五層架構(gòu)組成。最底層是基礎(chǔ)的虛擬化環(huán)境,可以使用VMWEAR 搭建或者由各大云廠商提供;第二層是運行在虛擬化環(huán)境的各種Linux 主機;第三層是各種基礎(chǔ)硬件和網(wǎng)絡(luò)服務(wù);第四層是用戶管理、由Docker Swarm、Kubernetes 等各種容器編排管理工具組成的容器編排管理服務(wù)等;第五層是運行在容器上面的各種應(yīng)用。五層架構(gòu)說明如圖1所示。

      圖1 Rancher五層架構(gòu)說明

      2 基于Rancher的DevOps方案

      Meyer[3]提出實現(xiàn)持續(xù)集成系統(tǒng)的關(guān)鍵因素是版本控制和持續(xù)集成服務(wù)器。Armenise[4]提出Jenkins 可以實現(xiàn)持續(xù)集成和自動化的構(gòu)建,通過Jenkins 可以實現(xiàn)持續(xù)交付。張兆晨和羅鐵堅[5]在他們的基礎(chǔ)上,提出了一種基于Jenkins和Docker的CCI 持續(xù)集成系統(tǒng),提出代碼管理、持續(xù)集成和持續(xù)交付的一體化工作流方案。但并沒有實現(xiàn)容器的管理和部署編排工具, 缺乏可視化的用戶管理界面。在高校中,專業(yè)且職責(zé)單一的運維人員比較少,低門檻、高可用的運維平臺是高校運維人員優(yōu)先的選擇,因此,本文提出一種基于Rancher 的DevOps 方案,不僅可以達到一體化代碼管理、持續(xù)集成和持續(xù)交付,而且可以通過可視化的用戶管理界面進行容器編排管理、滾動發(fā)布,并實現(xiàn)了自動化部署、自動化擴容、自動故障遷移等,降低了運維的門檻和成本。

      基于Rancher 的DevOps 方案主要借助Gitlab、Jenkins、Maven、Nexus、Docker Registry 等工具,構(gòu)建高可用的自動化DevOps平臺。開發(fā)人員在編碼階段通過GitLab 版本管理工具對代碼進行版本管理,初次編寫完成后上傳到Gitlab,通過Jenkins 自動觸發(fā)構(gòu)建動作,DevOps 會自動拉取代碼,通過腳本使用Maven進行打包并上傳到Nexus私服上,之后執(zhí)行容器化部署操作,將最新的代碼打包成docker 鏡像,并發(fā)布到Docker Registry私服上,之后發(fā)布到Rancher 集群環(huán)境下的Kubernetes 上,通過Rancher 進行監(jiān)控服務(wù)狀態(tài),同時Jenkins 會將代碼發(fā)送到Sonar 進行審查,審查結(jié)果會通過Sonar 告訴開發(fā)人員,對存在隱藏Bug的地方,開發(fā)人員可以根據(jù)修改建議進行修正。開發(fā)人員對程序代碼進行迭代操作時,再次自動構(gòu)建時,DevOps 會自動再次執(zhí)行以上操作,唯一不同的是發(fā)布到的Kubernetes 上時是通過滾動發(fā)布的形式,會自動對服務(wù)逐個進行升級,不需要停止對外服務(wù)即可依次完成更新升級。運維人員可以進行指定版本代碼,打上標簽標記發(fā)布到生產(chǎn)環(huán)境,Rancher 會根據(jù)調(diào)度規(guī)則創(chuàng)建指定代碼的服務(wù),運維人員也可以根據(jù)Rancher 提供的可視化監(jiān)控界面,實時查看CPU 使用率、內(nèi)存使用率、磁盤壓力、Pod、Service 等各種的資源情況,根據(jù)實際需求情況在Rancher 對各服務(wù)進行調(diào)整?;赗ancher的DevOps方案如圖2所示。

      圖2 基于Rancher的DevOps方案

      3 遺留系統(tǒng)過度到DevOps方案

      在智慧校園的建設(shè)中,新的信息化系統(tǒng)采用新技術(shù)開發(fā),可以直接使用DevOps方案,但更多的需要考慮舊系統(tǒng)的改造,讓其平穩(wěn)過度到智慧校園中。教育信息化的發(fā)展過程存在階段性的差異,在教育信息化推薦的過程中,技術(shù)也在不斷的迭代更新,國內(nèi)高校在教育信息化初期發(fā)展過程中普遍對信息化認知不足,缺少頂層設(shè)計與規(guī)劃,導(dǎo)致信息化建設(shè)各項標準未能完全統(tǒng)一,各業(yè)務(wù)模塊之間存在壁壘,出現(xiàn)了各種“煙囪式”信息化系統(tǒng)[6]。為了迎合政策變化、需求變更,不斷在現(xiàn)有系統(tǒng)堆砌業(yè)務(wù),加上開發(fā)和運維人員流動、文檔缺失等因素,越來越多的系統(tǒng)逐漸演化成遺留系統(tǒng)(legacy system)[7]。應(yīng)用系統(tǒng)分散,業(yè)務(wù)不協(xié)調(diào),日積月累,導(dǎo)致大部分高校普遍存在“信息孤島”現(xiàn)象,嚴重阻礙了智慧校園發(fā)展的融合[8]。

      遺留系統(tǒng)對高校的發(fā)展決策具有重大意義,管理層可以利用數(shù)據(jù)分析、數(shù)據(jù)挖掘等新技術(shù)從遺留系統(tǒng)中挖掘出潛在的數(shù)據(jù)價值,為今后的發(fā)展決策提供寶貴的數(shù)據(jù)資料。隨著技術(shù)的發(fā)展,老技術(shù)不再適合現(xiàn)有的業(yè)務(wù)場景,也將逐步淘汰,相對應(yīng)的專業(yè)人才也逐步減少,這給遺留系統(tǒng)的維護、迭代帶來了一定的挑戰(zhàn)。在微服務(wù)、DevOps 技術(shù)還沒有出現(xiàn)之前,對遺留系統(tǒng)的遷移是舉步維艱,牽一發(fā)而動全身,不可能做到既能保持現(xiàn)有業(yè)務(wù)穩(wěn)健運行,又能逐步對遺留系統(tǒng)進行改造,而且對遺留系統(tǒng)的改造還需要耗費巨大的人力物力。DevOps 的出現(xiàn),讓遺留系統(tǒng)的改造具備了可行性。遺留系統(tǒng)過度到DevOps可以分為兩步走。第一步是數(shù)據(jù)遷移,遺留系統(tǒng)過度到智慧校園,必然是由新系統(tǒng)接替,但其積累的大量彌足珍貴的數(shù)據(jù)如何平穩(wěn)遷移到新系統(tǒng)是必須優(yōu)先考慮的,結(jié)合系統(tǒng)遷移的需求,可以采用縱向劃分的辦法,根據(jù)功能模塊對數(shù)據(jù)進行劃分,設(shè)計新的數(shù)據(jù)庫,再通過ETL 工具將數(shù)據(jù)遷移到新的數(shù)據(jù)庫,逐步的對數(shù)據(jù)進行遷移。在新系統(tǒng)沒有完全改造完成、停止舊系統(tǒng)使用前,新老數(shù)據(jù)庫同時使用,定時同步,確保數(shù)據(jù)的一致性。第二步是系統(tǒng)改造,大部分的遺留系統(tǒng)都是初期的信息系統(tǒng)演變而來,大多數(shù)是整體部署的項目,一個項目就一個工程,沒有按功能模塊劃分,所有的功能實現(xiàn)都放在里面,高度耦合,只能統(tǒng)一部署。對遺留系統(tǒng)的改造,可以根據(jù)現(xiàn)有的業(yè)務(wù)場景進行功能劃分,并選擇第一步劃分好所需要的數(shù)據(jù)庫,采用模塊化、按需逐步的開發(fā)方式,使用DevOps做到快速開發(fā),縮短改造的工期和所需的人力物力。

      通過以上的改造,無論是新老系統(tǒng),都可以在DevOps 上進行迭代開,做到系統(tǒng)之間的解耦,逐步使用新系統(tǒng)替換遺留系統(tǒng),通過Rancher 還可以做到系統(tǒng)的滾動升級,不需要停機也可以做到系統(tǒng)升級。后續(xù)如果需要對系統(tǒng)服務(wù)再次升級改造時,只需要選擇對應(yīng)的服務(wù)進行升級即可,這樣就可以做到業(yè)務(wù)和技術(shù)同時不斷迭代更新,不會再產(chǎn)生新的遺留系統(tǒng)。

      4 DevOps平臺搭建

      通過Vmwear 平臺,虛擬出一臺4 核8 G 的Centos7 主節(jié)點和兩臺4 核8G 的Centos7 從節(jié)點,構(gòu)建了基于Rancher 的DevOps 平臺。將基于Racher的DevOps應(yīng)用到智慧校園下的統(tǒng)一身份認證平臺和智慧校園建設(shè)中的智慧迎新項目(由迎新遺留系統(tǒng)迭代演變而來),驗證平臺的可行性。具體環(huán)境配置如表1所示。

      表1 環(huán)境配置

      通過Jenkins 安裝好Git、SonarQube Scanner、Shell 等相關(guān)的插件,構(gòu)建一個Maven 的項目,配置從Gitlab 拉取代碼并設(shè)置鉤子,當(dāng)開發(fā)人員提交代碼時會觸發(fā)鉤操作,在Jenkins定義構(gòu)建shell腳本,通過自定義腳本,對代碼進行編譯、打包,再通過Docker-compose 根據(jù)預(yù)先編寫好的Dockerfile 構(gòu)建程序的Docker 鏡像,完成后通過Post Steps 發(fā)送通知給Rancher,并將代碼發(fā)送到SonarQube 對項目代碼進行審查,SonarQube 會自動發(fā)送檢測報告郵件給提交者。Rancher 接收到Jenkins 的通知后,根據(jù)預(yù)先設(shè)定好的命令對容器進行更新啟動。雖然實驗過程遇到不少挫折,如安裝Rancher 集群時需要預(yù)先開放好端口或者關(guān)閉防火墻,否則集群會搭建失敗,Jenkins 搭建需要通過命令預(yù)先修改為國內(nèi)源,否則會在初始化階段失敗,導(dǎo)致搭建失敗,最終將兩套代碼部署到平臺上,部分構(gòu)建過程日志如圖3 所示,驗證了基于Rancher的DevOps的可行性。

      圖3 構(gòu)建日志

      5 總結(jié)

      基于Rancher 的DevOps 平臺在高校智慧校園建設(shè)過程中,為遺留系統(tǒng)的改造提供了可行性,節(jié)約改造成本,避免新遺留系統(tǒng)的產(chǎn)生,也讓新系統(tǒng)的開發(fā)可以高效交付,快速迭代。通過平臺實現(xiàn)容器化部署、自動化運維,統(tǒng)一部署環(huán)境,做到一次構(gòu)建到處運行,降低部署成本和人工參與的頻率,避免陷入瑣碎且易犯錯的盲區(qū)。通過平臺的實踐使用,為高校在智慧校園建設(shè)中搭建DevOPS和遺留系統(tǒng)的改造提供借鑒。

      猜你喜歡
      遺留代碼容器
      Different Containers不同的容器
      許林濤作品
      難以置信的事情
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      基于單片機控制的小孩遺留小汽車內(nèi)智能安全裝置
      電子制作(2018年11期)2018-08-04 03:25:46
      靜寂的故宮博物館
      歲月(2016年5期)2016-08-13 00:32:59
      天龍,遺留六百年的傳奇
      惠东县| 东莞市| 嵊泗县| 邯郸市| 开远市| 安龙县| 衡山县| 嘉黎县| 昌图县| 南昌市| 大渡口区| 舒兰市| 周至县| 南部县| 漯河市| 大竹县| 玛纳斯县| 昌图县| 罗平县| 北宁市| 柏乡县| 龙井市| 嫩江县| 城固县| 宿州市| 信丰县| 乌拉特后旗| 星子县| 神木县| 微山县| 肇源县| 攀枝花市| 微博| 万荣县| 六枝特区| 新沂市| 黑水县| 大港区| 依安县| 拜泉县| 古蔺县|