999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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)幾何級(jí)數(shù)增長,直接導(dǎo)致了兩個(gè)問題:一是在有限的資源條件下服務(wù)器的負(fù)載過重,響應(yīng)緩慢,資源浪費(fèi)現(xiàn)象嚴(yán)重;二是不同的應(yīng)用程序所依賴的環(huán)境不一樣,如果把它們依賴的軟件都安裝在一個(gè)服務(wù)器上,不僅造成調(diào)試麻煩,而且可能出現(xiàn)沖突,給運(yùn)維人員帶來繁重的不必要?jiǎng)趧?dòng)。

目前的信息技術(shù),雖然可以在服務(wù)器上創(chuàng)建不同的虛擬機(jī),運(yùn)行不同的應(yīng)用,但是虛擬機(jī)的開銷比較高。Docker 容器作為輕量級(jí)的虛擬機(jī),是一個(gè)很好的工具,與傳統(tǒng)的虛擬機(jī)相比,容器更加輕量化、啟動(dòng)的速度更快,在同樣數(shù)量的硬件設(shè)備中,可以部署更多的容器實(shí)例。Docker 作為一個(gè)軟件集裝箱化平臺(tái),可以讓開發(fā)者構(gòu)建應(yīng)用程序時(shí),將它與其依賴環(huán)境一起打包到一個(gè)容器中,然后容易地發(fā)布和應(yīng)用到任意平臺(tái)中。測試和運(yùn)維人員可以直接部署軟件鏡像來進(jìn)行測試和發(fā)布,大大簡化了系統(tǒng)集成、測試和發(fā)布的過程。同時(shí)可以消除線上線下環(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)虛擬機(jī)(virtual machine)就是帶環(huán)境安裝的一種解決方案,可以在一種操作系統(tǒng)里面運(yùn)行另一種操作系統(tǒng),比如在Windows 系統(tǒng)上運(yùn)行Linux 系統(tǒng)。應(yīng)用程序?qū)Υ撕翢o感知,因?yàn)樘摂M機(jī)看上去跟真實(shí)系統(tǒng)一模一樣,缺點(diǎn)是資源占用多、冗余步驟多、啟動(dòng)速度慢等。

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

表1 Docker 容器與虛擬機(jī)之間性能對比

1.2 Docker 工作原理

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

Docker 服務(wù)器端負(fù)責(zé)處理創(chuàng)建、運(yùn)行、保存容器的作用,客戶端負(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ā)和運(yùn)維人員下載使用,避免反復(fù)構(gòu)建鏡像的麻煩。Docker Hub 是目前Docker 官方維護(hù)的一個(gè)公共倉庫,用戶可以直接下載鏡像來實(shí)現(xiàn)應(yīng)用。但是實(shí)際生產(chǎn)環(huán)境中,一般采用創(chuàng)建自己的私有倉庫,來實(shí)現(xiàn)鏡像的內(nèi)部共享。Docker 容器(Docker Container)是通過Docker 鏡像運(yùn)行的實(shí)例,可以共享操作系統(tǒng)內(nèi)核,能夠迅速啟動(dòng),占用很少的計(jì)算和內(nèi)存資源。通過docker run 命令并指定一些參數(shù)完成容器執(zhí)行一些進(jìn)程服務(wù)。容器可以被啟動(dòng)、停止、刪除等,而且每個(gè)容器之間具有安全的隔離空間。

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

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

2.1 需求分析

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

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

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

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

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

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

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

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

3 系統(tǒng)測試

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

3.1 安全性與隔離性測試

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

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

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

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

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

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

圖5 Docker 鏡像的多版本展示

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

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

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

4 結(jié)論

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

猜你喜歡
環(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)境類公選課的實(shí)踐和探討
掌握“三個(gè)三” 兜底環(huán)境信訪百分百
我國環(huán)境會(huì)計(jì)初探
中國商論(2016年33期)2016-03-01 01:59:38
主站蜘蛛池模板: 国产日产欧美精品| 2021无码专区人妻系列日韩| 就去吻亚洲精品国产欧美| 欧美精品亚洲精品日韩专区| 日本一区二区不卡视频| 伊人久久久久久久| 亚洲无码高清一区| 国产乱人免费视频| 特级做a爰片毛片免费69| 99精品在线视频观看| 国产欧美日韩综合在线第一| 国产视频 第一页| a在线观看免费| 国产男人的天堂| 亚洲三级色| 国产91成人| 无码AV高清毛片中国一级毛片| 在线播放真实国产乱子伦| 久久综合九色综合97婷婷| 国产精品免费p区| 亚洲精品午夜无码电影网| 国产精品视频白浆免费视频| 日韩无码视频播放| 欧洲欧美人成免费全部视频 | 啪啪永久免费av| 人妻中文字幕无码久久一区| Jizz国产色系免费| 国产成人综合日韩精品无码首页 | 亚洲国产中文在线二区三区免| 凹凸精品免费精品视频| 久久免费视频6| 99在线观看免费视频| 九色综合视频网| 精品视频一区在线观看| 亚洲成A人V欧美综合天堂| 九色91在线视频| 综合亚洲网| 色综合天天娱乐综合网| 亚洲激情区| 国产精品内射视频| 国产欧美日韩精品第二区| 色综合久久无码网| 欧美黑人欧美精品刺激| 中文字幕调教一区二区视频| 国内老司机精品视频在线播出| 欧美天堂久久| 99热这里只有精品免费国产| 天堂亚洲网| 人妻精品全国免费视频| 国产美女在线观看| 99视频只有精品| 无码精品福利一区二区三区| 亚洲国产成人在线| 国产一区二区三区精品久久呦| 国产高清不卡视频| 亚洲首页在线观看| 黄色网站不卡无码| 日韩区欧美国产区在线观看| 亚洲a级毛片| 国产91丝袜在线观看| 99国产在线视频| 综合人妻久久一区二区精品| 高清免费毛片| 高清国产在线| 欧美精品三级在线| 成人a免费α片在线视频网站| 性激烈欧美三级在线播放| AV在线天堂进入| 97se亚洲综合在线| 国产精品无码一二三视频| 国产在线视频欧美亚综合| 色综合久久无码网| 精品国产自在现线看久久| 无遮挡一级毛片呦女视频| 国产亚洲精品yxsp| a毛片在线免费观看| 国产美女一级毛片| 久久综合色播五月男人的天堂| 怡红院美国分院一区二区| 26uuu国产精品视频| 天堂成人在线| 中日无码在线观看|