• 
    

    
    

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

      基于容器技術的高校云數(shù)據(jù)中心設計與實現(xiàn)

      2021-03-12 05:25:45郭雯鄭霽王軍王輝
      中國教育信息化 2021年2期
      關鍵詞:容器

      郭雯 鄭霽 王軍 王輝

      摘? ?要:容器技術在互聯(lián)網(wǎng)時代得到了越來越廣泛的應用,高校云數(shù)據(jù)中心作為承載學校眾多信息系統(tǒng)運行的重要載體,需要全面了解并合理使用容器技術,以提高云平臺運行效率,為業(yè)務系統(tǒng)運行提供更加強有力的支撐。文章全面分析高校云數(shù)據(jù)中心建設需求,構建CaaS(Container as a Service)平臺為容器化應用提供全方位部署、運行、管理的支持。同時開放平臺PaaS(Platform as a Service)功能,結合DevOps理念構建開發(fā)、部署、測試一體化流程。實驗證明基于容器技術的高校云數(shù)據(jù)中心可以更好地滿足業(yè)務系統(tǒng)快速部署、升級迭代、彈性伸縮等各方面的需求。

      關鍵詞:云數(shù)據(jù)中心;容器;CaaS;開發(fā)測試一體化

      中圖分類號:TP311;TP393 文獻標志碼:A 文章編號:1673-8454(2021)03-0092-05

      一、引言

      隨著云計算技術的飛速發(fā)展,眾多高校利用虛擬化等技術將基礎硬件資源池化,建設私有云平臺,為校內的各業(yè)務系統(tǒng)提供虛擬機服務,在基礎設施層面有力地支撐了學校的信息化建設。但是這種IaaS(Infrastructure as a Service)的方式僅僅解決了硬件資源的快速供給與高效利用問題,業(yè)務系統(tǒng)軟件層面的部署仍然需要手動進行,從云平臺管理員提供虛擬機并配置操作系統(tǒng),到業(yè)務系統(tǒng)工程師安裝相關軟件并調試,系統(tǒng)部署時間長,重復工作量大。同時互聯(lián)網(wǎng)時代的應用面臨用戶需求頻繁變化和用戶規(guī)??焖僭鲩L的問題,因此對業(yè)務快速升級迭代、動態(tài)彈性擴展等方面提出了更高的要求。[1]虛擬機的業(yè)務系統(tǒng)在升級、擴容等方面的靈活性不足,升級速度慢且缺乏彈性等問題給整個運維工作帶來巨大挑戰(zhàn)。

      以Docker為代表的容器技術適應了互聯(lián)網(wǎng)時代應用的特點。[2]Docker作為一種輕量級的虛擬化技術,啟動快、體量小,可以將應用軟件、依賴包和所需環(huán)境打包成鏡像,發(fā)布到任何一臺安裝有Docker引擎的計算機上運行,極大程度地解決了業(yè)務系統(tǒng)內部的軟件依賴問題。很多科研人員研究如何將Docker技術應用于云平臺上,以實現(xiàn)資源的合理利用以及應用的快速構建、持續(xù)交付、靈活擴展、便捷運維等。何震葦?shù)萚1]提出了基于Docker技術的互聯(lián)網(wǎng)應用集群自動部署方案,以簡化復雜互聯(lián)網(wǎng)業(yè)務平臺的部署過程;楊清波等[3]分析了基于容器的調控云平臺的業(yè)務需求,并給出了基于Docker的調控云平臺的設計、實現(xiàn)及測試;張琦[4]構建了一套銀行系統(tǒng)內部的容器管理平臺,以支撐容器化應用運行管理,并實現(xiàn)DevOps開發(fā)測試一體化流程;文獻[5]-[7]研究了基于Docker技術的PaaS平臺構建;彭勇等[8]設計了一個基于Docker技術的云平臺系統(tǒng);應毅等[9]嘗試在高校實驗室等環(huán)境中應用Docker技術,但總體而言,高校領域的相關研究仍處于探索階段。

      二、高校云數(shù)據(jù)中心建設需求分析

      在IT技術飛速發(fā)展的大背景下,高校的信息化建設如火如荼。云平臺作為承載各大業(yè)務系統(tǒng)運行的基礎架構,它的價值最終是要通過業(yè)務系統(tǒng)來體現(xiàn)的,因此云平臺的建設要牢牢把握“以業(yè)務系統(tǒng)為中心”這一基本原則,以滿足業(yè)務系統(tǒng)在各個階段的需求為目標。

      1.業(yè)務系統(tǒng)快速部署的需求

      高校云數(shù)據(jù)中心的首要任務是承載業(yè)務系統(tǒng)的運行。目前,高校業(yè)務系統(tǒng)建設呈復雜化趨勢,單個系統(tǒng)所需的虛機數(shù)量從過去的1至2臺上升到現(xiàn)在的2至8臺,部分業(yè)務系統(tǒng),以合肥工業(yè)大學信息中心數(shù)據(jù)治理平臺為例,需要的虛擬機數(shù)目達到50臺。復雜的業(yè)務系統(tǒng)意味著更加復雜的軟件依賴關系與組件依賴關系,從虛擬機級別開始部署業(yè)務系統(tǒng),往往要耗費大量的時間安裝、調試、測試,不符合應用快捷交付的需求。容器技術很好地解決了業(yè)務系統(tǒng)對軟件運行環(huán)境的依賴問題,同時可以很好地描述業(yè)務系統(tǒng)不同組件之間的依賴關系,支持業(yè)務系統(tǒng)一鍵式部署,可以預見不久的將來會有越來越多的業(yè)務系統(tǒng)選擇容器的方式發(fā)布。因此高校的云平臺必須開始著手打造高效的、高可用的容器資源池,做好全面支持容器化應用的準備。

      2.業(yè)務系統(tǒng)彈性伸縮的需求

      互聯(lián)網(wǎng)時代的應用往往面臨著突發(fā)流量的問題,高校內的業(yè)務系統(tǒng)也不例外,學生選課、視頻點播等都有可能造成業(yè)務流量的瞬時激增,為業(yè)務系統(tǒng)帶來極大的壓力。目前常見的解決方案是在負載均衡設備后掛載多臺用于分擔業(yè)務流量的APP虛擬服務器。這樣做的缺點是,當平時業(yè)務量小時,造成資源的閑置與浪費;當業(yè)務量持續(xù)增加超過負荷時,需要人工增加虛擬機并添加到負載均衡系統(tǒng)中,操作復雜且滯后,無法滿足處理瞬時激增流量的需求。容器技術區(qū)別于虛擬機技術的一大特點是前者實現(xiàn)的是進程級別的隔離,容器不需要模擬一套自己單獨的虛擬硬件和操作系統(tǒng),因此容器具有體量小啟動快的特點。高校云平臺可以充分利用容器的這個特點,實現(xiàn)業(yè)務系統(tǒng)服務器規(guī)模的按需擴展與縮減。

      3.業(yè)務系統(tǒng)便捷運維的需求

      業(yè)務系統(tǒng)在運行過程中經常面臨排錯、升級更新等操作。現(xiàn)有的基于虛擬機的云平臺在處理這些需求時往往顯得比較吃力,例如生產環(huán)境中報的錯難以在開發(fā)測試環(huán)境中重現(xiàn)、升級操作常常需要停機來進行、新版本軟件出現(xiàn)問題很難回滾到上一版本等。容器技術的使用可以最大限度減少開發(fā)環(huán)境、測試環(huán)境與生產環(huán)境之間的差異,同時支持灰度更新和回滾等操作,為業(yè)務系統(tǒng)的運維提供便捷。

      4.業(yè)務系統(tǒng)開發(fā)測試一體化的需求

      隨著信息化建設的推進,高校業(yè)務系統(tǒng)的建設也越來越復雜,很多時候單純購買的軟件已無法滿足需求,很多業(yè)務系統(tǒng),如教務系統(tǒng)、數(shù)據(jù)治理平臺等,都需要結合學校的現(xiàn)狀進行個性化定制開發(fā)。這會是一個持續(xù)交付的過程,即部分軟件功能先行上線試運行,后續(xù)會不斷有新的模塊或功能加入進來,整個過程持續(xù)幾個月、一年甚至幾年。DevOps方法是目前軟件工程領域的熱點,與以往的瀑布模型或敏捷模型不同,該方法重視開發(fā)人員、測試人員與運維人員之間的緊密溝通合作,通過流程化的部署、測試、反饋等來實現(xiàn)快速的迭代發(fā)布。[10]高校云數(shù)據(jù)中心可結合DevOps理念,進一步發(fā)掘平臺PaaS功能,提供一套應用快速開發(fā)、測試、部署、運維管理、持續(xù)開發(fā)、持續(xù)集成的支撐環(huán)境。

      三、基于容器的高校云數(shù)據(jù)中心設計

      鑒于容器技術在業(yè)務系統(tǒng)開發(fā)、部署、運行等方面帶來的諸多益處,容器技術在高校云數(shù)據(jù)中心的應用已是勢在必行。基于容器技術的高校云數(shù)據(jù)中心設計應遵循高可用和易擴展的原則,即平臺核心節(jié)點要采用集群架構部署,一個實例宕機整個集群仍會正常運行;同時平臺可以輕松地以“搭積木”的方式擴充軟硬件等資源。此外容器作為當前最為火爆的開源項目,大量相關的技術及產品層出不窮。因此平臺建設者在設計之初要做充分的調研,選擇合適的主流技術作為自己的建設方案。

      1.容器關鍵技術

      Docker作為主流的容器技術近年來已經得到了充分的驗證與應用。同時容器的快速發(fā)展對容器的集群化管理提出了更高的要求。一方面,業(yè)務系統(tǒng)的體量越來越大,需要集群化的環(huán)境來支持其正常的運行和管理。另一方面,集群化的環(huán)境可以更好地滿足高可用等基礎需求。Docker Swarm、Mesos、Kubernetes等都是目前常見的容器集群管理框架。其中,Kubernetes是Google在2014年開源的一個容器集群管理系統(tǒng),簡稱K8S。K8S提供高可用高冗余的集群化管理模式,同時提供了容器編排、資源調度、彈性伸縮、部署管理、服務發(fā)現(xiàn)等一系列功能。K8S是目前運用最廣泛、主流的容器集群管理工具,也是本次云平臺設計中采用的技術方案。

      2.數(shù)據(jù)中心建設思路

      高??梢越Y合自身的特點和現(xiàn)有架構,按照循序漸進的原則,分階段將容器技術應用于自己的云數(shù)據(jù)中心。第一步是要搭建一個高可用的容器集群運行平臺。這種方式可以以最低的代價將容器先用起來,積累運維經驗。CaaS(Container as a Service)以容器為交付物,可方便地部署、運行容器化應用。隨著越來越多的應用以容器的方式開發(fā)和部署,這種CaaS方式的容器集群運行環(huán)境將發(fā)揮重要作用。第二步考慮開放平臺PaaS功能,即將平臺相關的功能作為一種服務,交付給最終用戶使用。PaaS作為IaaS和SaaS(Service as a Service)中間層面的一個概念,發(fā)展遠沒有另外兩者普及。容器技術的出現(xiàn)為PaaS的發(fā)展提供了重大機遇,容器與微服務架構和DevOps的高度契合使基于Docker容器技術的PaaS平臺成為可能。Paas平臺能力的開放與提升是一個逐步的過程,高校數(shù)據(jù)中心可結合自身運維平臺的特點,將持續(xù)集成服務作為目前打造的一個重點。

      3.CaaS平臺設計

      將容器技術應用于云數(shù)據(jù)中心的第一步是要打造CaaS(Container as a Service)平臺,其核心是一個高可用的容器資源池。容器資源池的底層硬件資源,可以部署在物理服務器或云平臺上,建議部署在云平臺上,因為這樣可以充分利用云平臺自身的高可用等特性。CaaS平臺主要由容器資源池、私有鏡像倉庫、可視化管理平臺和管理層幾部分組成,整體架構如圖1所示。

      (1)容器資源池

      容器資源池的技術層面采用“Docker + Kubernetes”組合。其中,Docker引擎負責單機環(huán)境下容器環(huán)境的建立,Kubernetes通過集群管理技術對集群中的Docker主機資源進行統(tǒng)一管理和容器的編排調度。

      K8S包括控制節(jié)點(Master Node)和工作節(jié)點(Worker Node)兩種關鍵組件。Master Node是容器調度的核心,所有發(fā)往容器集群的請求,如容器的創(chuàng)建、狀態(tài)的更改等,都經過Master Node的統(tǒng)一協(xié)調,集群狀態(tài)信息保存至數(shù)據(jù)庫,具體操作指令發(fā)送至Worker Node執(zhí)行。每個Worker Node都安裝有Docker引擎,并結合K8S自身的容器管理機制實現(xiàn)對容器主機的管理。

      容器資源池作為基礎架構平臺的核心,通過分布式集群來實現(xiàn)高可用性,關鍵節(jié)點,如控制節(jié)點、數(shù)據(jù)庫節(jié)點等都會起多個實例,一個實例出問題不會影響整個集群的運行;同時可以通過負載均衡技術實現(xiàn)流量在集群內不同實例之間的均勻分擔。當容器業(yè)務量逐漸增加,CaaS平臺會面臨需要擴容的情況。此時平臺管理員只需要向容器資源池增加Docker主機節(jié)點,即Worker Node節(jié)點,并納入Kubernetes環(huán)境統(tǒng)一管理。

      (2)私有鏡像倉庫

      私有鏡像倉庫用于存放各業(yè)務系統(tǒng)的容器鏡像及一些基礎容器鏡像,是高校云數(shù)據(jù)中心不可或缺的一部分。私有鏡像倉庫位于校園網(wǎng)或者云數(shù)據(jù)中心內部環(huán)境中,私密性更好,安全性更強,訪問效率也更高。這里我們采用的是Harbor鏡像倉庫,這是VMware開源提供的一個企業(yè)級鏡像倉庫。Habor在Docker 私有倉庫Registry的基礎上進行了企業(yè)級擴展,提供了用戶管理界面、基于角色的訪問控制等,能滿足高校云數(shù)據(jù)中心需求。

      (3)可視化容器管理組件

      Docker和Kubernetes大多通過命令行操作,技術門檻較高,容易造成誤操作,而且排錯非常困難。通過安裝可視化容器管理組件,如Dashboard,云平臺管理員可以通過網(wǎng)頁的形式來進行容器相關的基本操作,如容器的創(chuàng)建、啟動、關閉,容器網(wǎng)絡的配置,容器存儲資源的劃分,容器資源的限制,權限的分配以及一些簡單的容器運行狀況監(jiān)控等等,從而大大降低了管理難度,提高了管理效率。

      (4)監(jiān)控與日志組件

      監(jiān)控和日志組件是基礎資源平臺的重要組成部分。監(jiān)控組件的部署使管理員可以方便地跟蹤集群、容器乃至業(yè)務運行情況,如主機節(jié)點資源利用率、容器健康狀況、容器業(yè)務流量、業(yè)務系統(tǒng)容器副本數(shù)等各項指標;而日志的收集便于進行故障定位,并為平臺的各項統(tǒng)計分析提供基礎數(shù)據(jù)。常見的監(jiān)控與日志組件包括Prometheus + Grafana、Filebeat + ELK 等。

      4.持續(xù)集成服務功能設計

      基于容器技術的CaaS平臺為容器化應用提供了基礎運行環(huán)境,在此平臺的基礎上,以服務的形式開放更多的平臺功能,如數(shù)據(jù)庫服務、微服務治理框架、持續(xù)集成服務等,構成一個基礎的PaaS平臺,如圖2所示。

      基于CICD(Continuous Integration,Continuous Deployment,Continuous Delivery)的DevOps方法可以快速響應應用的各種需求變化,已成為互聯(lián)網(wǎng)時代應用開發(fā)和發(fā)布的最佳實踐。結合之前提到的業(yè)務系統(tǒng)開發(fā)測試一體化的需求,CICD服務在高校云數(shù)據(jù)中心會有著廣泛的使用場景??梢酝ㄟ^部署持續(xù)集成服務器,并將其與代碼倉庫、鏡像倉庫、容器資源池等組件做相關集成,來實現(xiàn)讀取代碼、往鏡像倉庫推送或讀取鏡像、部署鏡像至容器資源池等諸多操作,從而方便地協(xié)調業(yè)務系統(tǒng)開發(fā)測試相關流程。

      四、測試與驗證

      本次測試環(huán)境為合肥工業(yè)大學私有云平臺上的5臺虛擬機,用途與配置如表1所示。

      其中前3臺虛擬機組成一個基本的“Docker + Kubernetes”容器集群環(huán)境,第4臺為私有鏡像倉庫,第5臺為開發(fā)測試一體化功能提供服務。

      1.CaaS平臺功能驗證

      在容器環(huán)境下,業(yè)務系統(tǒng)通過一系列yaml文件來描述各組件的部署方式以及相互之間的依賴關系,這種通過配置文件部署的方式簡單易行,將部署時間由原來的若干天縮短為幾小時,而且部署完成后基本無須調試,可以直接運行,從而實現(xiàn)了項目的快速交付。為應用系統(tǒng)提供商節(jié)約了大量的人力成本,也減輕了云平臺管理員的工作量。

      同時,在容器環(huán)境下,業(yè)務系統(tǒng)的運維、快速交付等也變得更加便捷。表2記錄了業(yè)務系統(tǒng)在容器環(huán)境與虛擬機環(huán)境下各種運維項目的對比。

      當業(yè)務系統(tǒng)負載發(fā)生變化時,可通過手動和自動兩種方式調整業(yè)務系統(tǒng)中容器數(shù)目。手動方式是通過kubectl scale 命令調整 replicas 參數(shù)值;本次測試中我們通過調用Kubernetes HPA (Horizontal Pod Autoscaling)組件的方式動態(tài)調整,配置信息如圖3所示。

      其中最大副本數(shù)為10,最小副本數(shù)為1,當平均cpu使用率超過60%時開始擴容,反之,當cpu使用率小于60%時開始縮容。我們通過Apache ab壓測工具向Web應用發(fā)送HTTP請求,圖4記錄了業(yè)務并發(fā)量變化時容器副本數(shù)的變化。

      實驗結果顯示容器的數(shù)量可隨著業(yè)務量的變化而自動調整,從而達到良好的彈性伸縮的目的。

      2.持續(xù)集成服務功能驗證

      為了構建持續(xù)集成服務環(huán)境,我們在容器資源池上建立一套準生產的測試環(huán)境、一套生產環(huán)境,應用在兩套環(huán)境中的部署完全一致;兩套環(huán)境共享容器鏡像倉庫;同時部署一臺Jenkins服務器。Jenkins的Pipeline是目前持續(xù)集成方案的一個最佳實踐。Jenkins與底層的kubernetes做了集成,從而保證Jenkins服務器可以在測試或生產環(huán)境中部署應用。

      CICD服務流程(見圖5)如下:

      (1)對于在云平臺上開發(fā)的應用,Jenkins服務器從代碼庫獲取代碼并自動編譯;對于在云平臺部署的應用,Jenkins服務器從固定位置獲取編譯好的代碼;

      (2)Jenkins通過命令將代碼打包成為鏡像,并將鏡像上傳至鏡像倉庫;

      (3)準生產環(huán)境獲取最新的鏡像,測試人員進行相關測試;

      (4)測試通過,生產環(huán)境獲取最新的鏡像,業(yè)務最終上線。

      這種流水線的方式,最大限度實現(xiàn)了自動化,縮短應用從發(fā)布到上線的時間,實現(xiàn)了快速迭代、持續(xù)交付,大大提高了數(shù)據(jù)中心運維的效率。

      五、結束語

      本文分析了容器技術應用于高校云數(shù)據(jù)中心的必要性,并結合主流的Docker、Kubernetes技術設計了基于容器技術的CaaS平臺架構和開發(fā)測試一體化架構,實現(xiàn)了對平臺上運行的業(yè)務系統(tǒng)快速交付、彈性伸縮、便捷運維等的支持,最后通過實驗證明了設計方案的實用性和高效性。

      參考文獻:

      [1]何震葦,嚴麗云,李慧云等.基于開源PaaS技術的互聯(lián)網(wǎng)業(yè)務平臺自動部署方案[J].電信科學,2015,31(10):179-186.

      [2]陸鋼,楊新章,何震葦?shù)?電信運營商對容器技術的探索和思考[J].電信科學,2016,32(8):159-163.

      [3]楊清波,陳振宇,劉東等.基于容器的調控云PaaS平臺的設計與實現(xiàn)[J].電網(wǎng)技術,2020(6):2030-2037.

      [4]張琦.基于Docker的CaaS管理平臺架構研究與設計[J].計算機應用與軟件,2018(11):33-41,54.

      [5]師德清.基于Docker的PaaS架構設計研究[J].信息與電腦(理論版),2017(8):35-36.

      [6]王亞玲,李春陽,崔蔚等.基于Docker的PaaS平臺建設[J].計算機系統(tǒng)應用,2016,25(3):72-77.

      [7]張羿,胡永華,黃丁.基于Docker的電網(wǎng)輕量級PaaS平臺構建方案[J].信息與電腦(理論版),2017(11):75-78.

      [8]彭勇,謝劍,童遙等.一種基于Docker的數(shù)據(jù)中心云平臺實現(xiàn)方法及系統(tǒng)[J].中興通訊技術,2017,23(2):60-62.

      [9]應毅,劉亞軍,俞琰.利用Docker容器技術構建大數(shù)據(jù)實驗室[J].實驗室研究與探索,2018,37(2):264-268.

      [10]董昕,郭勇,王杰.基于DevOps能力模型的持續(xù)集成方法[J].計算機工程與設計,2018,39(7):1930-1937.

      (編輯:王天鵬)

      猜你喜歡
      容器
      容器倒置后壓力壓強如何變
      Different Containers不同的容器
      容器倒置后壓力壓強如何變
      人心像一個容器
      難以置信的事情
      怎樣量出4升水
      液體對容器底及容器對桌面的壓力和壓強
      考試周刊(2016年82期)2016-11-01 11:43:44
      直干藍桉容器育苗基質的選擇
      取米
      什么不見了
      孩子(2015年10期)2015-09-10 07:22:44
      旌德县| 乌什县| 华亭县| 衡南县| 民丰县| 砀山县| 吉林省| 丰都县| 隆化县| 大方县| 图们市| 商城县| 贞丰县| 乐至县| 大兴区| 会东县| 托里县| 旬邑县| 乐都县| 公主岭市| 永仁县| 布拖县| 云霄县| 苏尼特左旗| 德安县| 田东县| 蒙城县| 吴桥县| 三穗县| 静宁县| 龙海市| 贡觉县| 大石桥市| 湟中县| 长沙市| 策勒县| 莫力| 寿宁县| 麦盖提县| 突泉县| 威远县|