亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Docker 的災(zāi)害信息發(fā)布網(wǎng)站群實驗研究

        2021-09-11 09:01:36楊旭明楊百一
        科學(xué)技術(shù)創(chuàng)新 2021年25期
        關(guān)鍵詞:環(huán)境

        楊旭明 李 忠 楊百一

        (防災(zāi)科技學(xué)院應(yīng)急管理學(xué)院,河北 三河 065201)

        隨著有關(guān)災(zāi)情監(jiān)測網(wǎng)站越來越多,造成部署和維護(hù)的Web 應(yīng)用呈現(xiàn)幾何級數(shù)增長,直接導(dǎo)致了兩個問題:一是在有限的資源條件下服務(wù)器的負(fù)載過重,響應(yīng)緩慢,資源浪費現(xiàn)象嚴(yán)重;二是不同的應(yīng)用程序所依賴的環(huán)境不一樣,如果把它們依賴的軟件都安裝在一個服務(wù)器上,不僅造成調(diào)試麻煩,而且可能出現(xiàn)沖突,給運維人員帶來繁重的不必要勞動。

        目前的信息技術(shù),雖然可以在服務(wù)器上創(chuàng)建不同的虛擬機,運行不同的應(yīng)用,但是虛擬機的開銷比較高。Docker 容器作為輕量級的虛擬機,是一個很好的工具,與傳統(tǒng)的虛擬機相比,容器更加輕量化、啟動的速度更快,在同樣數(shù)量的硬件設(shè)備中,可以部署更多的容器實例。Docker 作為一個軟件集裝箱化平臺,可以讓開發(fā)者構(gòu)建應(yīng)用程序時,將它與其依賴環(huán)境一起打包到一個容器中,然后容易地發(fā)布和應(yīng)用到任意平臺中。測試和運維人員可以直接部署軟件鏡像來進(jìn)行測試和發(fā)布,大大簡化了系統(tǒng)集成、測試和發(fā)布的過程。同時可以消除線上線下環(huán)境的差異,保證了應(yīng)用生命周期的環(huán)境一致性標(biāo)準(zhǔn)化,是災(zāi)害信息數(shù)據(jù)網(wǎng)站群部署的理想思路。

        1 Docker 容器技術(shù)

        1.1 傳統(tǒng)虛擬化與容器技術(shù)

        傳統(tǒng)虛擬機(virtual machine)就是帶環(huán)境安裝的一種解決方案,可以在一種操作系統(tǒng)里面運行另一種操作系統(tǒng),比如在Windows 系統(tǒng)上運行Linux 系統(tǒng)。應(yīng)用程序?qū)Υ撕翢o感知,因為虛擬機看上去跟真實系統(tǒng)一模一樣,缺點是資源占用多、冗余步驟多、啟動速度慢等。

        作為一種新興的虛擬化方式,Docker 跟傳統(tǒng)的虛擬化方式相比具有更多優(yōu)勢?;谌萜鬟\行的Docker 虛擬化技術(shù)并沒有虛擬一個完整的Linux 操作系統(tǒng),而只保留了應(yīng)用程序運行所必需的核心操作系統(tǒng)環(huán)境,具有啟動時間短、空間占用少、分發(fā)和復(fù)制方便、資源開銷少等特點,具備和傳統(tǒng)虛擬機一樣的隔離性和安全性。Docker 容器與傳統(tǒng)虛擬機對比如表1 所示。

        表1 Docker 容器與虛擬機之間性能對比

        1.2 Docker 工作原理

        Docker 最初實現(xiàn)是基于LXC 的一個開源項目,誕生于2013年初,使用Google 公司推出的Go 語言進(jìn)行開發(fā)實現(xiàn),對進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨立于宿主和其它隔離的進(jìn)程,因此也稱為容器。Docker 能夠自動執(zhí)行重復(fù)性任務(wù),例如搭建和配置開發(fā)環(huán)境,從而解放了開發(fā)人員。用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器。容器還可以進(jìn)行版本管理、復(fù)制、分享、修改,就像管理普通的代碼一樣。

        Docker 服務(wù)器端負(fù)責(zé)處理創(chuàng)建、運行、保存容器的作用,客戶端負(fù)責(zé)連接并控制服務(wù)端進(jìn)程,客戶端和服務(wù)端的守護(hù)進(jìn)程可以通過RESTful API 或 者socket 進(jìn)行進(jìn)程間通信。Docker的 核 心 組 件 包 括Client、Docker Deamon、Docker Container、Docker Images 和Docker Register,如圖1 所示。Docker 鏡像(image)是指包含文件系統(tǒng)、可執(zhí)行程序以及程序的相關(guān)依賴配置文件的軟件包,可移植和重復(fù)使用。Docker 倉庫(Docker Register)是用來存放鏡像的地方,可以把創(chuàng)建好的基礎(chǔ)鏡像保存在倉庫中,供其他開發(fā)和運維人員下載使用,避免反復(fù)構(gòu)建鏡像的麻煩。Docker Hub 是目前Docker 官方維護(hù)的一個公共倉庫,用戶可以直接下載鏡像來實現(xiàn)應(yīng)用。但是實際生產(chǎn)環(huán)境中,一般采用創(chuàng)建自己的私有倉庫,來實現(xiàn)鏡像的內(nèi)部共享。Docker 容器(Docker Container)是通過Docker 鏡像運行的實例,可以共享操作系統(tǒng)內(nèi)核,能夠迅速啟動,占用很少的計算和內(nèi)存資源。通過docker run 命令并指定一些參數(shù)完成容器執(zhí)行一些進(jìn)程服務(wù)。容器可以被啟動、停止、刪除等,而且每個容器之間具有安全的隔離空間。

        圖1 Docker 基本架構(gòu)

        2 基于Docker 的災(zāi)害信息網(wǎng)站群部署實現(xiàn)

        2.1 需求分析

        近年來,國家對各類災(zāi)害的監(jiān)測和監(jiān)控力度加大,對各類災(zāi)害信息發(fā)布提出了新的要求。本文以災(zāi)害信息網(wǎng)站群設(shè)計為例,研究網(wǎng)站群的快速部署和運維問題。災(zāi)害信息發(fā)布系統(tǒng)包括地震信息發(fā)布系統(tǒng)、疫情在線、社會力量參與災(zāi)后救援管理系統(tǒng)、智能災(zāi)害信息分析工場等。由于每個網(wǎng)站屬于不同的開發(fā)團(tuán)隊,而每個開發(fā)團(tuán)隊使用的開發(fā)環(huán)境可能不太相同,如表2 所示。由于實驗室環(huán)境僅提供兩臺云服務(wù)器可供使用,這就需要解決在有限的資源條件下,如何實現(xiàn)對信息網(wǎng)站群的快速部署和運維問題。

        表2 災(zāi)害信息網(wǎng)站群開發(fā)環(huán)境

        2.2 災(zāi)害信息網(wǎng)站群規(guī)劃部署

        2.2.1 服務(wù)器規(guī)劃

        本文采用一臺服務(wù)器作為Docker 服務(wù)器,一臺服務(wù)器作為數(shù)據(jù)庫服務(wù)器,實現(xiàn)應(yīng)用與數(shù)據(jù)分離的設(shè)計方案。同時Docker 服務(wù)器中的容器與數(shù)據(jù)庫服務(wù)器之間使用內(nèi)網(wǎng)進(jìn)行通信,如圖2 所示。其中在Mysql 數(shù)據(jù)庫中分別為每個網(wǎng)站項目創(chuàng)建自己的賬號和數(shù)據(jù)庫,具體規(guī)劃如表3所示。

        圖2 容器與數(shù)據(jù)庫訪問

        表3 服務(wù)器資源規(guī)劃表

        2.2.2 網(wǎng)站群容器化部署實現(xiàn)

        首先在服務(wù)器上安裝Docker 軟件,作為服務(wù)器端,再根據(jù)災(zāi)害信息網(wǎng)站群中的不同網(wǎng)站的開發(fā)環(huán)境,需要為每種開發(fā)環(huán)境分別構(gòu)建Docker 鏡像。下面以地震信息中心網(wǎng)站的容器化部署為例說明具體部署過程,如圖3 所示。

        圖3 網(wǎng)站容器化部署流程

        2.2.2.1 創(chuàng)建運行環(huán)境并完成Docker 鏡像的構(gòu)建。地震信息中心網(wǎng)站使用的Tomcat8.5.61 和Jdk1.8 運行環(huán)境,可以先從Docker Hub 公共倉庫中使用Docker pull 命令下載官方Tomcat8.5.61 鏡像,使用Docker run 命令運行該容器。進(jìn)入容器后,再為此容器安裝Jdk1.8 的運行環(huán)境,同時把網(wǎng)站所需的war 包通過宿主主機拷入到容器的tomcat/webapps 目錄下,并修改相應(yīng)的配置文件,實現(xiàn)對該特定網(wǎng)站鏡像的構(gòu)建。2.2.2.2 提交Docker 新鏡像并部署。對2.2.2.1 中構(gòu)建好的鏡像通過docker commit 命令提交為新的鏡像,使用docker run 命令重新啟動新的鏡像容器,并將容器中的8080 端口映射到宿主機的8002 端口上,實現(xiàn)地震信息中心網(wǎng)站通過http://宿主機IP:8002 的正常訪問。2.2.2.3 把Docker 鏡像上傳到私有倉庫。在Docker 服務(wù)器上創(chuàng)建一個本地私有倉庫用來存放鏡像文件,這樣可以把制作好的鏡像文件存到本地倉庫,以便供其他開發(fā)人員和運維人員直接下載使用。先通過Docker tag 命令把鏡像標(biāo)記為私有倉庫鏡像,然后再通過Docker push 命令把標(biāo)記號的鏡像上傳保存到私有倉庫中。

        3 系統(tǒng)測試

        Docker 技術(shù)具有持續(xù)集成、版本控制、可移植性、隔離性和安全性等特性,本文通過對其在某些方面的優(yōu)勢進(jìn)行系統(tǒng)測試,來進(jìn)一步驗證Docker 技術(shù)在災(zāi)害信息網(wǎng)站群中的使用價值。

        3.1 安全性與隔離性測試

        通過對每個容器的CPU、內(nèi)存和IO 資源進(jìn)行控制,可以避免某個容器因占用太多資源而影響其他容器乃至整個宿主機的性能。本次測試以內(nèi)存為例,在一臺已經(jīng)運行多個容器的Docker 宿主機上,運行stress 壓力測試工具鏡像,設(shè)置內(nèi)存限制資源為128M,同時分別給定內(nèi)存壓力值memory 為120M 和512M,使用默認(rèn)的memory-swap 值0(表示容器可以使用swap大小為memory 值得兩倍),觀察壓力測試容器運行狀態(tài),如圖4所示。當(dāng)使用內(nèi)存壓力值120M進(jìn)行測試時,容器運行正常;使用內(nèi)存壓力值512M進(jìn)行測試時,容器運行失敗。再次使用內(nèi)存壓力值255M進(jìn)行測試,由于壓力值沒有達(dá)到內(nèi)存限制資源的兩倍,通過使用swap,容器可以運行成功;當(dāng)使用內(nèi)存壓力值256M進(jìn)行測試時,壓力值達(dá)到了內(nèi)存限制資源的兩倍,容器運行失敗。

        圖4 docker 內(nèi)存壓力測試圖

        測試結(jié)果表明,通過容器的內(nèi)存進(jìn)行控制,有效地限制了容器對宿主機內(nèi)存的使用,從而避免了因某個容器占用資源過多而影響其他容器乃至整個宿主機性能的情況發(fā)生。

        3.2 快速部署與恢復(fù)測試

        和標(biāo)準(zhǔn)部署與集成過程一樣,Docker 可以構(gòu)建、測試和發(fā)布鏡像,這個鏡像可以跨多個服務(wù)器進(jìn)行部署。當(dāng)部署多個來自同一個基礎(chǔ)鏡像的容器時,避免了多次復(fù)制操作,運維人員通過把運行正常的鏡像存儲到私有倉庫中。當(dāng)網(wǎng)站出現(xiàn)問題或者需要在其他服務(wù)器部署時,可以第一時間利用倉庫中的鏡像進(jìn)行快速恢復(fù)和部署,提高網(wǎng)站維護(hù)效率。本次測試分為兩個階段,第一階段測試通過基礎(chǔ)鏡像部署多個容器的能力以及版本控制功能;第二階段測試快速恢復(fù)能力。

        首先,由于疫情在線和地震信息中心網(wǎng)站的開發(fā)環(huán)境都是一樣的,就以web:base 作為基礎(chǔ)鏡像,運行yqzx 和earthweb 兩個容器來部署兩個網(wǎng)站。部署成功后可以保存為v1 版本的鏡像,當(dāng)后續(xù)涉及到軟件升級等操作時,可以通過保存為v2 版本,實現(xiàn)版本控制功能,如圖5 所示。

        圖5 Docker 鏡像的多版本展示

        其次,通過把運行中的earthweb 容器中的tomcat 程序停掉,制造出網(wǎng)站異常的現(xiàn)象。此時可以直接把當(dāng)前異常容器刪掉,再直接運行earthweb:v2 鏡像來啟動容器。此時測試網(wǎng)站恢復(fù)正常,如圖6 所示。

        圖6 Docker 快速恢復(fù)測試

        測試結(jié)果表明,可以通過同一個基礎(chǔ)鏡像同時部署多個容器,實現(xiàn)網(wǎng)站的快速部署。當(dāng)運行在容器中的網(wǎng)站由于版本升級等原因出現(xiàn)問題時,可以通過運行最新正常版本的鏡像來重新啟動容器,啟動過程也都是秒級的,體現(xiàn)了快速恢復(fù)能力。

        4 結(jié)論

        傳統(tǒng)的Web 網(wǎng)站發(fā)布技術(shù)多采用單機提供或者多端口并發(fā)訪問服務(wù),容易造成嚴(yán)重的資源浪費和訪問速度緩慢等問題,一直制約著網(wǎng)站群的設(shè)計和建設(shè)。本文在分析云存儲和云計算技術(shù)基礎(chǔ)上,利用Docker 虛擬化容器技術(shù),通過運行多個應(yīng)用實例,實現(xiàn)了將多個不同開發(fā)環(huán)境的Web 網(wǎng)站部署到Docker容器中,解決了在有限的資源條件下實現(xiàn)對災(zāi)害信息網(wǎng)站群的部署困難問題,實現(xiàn)了網(wǎng)站群建設(shè)的快速部署和高利用率。對于開發(fā)測試和運維人員,可以利用Docker 虛擬化技術(shù)直接部署軟件鏡像,完成系統(tǒng)測試和相關(guān)信息發(fā)布,簡化了系統(tǒng)集成、測試和發(fā)布的過程,管理更加簡單方便,這對網(wǎng)站群設(shè)計具有實際應(yīng)用價值。

        猜你喜歡
        環(huán)境
        長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
        一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
        孕期遠(yuǎn)離容易致畸的環(huán)境
        不能改變環(huán)境,那就改變心境
        環(huán)境與保護(hù)
        環(huán)境
        孕期遠(yuǎn)離容易致畸的環(huán)境
        高等院校環(huán)境類公選課的實踐和探討
        掌握“三個三” 兜底環(huán)境信訪百分百
        我國環(huán)境會計初探
        中國商論(2016年33期)2016-03-01 01:59:38
        国产一区二区三区在线视频观看 | 少妇高潮呻吟求饶视频网站| 少妇一区二区三区久久| 六月丁香综合在线视频| 午夜亚洲www湿好大| 麻豆国产成人AV网| 麻豆成人久久精品一区| 亚洲av午夜福利精品一区| 国产精品美女久久久久久久久| 亚洲VA欧美VA国产VA综合| 亚洲蜜臀av一区二区三区漫画| 日本伊人精品一区二区三区| aaa级久久久精品无码片| 欧美色图50p| 国产精品亚洲二区在线| 玩弄少妇人妻中文字幕| 伊人蕉久中文字幕无码专区| 精品国产高清a毛片| 一区二区三区国产精品麻豆| 人妻尝试又大又粗久久| 精品乱码卡1卡2卡3免费开放| 国产一区二区三区高清视频| 自拍视频在线观看首页国产| 一本色道无码道在线观看| 国产成人久久精品区一区二区 | 2021年国产精品每日更新| 日韩精品免费观看在线| 丰满少妇被猛烈进入高清播放 | 人妻风韵犹存av中文字幕| 国产精品久久久三级18| 大肉大捧一进一出视频出来呀| 久久中国国产Av秘 入口| 亚洲精品一区二在线观看| 性刺激的大陆三级视频| 5级做人爱c视版免费视频| 久久精品中文字幕免费| 一本色道久久hezyo无码| 成人亚洲性情网站www在线观看| 国产在线AⅤ精品性色| 在线播放草猛免费视频| 欧美极品色午夜在线视频|