摘要:智能航保是現(xiàn)代化航海的重要內(nèi)容和必然趨勢(shì),航海保障部門也一直致力于智能航保的研究和建設(shè)工作。本文介紹了智能航保的發(fā)展背景,分析了利用傳統(tǒng)開發(fā)模式和云平臺(tái)部署智能航保會(huì)存在的問題,引入Docker容器技術(shù),提出基于Docker容器技術(shù)的智能航保云平臺(tái)的架構(gòu)設(shè)計(jì)。
關(guān)鍵詞:Docker;智能航保;云平臺(tái)
0 ?引 言
自從國際海事組織(IMO)提出e-航海發(fā)展戰(zhàn)略以來,智能化理論和技術(shù)逐漸滲透到航海領(lǐng)域。根據(jù)交通運(yùn)輸部等七部門聯(lián)合發(fā)表的《智能航運(yùn)發(fā)展指導(dǎo)意見》,作為五大要素之一的智能航保也需要深入研究智能航運(yùn)下的用戶需求,構(gòu)建完善的智能航保體系,而智能航保的建設(shè)離不開信息大數(shù)據(jù)的支持和服務(wù),航保云平臺(tái)是智能航保建設(shè)的主戰(zhàn)場(chǎng)[1]。由于智能航保建設(shè)的長期性,云平臺(tái)建設(shè)可采用重點(diǎn)先行建設(shè)、其余分步建設(shè)、后期迭代升級(jí)的原則,但傳統(tǒng)的開發(fā)模式和云平臺(tái)存在如部署不方便、配置復(fù)雜、升級(jí)效率低、資源利用率低、運(yùn)行能力差等問題,因此,引入基于Docker容器技術(shù)的智能航保云平臺(tái)架構(gòu)設(shè)計(jì)。Docker容器是開源的虛擬化技術(shù),具有部署靈活、配置簡(jiǎn)化、迭代效率高、性能損耗低、集成度高等優(yōu)點(diǎn),適用于智能航保的長期性建設(shè)。
1 智能航保發(fā)展背景
2006年國際海事組織(IMO)首次提出e-航海的概念,揭開了數(shù)字化航海時(shí)代的序幕,E航海迅速發(fā)展成為各海洋國家的戰(zhàn)略目標(biāo)。在國際海事組織(IMO)、國際航標(biāo)協(xié)會(huì)(IALA)、國際海道測(cè)量組織(IHO)和國際電信聯(lián)盟(ITU)的共同推動(dòng)下,航海逐漸走向信息化、網(wǎng)絡(luò)化和自動(dòng)化,利用先進(jìn)技術(shù)實(shí)現(xiàn)船岸間智能導(dǎo)助航信息服務(wù)成為e-航海的核心目標(biāo)。隨著e-航海戰(zhàn)略的不斷深入和科學(xué)技術(shù)的發(fā)展,陸續(xù)衍生出智慧海事、智慧港口、智能船舶等概念。2019年,交通運(yùn)輸部、中央網(wǎng)信辦、國家發(fā)展改革委、教育部、科技部、工業(yè)和信息化部、財(cái)政部聯(lián)合發(fā)布《智能航運(yùn)發(fā)展指導(dǎo)意見》,為智能航運(yùn)未來30年發(fā)展指明方向。智能航運(yùn)是傳統(tǒng)航運(yùn)要素與高新技術(shù)深度融合形成的現(xiàn)代航運(yùn)新業(yè)態(tài),包括智能船舶、智能港口、智能航保、智能航運(yùn)服務(wù)和智能航運(yùn)監(jiān)管五方面基本要素?!爸悄芎奖!笔侵悄芑叫兄畏?wù)保障系統(tǒng)的簡(jiǎn)稱,作為智能航運(yùn)的重要組成部分,智能航保旨在通過智能化手段進(jìn)一步提升航海保障水平,在整個(gè)智能航運(yùn)體系中起到重要支撐作用。智能航保是利用智能傳感器、物聯(lián)網(wǎng)、互聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算、人工智能等技術(shù),使船舶導(dǎo)航、通信傳輸、數(shù)據(jù)處理等系統(tǒng)和信息服務(wù)平臺(tái)充分智能化,既能為船舶自主航行提供技術(shù)支撐、服務(wù)和保障,也能對(duì)獲取的信息進(jìn)行整合、交換和分析,為智能監(jiān)管提供輔助支持,為打造平臺(tái)化航運(yùn)服務(wù)提供手段。
2 ?航保業(yè)務(wù)平臺(tái)建設(shè)現(xiàn)狀及問題
目前,航保多數(shù)應(yīng)用系統(tǒng)采用瀏覽器/服務(wù)器的結(jié)構(gòu)模式,不同的業(yè)務(wù)運(yùn)行在不同的物理服務(wù)器之上,這種架構(gòu)模式存在諸多缺點(diǎn):(1)資源浪費(fèi)。航保的大部分應(yīng)用與業(yè)務(wù)系統(tǒng)消耗的資源很少,而一臺(tái)服務(wù)器上只運(yùn)行一種業(yè)務(wù)造成了資源的浪費(fèi),利用率不高。(2)成本高。運(yùn)行一種業(yè)務(wù),相應(yīng)地就要準(zhǔn)備物理服務(wù)器,然后安裝適用的操作系統(tǒng),安裝各種系統(tǒng)環(huán)境的依賴,再安裝業(yè)務(wù)程序,部署過程緩慢,成本也很高。(3)更新升級(jí)困難。服務(wù)器若要更新升級(jí),運(yùn)行在其上的業(yè)務(wù)就需要遷移并重新部署,并且更新升級(jí)后的服務(wù)器未必有效支持業(yè)務(wù)運(yùn)行。(4)擴(kuò)展性低。對(duì)服務(wù)器進(jìn)行資源擴(kuò)展也是非常麻煩,同樣需要重新部署。因此,最近幾年,航保也逐漸引入虛擬化技術(shù)來解決傳統(tǒng)物理服務(wù)器應(yīng)用遇到的問題。虛擬化技術(shù)是通過運(yùn)行在物理服務(wù)器與操作系統(tǒng)之間的中間層,進(jìn)行資源的虛擬化,加載所有客戶端的操作系統(tǒng),實(shí)現(xiàn)了在一臺(tái)服務(wù)器上同時(shí)運(yùn)行多個(gè)操作系統(tǒng)。利用虛擬化技術(shù),我們可以很容易的進(jìn)行資源擴(kuò)展而無須考慮物理服務(wù)器,但是這種虛擬化技術(shù)仍具有局限性:(1)部署困難。業(yè)務(wù)的運(yùn)行需要依靠代碼、運(yùn)行環(huán)境、配置等,增加新的業(yè)務(wù)仍需要部署新的應(yīng)用環(huán)境,無法將應(yīng)用及其依賴打包作為整體進(jìn)行管理。(2)資源有效利用率低。每一臺(tái)虛擬機(jī)都具有完整的操作系統(tǒng),在不同的虛擬機(jī)上部署不同的應(yīng)用,但虛擬機(jī)開銷很高,操作系統(tǒng)本身消耗資源很多,造成資源的有效利用率很低。(3)負(fù)載均衡和運(yùn)行監(jiān)控能力差。在實(shí)際運(yùn)行中,不同的應(yīng)用服務(wù)對(duì)硬件和內(nèi)存的需求是變化的,因此需要?jiǎng)討B(tài)調(diào)整資源分配;并且運(yùn)行過程需要監(jiān)控機(jī)制,需要有靈活的容錯(cuò)備份和異常處理機(jī)制。
智能航保的建設(shè)要重點(diǎn)考慮系統(tǒng)的擴(kuò)展性、開放性,保證各項(xiàng)服務(wù)、業(yè)務(wù)之間松耦合,避免建設(shè)過程中耦合過于嚴(yán)重,智能航保云平臺(tái)是建設(shè)的核心,平臺(tái)上需要不斷加入新的服務(wù)或者應(yīng)用來豐富智能航保的功能,需要后期不斷的維護(hù)和更新,良好的擴(kuò)展性可以保障新集成的服務(wù)不會(huì)影響整體架構(gòu)和正常運(yùn)行。
3 ?Docker容器
3.1 ?Docker容器簡(jiǎn)介
Docker是一個(gè)開源的應(yīng)用容器引擎,提供輕量化的虛擬化解決方案,被稱為軟件行業(yè)的集裝箱技術(shù),Docker技術(shù)可以讓開發(fā)者將應(yīng)用及其依賴一起打包放到可移植的容器中,包括開發(fā)環(huán)境和運(yùn)行應(yīng)用的環(huán)境變量、組件等,這個(gè)容器就是完整的交付環(huán)境,實(shí)現(xiàn)“一次封裝,到處運(yùn)行”[2]。與當(dāng)前應(yīng)用廣泛的傳統(tǒng)的虛擬化技術(shù)相比,Docker容器技術(shù)具有突出的性能:(1)靈活性高。伸縮性強(qiáng),擴(kuò)展性強(qiáng),擴(kuò)展或更新應(yīng)用時(shí)只需要加載相應(yīng)的容器,最大化地利用現(xiàn)有資源。(2)集成度高。應(yīng)用及其依賴以類似集裝箱的形式打包交付,不受宿主操作系統(tǒng)版本及環(huán)境變量的影響,應(yīng)用系統(tǒng)可以方便地進(jìn)行遷移和擴(kuò)展。(3)啟動(dòng)快,性能高。管理操作,如啟動(dòng)、停止、重啟等操作,可以實(shí)現(xiàn)秒級(jí)甚至毫秒級(jí),應(yīng)用系統(tǒng)運(yùn)行時(shí)的性能得到大幅提升。(4)資源利用率高。與傳統(tǒng)的虛擬技術(shù)相比,Docker不包含操作系統(tǒng)內(nèi)核,更加輕量化,降低了虛擬機(jī)的性能損耗[3]。Docker技術(shù)作為一種充分挖掘計(jì)算平臺(tái)能力的輕量化虛擬技術(shù),近年來得到許多大企業(yè)的支持和應(yīng)用,網(wǎng)易、華為、騰訊等大型企業(yè)都已經(jīng)大規(guī)模地部署Docker。
3.2 Docker的系統(tǒng)架構(gòu)(見圖1)
傳統(tǒng)的虛擬化技術(shù)與Docker容器技術(shù)的架構(gòu)對(duì)比如圖1所示[4]。Docker容器技術(shù)與傳統(tǒng)的物理服務(wù)器及虛擬化工作方式不同,虛擬化技術(shù)是在主機(jī)上制備操作系統(tǒng),在操作系統(tǒng)上再安裝并部署相應(yīng)的配置和業(yè)務(wù)應(yīng)用,而Docker更為簡(jiǎn)潔化、輕量化,它沒有物理主機(jī)的模擬,通過各實(shí)例共享主機(jī)的操作系統(tǒng),在Docker容器中是不包含操作系統(tǒng)的,因此,將應(yīng)用運(yùn)行在Docker容器上,配置可以簡(jiǎn)化,將運(yùn)行環(huán)境、代碼及相關(guān)配置文件打包到容器里,實(shí)現(xiàn)了開發(fā)環(huán)境、業(yè)務(wù)環(huán)境與本地環(huán)境的統(tǒng)一,降低了開發(fā)部署的難度,且一臺(tái)機(jī)器上可以運(yùn)行多個(gè)容器,共享操作系統(tǒng)內(nèi)核,而每個(gè)容器中的應(yīng)用都是孤立進(jìn)程。Docker的組成包含三個(gè)主要部分:(1)鏡像。鏡像可看作是容器的源代碼,提供容器運(yùn)行時(shí)所用的程序、庫、配置參數(shù)等。(2)容器。容器是Docker的運(yùn)行單元,通過鏡像啟動(dòng)應(yīng)用或系統(tǒng),是鏡像運(yùn)行時(shí)的實(shí)體。(3)倉庫。倉庫是存放鏡像的地方,保存用戶構(gòu)建的鏡像,有公有和私有倉庫兩種。
Docker雖然具有眾多優(yōu)勢(shì),但是在實(shí)際運(yùn)維中存在部署和管理不能自動(dòng)化、監(jiān)控能力差、無法自動(dòng)伸縮擴(kuò)展等問題,因此,在平臺(tái)架構(gòu)中需引入相應(yīng)的容器集群調(diào)度管理系統(tǒng)。本架構(gòu)引入Kubernetes,提供跨主機(jī)集群的自動(dòng)部署、擴(kuò)展和管理容器的功能,實(shí)現(xiàn)云平臺(tái)應(yīng)用組件的自動(dòng)化管理和容器集群的負(fù)載均衡、運(yùn)行監(jiān)測(cè)和管理調(diào)度。
4 基于Docker容器的智能航保云平臺(tái)架構(gòu)
利用Docker容器技術(shù)建設(shè)航保云平臺(tái),可搭建一致性強(qiáng)、便于使用的開發(fā)運(yùn)行環(huán)境?;贒ocker容器的云平臺(tái)架構(gòu)靈活便捷,能與開發(fā)環(huán)境無縫集成;擴(kuò)展性強(qiáng),能快速擴(kuò)展應(yīng)用和環(huán)境;可移植性強(qiáng),無差別地移植到測(cè)試和應(yīng)用環(huán)境中,可有效實(shí)現(xiàn)在e-航海背景下全球統(tǒng)一的、標(biāo)準(zhǔn)化的智能航保服務(wù)。
基于Docker容器的智能航保云平臺(tái)總體架構(gòu)圖如圖2所示,自下而上包括物理層、數(shù)據(jù)層、容器層、支撐層和應(yīng)用層。 物理層包括所有的硬件設(shè)備,如服務(wù)器、網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備等,為平臺(tái)的運(yùn)行提供物理環(huán)境支撐;數(shù)據(jù)層負(fù)責(zé)提供數(shù)據(jù)資源,是航保云平臺(tái)的大數(shù)據(jù)中心,數(shù)據(jù)層的數(shù)據(jù)信息包括海上空間信息、航標(biāo)、AIS,重要水域的航行規(guī)則、管理信息、服務(wù)資源等船舶進(jìn)出港常用信息,也可與外部涉海機(jī)構(gòu)建立信息共享機(jī)制,獲取港口調(diào)度、海況信息、災(zāi)害天氣、環(huán)保信息等外部數(shù)據(jù),建立互聯(lián)互通的數(shù)據(jù)共享平臺(tái);容器層實(shí)現(xiàn)了基于Docker容器和Kubernetes的容器管理,提供自動(dòng)化的容器構(gòu)建與調(diào)度、負(fù)載均衡、運(yùn)行監(jiān)控等服務(wù),完成輕量
級(jí)的應(yīng)用系統(tǒng)部署和運(yùn)維;支撐層利用航標(biāo)數(shù)據(jù)匯聚、數(shù)據(jù)融合、數(shù)據(jù)管理、信息服務(wù)、運(yùn)維管理、平臺(tái)門戶等構(gòu)建云平臺(tái)軟件體系,為應(yīng)用層提供數(shù)據(jù)管理能力、接口服務(wù)能力以及信息分析能力;應(yīng)用層是向用戶提供各種應(yīng)用服務(wù)的支持,如航海保障綜合服務(wù)、港口信息服務(wù)、海上安全信息服務(wù)、海圖服務(wù)、通航環(huán)境信息服務(wù)、高精度導(dǎo)航定位服務(wù)等,利用支撐層的數(shù)據(jù)服務(wù)和接口服務(wù),提供不同領(lǐng)域的應(yīng)用方式[5]。
5 ?總 結(jié)
智能航保是e-航海經(jīng)過多年發(fā)展之后呈現(xiàn)的新形態(tài),是未來的發(fā)展方向。智能航保通過先進(jìn)技術(shù)和智能化手段,開發(fā)一批具有示范意義的航海保障數(shù)字服務(wù)和應(yīng)用平臺(tái),全面促進(jìn)中國航海保障服務(wù)能力進(jìn)一步提升。本文介紹了智能航保的發(fā)展背景,結(jié)合傳統(tǒng)開發(fā)模式和云平臺(tái)部署智能航保會(huì)存在的問題,引入Docker容器技術(shù),提出基于Docker容器技術(shù)的智能航保云平臺(tái)的架構(gòu)設(shè)計(jì),可實(shí)現(xiàn)在E航海背景下全球統(tǒng)一的、標(biāo)準(zhǔn)化的智能航保服務(wù)。
參考文獻(xiàn)
[1] 交通運(yùn)輸部等.智能航運(yùn)發(fā)展指導(dǎo)意見[A].2019
[2] 金琦.初識(shí)DOCKER容器技術(shù)[J].中國信息技術(shù)教育,2019(Z3):105-109.
[3] 劉慶芳,趙李東,龐超.基于Docker容器的中國郵政網(wǎng)絡(luò)學(xué)院架構(gòu)研究[J].郵政研究,2018,34(06):42-44.
[4] 管文超. 基于Docker的智慧消防云平臺(tái)構(gòu)建及其典型應(yīng)用的研究[D].華東理工大學(xué),2018.
[5] 沈鳳嬌,曾珍,程蕾.基于Docker容器的智慧城市時(shí)空信息云平臺(tái)架構(gòu)設(shè)計(jì)研究[J].城市勘測(cè),2020(02):31-35.
作者簡(jiǎn)介
張璞,女,碩士研究生,工程師,從事無線電航標(biāo)管理,(E-mail)dlhbczp@163.com, 15042482671