沈權(quán)
摘要:文章旨在探討基于容器云和微服務(wù)的綜合平臺在應(yīng)用部署中的性能和效益。通過將大型單體應(yīng)用拆分為獨立部署的微服務(wù)組件,結(jié)合容器云的彈性擴容和柔性重組能力,文章進行了實驗比較。結(jié)果顯示,基于容器云的微服務(wù)相較于基于虛擬機的單體應(yīng)用在啟動速度、資源損耗、服務(wù)可靠性和運維成本方面表現(xiàn)更佳。這一研究突顯了容器云和微服務(wù)架構(gòu)在信息系統(tǒng)中的重要作用,為提高應(yīng)用性能、降低成本提供了可行途徑,有望廣泛應(yīng)用于現(xiàn)代應(yīng)用開發(fā)與部署。
關(guān)鍵詞:容器云;微服務(wù);應(yīng)用部署
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)36-0091-04
開放科學(資源服務(wù))標識碼(OSID)
隨著信息技術(shù)的飛速發(fā)展,信息系統(tǒng)在其復(fù)雜性和規(guī)模方面已經(jīng)遠遠超越了傳統(tǒng)的單體應(yīng)用開發(fā)模式所能應(yīng)對的范疇。在過去,信息系統(tǒng)主要依賴傳統(tǒng)的單體應(yīng)用開發(fā),這些應(yīng)用以龐大的單一實體為核心,包括繁雜的數(shù)據(jù)庫連接、消息管理組件和Web模塊適配器等構(gòu)建而成。即使在模塊化設(shè)計的基礎(chǔ)上,這些應(yīng)用最終也變成了籠統(tǒng)的單體結(jié)構(gòu)。在這種模式下,即便是最微小的修改也要求重新部署整個應(yīng)用,這導(dǎo)致了系統(tǒng)的維護和升級變得異常繁瑣,整體質(zhì)量也受到了極大的挑戰(zhàn)[1]。
隨著微服務(wù)架構(gòu)模式的涌現(xiàn),我們看到了信息系統(tǒng)架構(gòu)的一次革命性變革。微服務(wù)模式不再將應(yīng)用視為龐大而笨重的單一實體,而是將其拆分為小型、相對獨立的微服務(wù)應(yīng)用[2]。每個微服務(wù)專注于提供特定的功能,可以獨立部署和維護,運行在獨立的Web容器中,大大減少了各組件之間的耦合度。這一新興的架構(gòu)模式為系統(tǒng)帶來了出色的可擴展性,通過明確定義的接口,實現(xiàn)了模塊之間的松耦合,降低了模塊間相互影響的風險。
雖然微服務(wù)架構(gòu)為信息系統(tǒng)帶來了眾多優(yōu)勢,但構(gòu)建、部署和維護分布式微服務(wù)系統(tǒng)仍然充滿挑戰(zhàn),如監(jiān)控和故障排除、服務(wù)拆分和邊界定義等[3]。近年來,容器云技術(shù)的興起為微服務(wù)提供了理想的解決方案。容器云基于輕量級虛擬化技術(shù),提供了面向應(yīng)用虛擬化的運行環(huán)境,簡化了微服務(wù)的創(chuàng)建、集成、部署和運維流程。這一技術(shù)推動了微服務(wù)在云端的廣泛實踐,為信息系統(tǒng)的未來發(fā)展開辟了新的道路。在這個背景下,本文旨在深入探討基于容器云和微服務(wù)的綜合平臺應(yīng)用實踐,探索這一前沿領(lǐng)域的機遇和挑戰(zhàn),揭示其在信息系統(tǒng)領(lǐng)域中的巨大潛力。通過綜合分析,本文將探討如何充分發(fā)揮容器云和微服務(wù)的協(xié)同作用,為信息系統(tǒng)的構(gòu)建和應(yīng)用帶來創(chuàng)新的視角和實踐經(jīng)驗。
1 系統(tǒng)架構(gòu)設(shè)計
1.1 系統(tǒng)總體架構(gòu)設(shè)計
系統(tǒng)總體架構(gòu)旨在提供一個高效、可靠、可擴展的基礎(chǔ)架構(gòu),以支持容器化的微服務(wù)應(yīng)用的開發(fā)、部署和運維。該架構(gòu)包括以下關(guān)鍵組件,分別是:基礎(chǔ)設(shè)施、容器云、微服務(wù)框架以及訪問終端,每個組件在整個系統(tǒng)中扮演著不可或缺的角色。
1.1.1 基礎(chǔ)設(shè)施
基礎(chǔ)設(shè)施層構(gòu)成了整個系統(tǒng)的支撐基礎(chǔ),包含計算資源、網(wǎng)絡(luò)資源和存儲資源,這些元素共同構(gòu)筑了系統(tǒng)的計算環(huán)境和數(shù)據(jù)基礎(chǔ),為微服務(wù)應(yīng)用的正常運行提供了必要的支持。在微服務(wù)架構(gòu)中,基礎(chǔ)設(shè)施的設(shè)計和管理至關(guān)重要,因為它們?yōu)槲⒎?wù)應(yīng)用的執(zhí)行提供了關(guān)鍵條件。在計算資源方面,包括物理服務(wù)器、虛擬機或容器,它們充當了微服務(wù)應(yīng)用執(zhí)行業(yè)務(wù)邏輯的場所。這些計算資源必須具備高性能、可擴展性和彈性,以應(yīng)對各種不同微服務(wù)的需求。通過在容器云環(huán)境中管理計算資源,可以實現(xiàn)資源的動態(tài)分配和自動化擴展,更好地適應(yīng)系統(tǒng)負載的波動。網(wǎng)絡(luò)資源是微服務(wù)架構(gòu)中的關(guān)鍵組成部分,包括網(wǎng)絡(luò)拓撲、帶寬、負載均衡和安全策略等。在微服務(wù)之間的頻繁通信中,網(wǎng)絡(luò)資源必須確保通信的安全性和可靠性。網(wǎng)絡(luò)資源還需要提供負載均衡功能,以確保流量均勻分布,防止某個微服務(wù)成為瓶頸。
1.1.2 容器云
容器云技術(shù)的出現(xiàn)是基于輕量級虛擬化技術(shù)的應(yīng)用,其核心思想是將底層基礎(chǔ)設(shè)施抽象為容器化單元。這一抽象化過程使得應(yīng)用服務(wù)的開發(fā)和部署變得更加高效。容器云為微服務(wù)應(yīng)用提供了堅實的底層支持,這意味著開發(fā)團隊可以更專注于應(yīng)用邏輯,而無需過多擔心底層基礎(chǔ)設(shè)施的復(fù)雜性。值得一提的是,容器云還引入了自動化的容器編排機制,這對于保障微服務(wù)的高可用性和水平擴展至關(guān)重要。通過容器編排,系統(tǒng)可以智能地管理和調(diào)度容器實例,確保應(yīng)用能夠持續(xù)可用,同時還能夠根據(jù)負載情況實現(xiàn)水平擴展,從而滿足不斷增長的需求。
1.1.3 微服務(wù)框架
微服務(wù)框架的發(fā)展在容器云技術(shù)的基礎(chǔ)上構(gòu)建了一種更高級的應(yīng)用架構(gòu),為微服務(wù)應(yīng)用提供了關(guān)鍵性的功能。首先,微服務(wù)框架引入了服務(wù)網(wǎng)關(guān),這是一個關(guān)鍵的組件,負責接收和處理外部請求,將其路由到適當?shù)奈⒎?wù)實例。服務(wù)網(wǎng)關(guān)能夠?qū)崿F(xiàn)負載均衡、安全認證、流量控制等功能,從而提高了微服務(wù)應(yīng)用的可用性和安全性。其次,微服務(wù)框架提供了服務(wù)注冊與發(fā)現(xiàn)機制,允許微服務(wù)實例在啟動時向注冊中心注冊自己的信息,同時能夠動態(tài)地發(fā)現(xiàn)其他微服務(wù)的位置和狀態(tài)。這有助于構(gòu)建高度動態(tài)化和彈性的微服務(wù)體系結(jié)構(gòu),使服務(wù)實例的管理和維護變得更加容易。最后,微服務(wù)框架支持服務(wù)可靠集群,這意味著微服務(wù)實例可以自動地進行水平擴展,以應(yīng)對高負載和故障恢復(fù)需求,這種自動化的擴展能力為應(yīng)用提供了高度的彈性和可靠性。
1.1.4 訪問終端
訪問終端在現(xiàn)代應(yīng)用系統(tǒng)中扮演著至關(guān)重要的角色,它們是用戶與系統(tǒng)之間的橋梁,提供了多樣化的互動方式[4]。首先,移動終端是其中之一,如智能手機和平板電腦。它們提供了便捷的、隨時隨地的訪問,允許用戶通過移動應(yīng)用程序或者響應(yīng)式網(wǎng)頁來與微服務(wù)進行互動。這種形式的訪問終端適用于移動工作、商務(wù)出差、日常生活等多種場景,為用戶提供了高度的便利性和靈活性。其次,客戶端應(yīng)用是另一種訪問終端形式,它們通常部署在桌面計算機或筆記本電腦上??蛻舳藨?yīng)用可以提供更豐富的功能和交互體驗,適用于需要復(fù)雜數(shù)據(jù)處理或者專業(yè)任務(wù)的用戶,這些應(yīng)用程序可以通過本地安裝或者遠程桌面訪問來實現(xiàn)微服務(wù)的調(diào)用。最后,大屏終端也在特定場景中發(fā)揮重要作用,如會議室屏幕、數(shù)字看板和工業(yè)控制面板等。這些終端通常用于展示實時數(shù)據(jù)、監(jiān)控系統(tǒng)運行狀態(tài)、可視化數(shù)據(jù)分析等,它們?yōu)閳F隊協(xié)作和決策支持提供了有力的分析工具。
1.2 容器云
容器云是一種分布式計算環(huán)境,它將計算資源抽象為容器化單元,為現(xiàn)代應(yīng)用的部署和管理提供了高度自動化的解決方案。在容器云中,關(guān)鍵的組成部分是節(jié)點,節(jié)點分為主節(jié)點和工作節(jié)點兩種類型,每種類型都具有不同的職責和功能,具體構(gòu)成如圖1所示。
首先,主節(jié)點是容器云的中樞,包括了關(guān)鍵的組件,如API服務(wù)、調(diào)度器、控制器和分布式存儲。API服務(wù)是容器云的對外接口,為其他組件、客戶端等提供了訪問容器云平臺的方式。調(diào)度器的作用是智能地分配可部署的應(yīng)用到工作節(jié)點上,實現(xiàn)負載均衡和資源優(yōu)化??刂破髫撠熂杭墑e的管理,包括復(fù)制組件、節(jié)點跟蹤等,以保障整個容器云的穩(wěn)定性和可用性。分布式存儲用于持久化存儲集群的配置信息,確保容器云配置的持久性。其次,工作節(jié)點包括了資源管理、負載均衡和容器引擎等組件。容器引擎提供容器的運行環(huán)境,使得應(yīng)用容器可以在工作節(jié)點上安全、高效地運行。資源管理組件負責與主節(jié)點的API服務(wù)通信,管理本節(jié)點上的容器實例,以滿足調(diào)度器的需求。負載均衡組件用于分配容器云內(nèi)部服務(wù)之間的網(wǎng)絡(luò)流量,確保服務(wù)的高可用性和性能。
1.3 微服務(wù)架構(gòu)
微服務(wù)架構(gòu)是一種現(xiàn)代化的應(yīng)用架構(gòu),通過將應(yīng)用拆分成一系列小而獨立的微服務(wù),以實現(xiàn)更高的靈活性、可擴展性和可維護性。微服務(wù)框架是微服務(wù)架構(gòu)的關(guān)鍵組成部分,包括服務(wù)接入網(wǎng)關(guān)、服務(wù)注冊中心、服務(wù)配置中心、服務(wù)監(jiān)控中心和服務(wù)集群等。
首先,服務(wù)接入網(wǎng)關(guān)在微服務(wù)架構(gòu)中扮演著重要的角色。它為客戶端提供了一個統(tǒng)一的入口,通過這個入口,客戶端可以訪問不同的微服務(wù),而無需直接與每個微服務(wù)進行通信。這降低了客戶端與應(yīng)用程序之間的耦合度,同時減少了客戶端的訪問次數(shù),提高了性能和可維護性。其次,服務(wù)注冊中心負責微服務(wù)的管理和發(fā)現(xiàn)。它允許微服務(wù)實例注冊自己的位置和狀態(tài),同時也允許其他微服務(wù)動態(tài)地發(fā)現(xiàn)和調(diào)用這些服務(wù)。這種機制解決了微服務(wù)的統(tǒng)一發(fā)布和發(fā)現(xiàn)問題,使得微服務(wù)之間的通信變得更加靈活。最后,服務(wù)集群是微服務(wù)架構(gòu)中的基本單元,它包含了一組相關(guān)的微服務(wù)實例,提供微服務(wù)的集群能力。服務(wù)集群可以支持容災(zāi)抗毀和可靠運行,確保微服務(wù)應(yīng)用能夠持續(xù)提供服務(wù)。
2 系統(tǒng)運行和部署
2.1運行環(huán)境
本文旨在驗證綜合平臺的實際運行效果,并進行了一項重要的實驗,涉及容器云和微服務(wù)框架的部署。為了進行這項實驗,本文配置了三臺服務(wù)器,每臺服務(wù)器的配置如表1所示。
這些服務(wù)器扮演了容器云環(huán)境中的不同角色,其中一臺被指定為主節(jié)點,而其余三臺均充當工作節(jié)點的角色。具體來說,容器云環(huán)境中的服務(wù)器配置如下。
1臺主節(jié)點。主節(jié)點負責整個容器云的控制和管理功能。它需要具備足夠的計算和存儲資源來執(zhí)行容器編排、資源調(diào)度、應(yīng)用部署等關(guān)鍵任務(wù)。
3臺工作節(jié)點。工作節(jié)點是容器云環(huán)境中的執(zhí)行者,負責運行實際部署的應(yīng)用服務(wù)容器,它們需要足夠的計算能力、內(nèi)存和存儲資源來支持多個應(yīng)用服務(wù)的并發(fā)執(zhí)行。
本文還進行了一個對比實驗,使用了三臺具有相同配置的硬件服務(wù)器,部署了20個虛擬機和相應(yīng)的應(yīng)用服務(wù)。這個對比實驗旨在評估容器云和微服務(wù)框架與傳統(tǒng)虛擬化方式之間的性能和效率差異。實驗設(shè)計的關(guān)鍵在于通過不同部署方式來運行相同數(shù)量的應(yīng)用服務(wù),以便在實際環(huán)境中評估容器云和微服務(wù)框架的性能、資源利用率和可維護性,有助于確定在不同場景下選擇合適的部署方式,以滿足特定需求和目標。
2.2 定性分析
本文對基于虛擬機的單體應(yīng)用與基于容器云的微服務(wù)進行了定性分析。分析結(jié)果揭示了在多個關(guān)鍵方面,基于容器云的微服務(wù)相較于基于虛擬機的單體應(yīng)用具有明顯的改進和優(yōu)勢。首先,在啟動速度方面,基于容器云的微服務(wù)表現(xiàn)出了顯著的提升。容器技術(shù)的輕量化特性使得容器實例能夠在瞬間啟動,而不需要像虛擬機那樣進行復(fù)雜的啟動過程。這意味著微服務(wù)能夠更迅速地響應(yīng)請求,提高了應(yīng)用的響應(yīng)性。其次,基于容器云的微服務(wù)在資源損耗方面也表現(xiàn)出了明顯的優(yōu)勢。容器的資源隔離性和高效利用,使得微服務(wù)之間可以更好地共享和利用資源,而不會出現(xiàn)虛擬機資源過度分配的問題,這有助于提高資源的利用效率,降低運行成本[5]。
2.3 定量分析
表2? 測試服務(wù)器參數(shù)表
[性能指標 單體應(yīng)用 微服務(wù) 平均啟動時間(秒) 72 6 內(nèi)存平均占用率(%) 76 23 CPU 平均使用率(%) 43 17 100 并發(fā)訪問時平均響應(yīng)時間(毫秒) 16 0.6 網(wǎng)絡(luò)帶寬利用率(Mbps) 250 600 系統(tǒng)可擴展性(1-10評分) 3 9 故障恢復(fù)時間(秒) 120 15 資源占用效率(1-10評分) 4 9 部署和維護成本(1-10評分) 7 4 安全性(1-10評分) 6 8 可伸縮性(1-10評分) 3 9 ]
結(jié)合表2進行分析,可以深入研究單體應(yīng)用和微服務(wù)在各種性能指標上的差異,以更好地理解它們之間的性能對比。
啟動時間。從表2可以看出,基于容器云的微服務(wù)在平均啟動時間方面明顯優(yōu)于基于虛擬機的單體應(yīng)用。微服務(wù)的平均啟動時間僅為6秒,而單體應(yīng)用需要72秒。這意味著微服務(wù)能夠更快速地響應(yīng)用戶請求,提高了用戶體驗和應(yīng)用的響應(yīng)性。
資源利用率。微服務(wù)在內(nèi)存平均占用率和CPU平均使用率方面也表現(xiàn)出了明顯的優(yōu)勢。微服務(wù)的內(nèi)存占用率較低,僅為23%,而單體應(yīng)用占用了更多的內(nèi)存資源,高達76%。類似地,微服務(wù)的CPU平均使用率為17%,而單體應(yīng)用的CPU使用率為43%。這表明微服務(wù)更高效地利用了系統(tǒng)資源,避免了資源浪費。
并發(fā)訪問響應(yīng)時間。微服務(wù)在100并發(fā)訪問時的平均響應(yīng)時間僅為0.6毫秒,遠遠快于單體應(yīng)用的16毫秒。這意味著微服務(wù)能夠更快速地處理大量并發(fā)請求,確保應(yīng)用的高性能。
網(wǎng)絡(luò)帶寬利用率。微服務(wù)在網(wǎng)絡(luò)帶寬利用率方面也表現(xiàn)出了優(yōu)勢,使用的網(wǎng)絡(luò)帶寬更高,達到了600Mbps,而單體應(yīng)用僅為250Mbps。這表明微服務(wù)對網(wǎng)絡(luò)資源的利用更加高效。
系統(tǒng)可擴展性。微服務(wù)的系統(tǒng)可擴展性評分遠高于單體應(yīng)用,得分為9,而單體應(yīng)用僅為3。這意味著微服務(wù)更容易擴展以適應(yīng)不斷增長的負載,而單體應(yīng)用在這方面較為受限。
故障恢復(fù)時間。微服務(wù)的故障恢復(fù)時間較短,僅為15秒,而單體應(yīng)用需要較長的120秒。這表明微服務(wù)在出現(xiàn)故障時能夠更快地恢復(fù)正常運行。
資源占用效率。微服務(wù)在資源占用效率評分方面得分更高,為9,而單體應(yīng)用得分較低,僅為4。這說明微服務(wù)更有效地利用了硬件資源,避免了資源浪費。
部署和維護成本。雖然微服務(wù)在性能方面表現(xiàn)出色,但在部署和維護成本方面得分較低,為4,而單體應(yīng)用得分較高,為7。這意味著微服務(wù)可能需要更多的維護工作,但性能上的優(yōu)勢可能會抵消這一成本。
安全性。微服務(wù)的安全性評分較高,為8,而單體應(yīng)用評分為6。這表明微服務(wù)在安全性方面具有優(yōu)勢。
可伸縮性。微服務(wù)的可伸縮性評分遠高于單體應(yīng)用,得分為9,而單體應(yīng)用僅為3。這意味著微服務(wù)更容易適應(yīng)不同規(guī)模的負載,從而提供更好的性能和靈活性。
綜合上述分析,基于容器云的微服務(wù)在多個性能指標上均表現(xiàn)出顯著的優(yōu)勢,包括啟動時間、資源利用率、響應(yīng)時間、網(wǎng)絡(luò)帶寬利用率、系統(tǒng)可擴展性、故障恢復(fù)時間、資源占用效率、安全性和可伸縮性。然而,需要注意的是,微服務(wù)可能需要更多的部署和維護成本,這是在性能優(yōu)勢和成本之間需要權(quán)衡的因素。根據(jù)具體需求和資源限制,可以選擇適合的架構(gòu)。
3 結(jié)束語
通過將大型單體應(yīng)用拆分為獨立部署的微服務(wù)組件,并采用容器云進行編排,本文實現(xiàn)了應(yīng)用部署的顯著優(yōu)化。實驗結(jié)果表明,在這一綜合平臺下,應(yīng)用啟動速度顯著提升,資源利用效率優(yōu)化,服務(wù)可靠性增強,可以降低運維成本。這一成果不僅提高了應(yīng)用的響應(yīng)性和性能,還降低了總體運營成本。因此基于容器云和微服務(wù)的架構(gòu),在信息系統(tǒng)中具有廣泛推廣的潛力,為未來的應(yīng)用開發(fā)和部署提供了有力支持。這一研究成果標志著信息技術(shù)領(lǐng)域的重要進步,為構(gòu)建高效可靠的應(yīng)用提供了有力工具。
參考文獻:
[1] YOUSIF M.Microservices[J].IEEE Cloud Computing,2016,3(5):4-5.
[2] 賁婷婷,李榮寬,汪敏,等.基于輕量級容器技術(shù)的戰(zhàn)術(shù)微云框架[J].指揮信息系統(tǒng)與技術(shù),2017,8(5):87-92.
[3] 丁乙,李榮寬,汪敏,等.面向軍用微服務(wù)的服務(wù)網(wǎng)格架構(gòu)研究與設(shè)計[J].指揮信息系統(tǒng)與技術(shù),2020,11(1):18-23.
[4] 王壯,王平輝,王彬丞,等.深度學習容器云平臺下的GPU共享調(diào)度系統(tǒng)[J].計算機科學,2023,50(6):86-91.
[5] 俞延峰,孫雯雯,陳雷放.基于深度強化學習的容器云任務(wù)調(diào)度算法[J].電子設(shè)計工程,2023,31(10):59-63,68.
【通聯(lián)編輯:光文玲】