亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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)鍵詞:鏡像倉(cāng)庫(kù)內(nèi)存

        楊旭明 李 忠 楊百一

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

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

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

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

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

        1.2 Docker 工作原理

        Docker 最初實(shí)現(xiàn)是基于LXC 的一個(gè)開(kāi)源項(xiàng)目,誕生于2013年初,使用Google 公司推出的Go 語(yǔ)言進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),對(duì)進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其它隔離的進(jìn)程,因此也稱為容器。Docker 能夠自動(dòng)執(zhí)行重復(fù)性任務(wù),例如搭建和配置開(kāi)發(fā)環(huán)境,從而解放了開(kāi)發(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)程可以通過(guò)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 倉(cāng)庫(kù)(Docker Register)是用來(lái)存放鏡像的地方,可以把創(chuàng)建好的基礎(chǔ)鏡像保存在倉(cāng)庫(kù)中,供其他開(kāi)發(fā)和運(yùn)維人員下載使用,避免反復(fù)構(gòu)建鏡像的麻煩。Docker Hub 是目前Docker 官方維護(hù)的一個(gè)公共倉(cāng)庫(kù),用戶可以直接下載鏡像來(lái)實(shí)現(xiàn)應(yīng)用。但是實(shí)際生產(chǎn)環(huán)境中,一般采用創(chuàng)建自己的私有倉(cāng)庫(kù),來(lái)實(shí)現(xiàn)鏡像的內(nèi)部共享。Docker 容器(Docker Container)是通過(guò)Docker 鏡像運(yùn)行的實(shí)例,可以共享操作系統(tǒng)內(nèi)核,能夠迅速啟動(dòng),占用很少的計(jì)算和內(nèi)存資源。通過(guò)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 需求分析

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

        表2 災(zāi)害信息網(wǎng)站群開(kāi)發(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ù)庫(kù)服務(wù)器,實(shí)現(xiàn)應(yīng)用與數(shù)據(jù)分離的設(shè)計(jì)方案。同時(shí)Docker 服務(wù)器中的容器與數(shù)據(jù)庫(kù)服務(wù)器之間使用內(nèi)網(wǎng)進(jìn)行通信,如圖2 所示。其中在Mysql 數(shù)據(jù)庫(kù)中分別為每個(gè)網(wǎng)站項(xiàng)目創(chuàng)建自己的賬號(hào)和數(shù)據(jù)庫(kù),具體規(guī)劃如表3所示。

        圖2 容器與數(shù)據(jù)庫(kù)訪問(wèn)

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

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

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

        3 系統(tǒng)測(cè)試

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

        3.1 安全性與隔離性測(cè)試

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

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

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

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

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

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

        圖5 Docker 鏡像的多版本展示

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

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

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

        4 結(jié)論

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

        猜你喜歡
        鏡像倉(cāng)庫(kù)內(nèi)存
        倉(cāng)庫(kù)里的小偷
        填滿倉(cāng)庫(kù)的方法
        鏡像
        四行倉(cāng)庫(kù)的悲壯往事
        “春夏秋冬”的內(nèi)存
        鏡像
        小康(2018年23期)2018-08-23 06:18:52
        消防設(shè)備
        鏡像
        小康(2015年4期)2015-03-31 14:57:40
        鏡像
        小康(2015年6期)2015-03-26 14:44:27
        基于內(nèi)存的地理信息訪問(wèn)技術(shù)
        久久精品国产亚洲av久| 国产人成在线成免费视频| 久久中文字幕国产精品| 久久久久久久久无码精品亚洲日韩| 中文字幕无码毛片免费看| 亚洲熟妇av乱码在线观看| 无码伊人久久大蕉中文无码| 日本妇女高清一区二区三区| 日日摸夜夜添夜夜添高潮喷水| 成人激情五月天| 一本大道久久东京热无码av| 国产视频免费一区二区| 无码精品一区二区三区在线| 老师脱了内裤让我进去| 免费高清日本中文| 亚洲综合国产精品一区二区| 久久99精品久久久久久琪琪| 国产成人综合亚洲精品| 日本熟妇hd8ex视频| 天堂网av在线免费看| 日本丰满熟妇videossexhd| 色欲aⅴ亚洲情无码av蜜桃| 日躁夜躁狠狠躁2001| 久久国产色av免费观看| 精品人体无码一区二区三区 | av素人中文字幕在线观看| 女人喷潮完整视频| 99国产精品久久久蜜芽| 麻豆三级视频网站在线观看| 人人妻人人澡人人爽人人精品av| 色综合中文综合网| 中日无码精品一区二区三区| 亚洲精品在线免费视频| 国产盗摄xxxx视频xxxx| 久久青青草原亚洲AV无码麻豆| 亚洲成在人网站天堂日本| 性无码一区二区三区在线观看| 精品国产v无码大片在线观看| 亚洲综合久久一本久道| 日本伦理精品一区二区三区| 曝光无码有码视频专区|