關(guān)鍵詞:Docker;醫(yī)院信息化;私有云;堡壘機(jī)
0 引言
根據(jù)相關(guān)調(diào)查資料顯示,我國(guó)二級(jí)以上醫(yī)院信息系統(tǒng)中HIS系統(tǒng)的使用率高達(dá)93.8%,其中有43.0% 的醫(yī)院同時(shí)使用HIS、PACS、CIS和EMR核心信息系統(tǒng),39.4%的醫(yī)院建設(shè)了醫(yī)院信息平臺(tái)[1]。在“十三五”期間,我國(guó)醫(yī)院信息化建設(shè)取得了顯著的進(jìn)展和成果。隨著醫(yī)院信息化的不斷深入,現(xiàn)階段醫(yī)院內(nèi)網(wǎng)數(shù)據(jù)存在數(shù)據(jù)安全隱患、傳統(tǒng)遠(yuǎn)程控制方式運(yùn)行效率低等問(wèn)題?;贒ocker技術(shù)的開(kāi)源私有云平臺(tái)方案以及開(kāi)源堡壘機(jī)平臺(tái)方案,在解決醫(yī)院信息化問(wèn)題方面具有明顯優(yōu)勢(shì)。
1 Docker 技術(shù)
1.1 Docker 技術(shù)概述
Docker作為一款革命性的開(kāi)源容器解決方案,采用Go語(yǔ)言打造,代表了操作系統(tǒng)級(jí)虛擬化領(lǐng)域的最新進(jìn)展。其核心優(yōu)勢(shì)在于,通過(guò)運(yùn)用Linux內(nèi)核的特性——包括命名空間(Namespace) 、控制組(Cgroups) 以及AUFS類的聯(lián)合文件系統(tǒng)(UnionFs) ,Docker能夠?qū)蝹€(gè)進(jìn)程及其依賴項(xiàng)打包成一個(gè)輕量級(jí)、可移植的容器。這些容器在邏輯上與宿主操作系統(tǒng)及其它容器隔離開(kāi)來(lái),從而使得應(yīng)用程序能在不同環(huán)境中運(yùn)行。
Docker的架構(gòu)采用了客戶端-服務(wù)器(C/S) 架構(gòu)模式,其中Docker客戶端需要通過(guò)命令行工具向Docker 守護(hù)進(jìn)程或Docker服務(wù)器發(fā)出請(qǐng)求[2]。Docker守護(hù)進(jìn)程或服務(wù)器根據(jù)請(qǐng)求進(jìn)行鏡像構(gòu)建、鏡像執(zhí)行等工作[3],完成后再將結(jié)果返回給客戶端。在Docker上運(yùn)行Docker 容器與三個(gè)組件密切相關(guān),分別是DockerImages、Docker Container和Docker Engine。
1) Docker Images:Docker鏡像是用于創(chuàng)建Docker 容器的模板,其中包含了應(yīng)用程序所需要的所有文件、庫(kù)、環(huán)境變量和其他依賴庫(kù)。Docker鏡像可以從公有或私有倉(cāng)庫(kù)中獲取,也可以通過(guò)編寫(xiě)Dockerfile 自行構(gòu)建。
2) Docker Container:容器是Docker的執(zhí)行單元,是動(dòng)態(tài)的概念。容器提供了一個(gè)隔離的運(yùn)行環(huán)境,可以在其中運(yùn)行應(yīng)用程序。每個(gè)容器都有自己的標(biāo)識(shí)符、名稱、文件系統(tǒng)、網(wǎng)絡(luò)和進(jìn)程空間,并且與其他容器隔離。
3) Docker Engine:Docker引擎是Docker的核心組件,負(fù)責(zé)管理和運(yùn)行容器。它包括以下主要部分:Docker守護(hù)進(jìn)程(dockerd) 作為后臺(tái)服務(wù)運(yùn)行,負(fù)責(zé)管理容器的創(chuàng)建、運(yùn)行和停止等任務(wù);REST API提供了與Docker引擎進(jìn)行交互的接口,允許用戶通過(guò)API請(qǐng)求來(lái)管理容器和鏡像;命令行接口(CLI) 通過(guò)命令行工具與Docker引擎進(jìn)行交互,方便用戶操作容器和鏡像。
1.2 Docker 技術(shù)的應(yīng)用優(yōu)勢(shì)
1.2.1 流程精簡(jiǎn)
借助Docker,部署流程得以大幅簡(jiǎn)化。開(kāi)發(fā)者只需要將應(yīng)用程序及其所有相關(guān)依賴打包進(jìn)單一容器中,形成Docker鏡像,即可輕松完成部署。這一方法消除了因底層操作系統(tǒng)差異而引發(fā)的兼容性問(wèn)題,大大減少了部署階段的復(fù)雜度和潛在錯(cuò)誤,使軟件交付變得更加順暢。
1.2.2 效率提升
Docker容器的便攜性特性賦予了部署過(guò)程靈活性和速度。容器與宿主系統(tǒng)的隔離確保了它們能在任何環(huán)境下無(wú)阻礙地運(yùn)行,從而免去了冗長(zhǎng)的環(huán)境搭建和配置流程。同時(shí),Docker容器還可以通過(guò)Dockerfile配置文件實(shí)現(xiàn)自動(dòng)化創(chuàng)建和靈活部署,提高工作效率。
1.2.3 成本優(yōu)化
Docker通過(guò)高效的資源管理和調(diào)度機(jī)制,極大地提高了服務(wù)器資源的利用率。這意味著在同等硬件條件下,企業(yè)能夠運(yùn)行更多的容器實(shí)例,有效節(jié)省硬件投入。加之Docker的開(kāi)源屬性和活躍的社區(qū)支持,可以有效降低企業(yè)研發(fā)和維護(hù)的成本[4]。
圖1為某醫(yī)院基于Docker容器化系統(tǒng)應(yīng)用的整體架構(gòu)圖。
2 醫(yī)院信息化建設(shè)中的一些問(wèn)題
2.1 傳統(tǒng)內(nèi)網(wǎng)數(shù)據(jù)共享方式的安全隱患
在醫(yī)院內(nèi)網(wǎng)中,傳統(tǒng)的文件共享方式如U盤(pán)、共享文件夾等,容易受到病毒、木馬等惡意軟件的感染。共享文件權(quán)限管理困難,存在數(shù)據(jù)泄露風(fēng)險(xiǎn),且缺乏完善的審計(jì)和日志記錄功能。醫(yī)院內(nèi)網(wǎng)數(shù)據(jù)需要遵守相關(guān)的法律法規(guī)和隱私保護(hù)要求,傳統(tǒng)內(nèi)網(wǎng)數(shù)據(jù)共享方式給醫(yī)院信息安全考核帶來(lái)了極大的挑戰(zhàn)。
2.2 傳統(tǒng)遠(yuǎn)程控制方式的不足
在沒(méi)有堡壘機(jī)的情況下,醫(yī)院業(yè)務(wù)系統(tǒng)運(yùn)維工程師直接遠(yuǎn)程訪問(wèn)服務(wù)器可能會(huì)暴露醫(yī)院數(shù)據(jù)資產(chǎn),增加被黑客攻擊的風(fēng)險(xiǎn);運(yùn)維操作缺乏記錄和審計(jì)功能,管理員難以追蹤和分析運(yùn)維活動(dòng)。同時(shí),直接遠(yuǎn)程訪問(wèn)服務(wù)器可能會(huì)無(wú)意中暴露醫(yī)院敏感數(shù)據(jù),增加數(shù)據(jù)泄露的風(fēng)險(xiǎn);傳統(tǒng)的遠(yuǎn)程控制方式也不支持靈活的權(quán)限分配和角色管理,難以適應(yīng)不同運(yùn)維人員的需求和職責(zé);在網(wǎng)絡(luò)安全法律法規(guī)日益嚴(yán)格的背景下,缺乏堡壘機(jī)的傳統(tǒng)遠(yuǎn)程控制方式可能無(wú)法滿足醫(yī)院業(yè)務(wù)系統(tǒng)的等保合規(guī)要求。
3 Docker 技術(shù)在醫(yī)院信息化中的應(yīng)用
3.1 基于Docker 的開(kāi)源私有云平臺(tái)部署
3.1.1 Nextcloud
在互聯(lián)網(wǎng)使用環(huán)境中,一般使用的是公有云,如Apple iCloud、百度云、阿里云、小米云等。實(shí)際使用中,個(gè)人隱私數(shù)據(jù)存放在公有云容易引發(fā)安全問(wèn)題[5]。另一方面,公有云還涉及收費(fèi)和存儲(chǔ)問(wèn)題。基于上述原因,在醫(yī)院內(nèi)網(wǎng)中部署基于Docker的開(kāi)源私有云平臺(tái)。這樣醫(yī)院對(duì)數(shù)據(jù)擁有完全控制權(quán),從而減少數(shù)據(jù)資產(chǎn)泄露的風(fēng)險(xiǎn)。相比于公有云服務(wù),部署開(kāi)源的私有云平臺(tái)不需要支付持續(xù)的服務(wù)費(fèi)用,可以減少長(zhǎng)期成本。
Nextcloud是一個(gè)開(kāi)源的私有云存儲(chǔ)平臺(tái),可以用于醫(yī)院內(nèi)部的文件共享和協(xié)作。它采用PHP語(yǔ)言實(shí)現(xiàn),支持在多個(gè)操作系統(tǒng)平臺(tái)上運(yùn)行,并兼容多種數(shù)據(jù)庫(kù),具有高度的靈活性。Nextcloud還提供了針對(duì)移動(dòng)設(shè)備和桌面的客戶端,包括iOS、Android、PC等,醫(yī)護(hù)人員可以輕松通過(guò)PC客戶端或者安裝手機(jī)App在內(nèi)網(wǎng)中訪問(wèn)云端存儲(chǔ)資源。Nextcloud提供了文件版本控制功能,可以追蹤文件的更改歷史,防止數(shù)據(jù)丟失,并允許恢復(fù)到以前的版本。Nextcloud提供端到端加密功能,確保醫(yī)院敏感數(shù)據(jù)(如病區(qū)考勤表、病人健康量表等)在傳輸和存儲(chǔ)過(guò)程中始終受到保護(hù),防止數(shù)據(jù)泄露。
3.1.2 Nextcloud 部署命令和截圖
1) Docker 環(huán)境下運(yùn)行MySQL 數(shù)據(jù)庫(kù),建立一個(gè)Nextcloud數(shù)據(jù)庫(kù),圖2為運(yùn)行MySQL數(shù)據(jù)庫(kù)。
2) Docker環(huán)境下運(yùn)行Nextcloud,鏈接已經(jīng)建立的Nextcloud數(shù)據(jù)庫(kù),圖3為運(yùn)行Nextcloud平臺(tái)。
3) 登錄Nextcloud前端配置MySQL數(shù)據(jù)庫(kù),驗(yàn)證登錄,圖4為前端配置MySQL數(shù)據(jù)庫(kù)。
4) Nextcloud中建立分配工作人員賬號(hào)和磁盤(pán)配額,圖5為分配賬號(hào)和磁盤(pán)配額。
5) 手機(jī)安裝App登錄Nextcloud系統(tǒng),圖6為手機(jī)App登錄Nextcloud系統(tǒng)。
3.2 基于Docker 的開(kāi)源堡壘機(jī)平臺(tái)部署
3.2.1 Next Terminal
Next Terminal 是一款開(kāi)源的堡壘機(jī)應(yīng)用系統(tǒng)[6],可以為醫(yī)院業(yè)務(wù)系統(tǒng)運(yùn)維工程師提供一個(gè)便捷、安全的運(yùn)維平臺(tái)。它采用Golang和React技術(shù)棧構(gòu)建,資源占用少,可支持通過(guò)Docker快速部署。Next Termi?nal目前支持的功能有:授權(quán)憑證管理、資產(chǎn)管理(支持RDP、SSH、VNC、TELNET協(xié)議)、指令管理、批量執(zhí)行命令、在線會(huì)話管理(監(jiān)控、強(qiáng)制斷開(kāi))、離線會(huì)話管理(查看錄屏)、雙因素認(rèn)證、資產(chǎn)標(biāo)簽、資產(chǎn)授權(quán)、多用戶及用戶分組、計(jì)劃任務(wù)、SSH Server、登錄策略和系統(tǒng)監(jiān)控。
Next Terminal用真實(shí)身份取代了傳統(tǒng)賬號(hào),為連接到基礎(chǔ)設(shè)施的每位系統(tǒng)應(yīng)用運(yùn)維工程師提供防釣魚(yú)的零信任訪問(wèn)方案。Next Terminal還具有強(qiáng)大的安全性和審計(jì)功能。它自動(dòng)記錄所有的遠(yuǎn)程訪問(wèn)操作,包括登錄日志、SSH會(huì)話記錄等,并能夠回放操作記錄,這些功能有助于確保醫(yī)院網(wǎng)絡(luò)的安全性和合規(guī)性。
3.2.2 Next Terminal 部署命令和截圖
1) 下載Next Terminal鏡像。
2) 搭建Guacd開(kāi)源的遠(yuǎn)程桌面網(wǎng)關(guān)。
3) 搭建 Next Terminal開(kāi)源堡壘機(jī)應(yīng)用系統(tǒng),圖7 為運(yùn)行Next Terminal開(kāi)源堡壘機(jī)應(yīng)用系統(tǒng);Web登錄前端系統(tǒng),添加所有需要進(jìn)行遠(yuǎn)程控制的醫(yī)院內(nèi)部設(shè)備資產(chǎn),圖8為添加醫(yī)院內(nèi)部設(shè)備資產(chǎn)。
4 結(jié)束語(yǔ)
本文介紹了Docker容器技術(shù)架構(gòu)和技術(shù)優(yōu)勢(shì),提出通過(guò)部署基于Docker的私有云平臺(tái)和堡壘機(jī)平臺(tái),有效解決了醫(yī)院信息化建設(shè)中存在的數(shù)據(jù)安全隱患、遠(yuǎn)程運(yùn)維效率低等問(wèn)題。目前的研究是在有限環(huán)境下進(jìn)行的,運(yùn)行中可能還會(huì)遇到挑戰(zhàn)。隨著新技術(shù)的發(fā)展和監(jiān)管要求的變化,未來(lái)還需要進(jìn)一步加強(qiáng)數(shù)據(jù)加密技術(shù)和隱私保護(hù)機(jī)制的研究,提高系統(tǒng)的可靠性和容錯(cuò)能力,確保在各種環(huán)境下的穩(wěn)定運(yùn)行。
電腦知識(shí)與技術(shù)2024年29期