摘要:文章介紹了在應用架構(gòu)轉(zhuǎn)型過程中遇到的業(yè)務規(guī)則多且復雜轉(zhuǎn)型難度高、業(yè)務部門需求變化快舊部署架構(gòu)難以適應變化、新硬件資源與存量硬件資源整合共存及新技術(shù)應用的兼容性等問題,提出并分析了使用容器云平臺技術(shù)解決的可行性,結(jié)合具體的整合實踐過程給出了一套使用容器云平臺技術(shù)整合軟硬件資源的方法。該方法在應用架構(gòu)轉(zhuǎn)型過程中異構(gòu)服務器整合、應用系統(tǒng)改造遷移方面取得了良好的效果。
關鍵詞:應用架構(gòu)轉(zhuǎn)型;容器云平臺;服務器資源整合
中圖分類號:TP391? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)19-0058-03
1 應用架構(gòu)轉(zhuǎn)型過程中存在問題
一是業(yè)務規(guī)則多且龐雜,組件間耦合度高;龐大復雜的部署架構(gòu)缺乏靈活性,使得應用的開發(fā)、測試、部署、升級復雜[1],更增加了應用架構(gòu)轉(zhuǎn)型難度。
二是業(yè)務部門業(yè)務需求變化頻繁,陳舊的系統(tǒng)架構(gòu)導致新需求的研發(fā)工作量大,研發(fā)周期長,難以支持新需求的快速響應。
三是隨著信息技術(shù)的不斷發(fā)展,具有高性價比的新信息技術(shù)的應用是今后的趨勢,新技術(shù)架構(gòu)與存量技術(shù)架構(gòu)的共存是資源整合必須面臨的問題。例如節(jié)能、高性價比的ARM架構(gòu)服務器引入,將長期與x86架構(gòu)服務器共存,如何統(tǒng)一應用兩類服務器資源。
四是新技術(shù)發(fā)展日新月異,技術(shù)變革頻率也較以往更快,新技術(shù)層出不窮,如服務器國產(chǎn)化的推進[2],以此帶來了更多的技術(shù)多樣性與不確定性,如何適應技術(shù)的快速變化,做到以不變應萬變。
五是新技術(shù)應用存在諸多兼容性問題,包括操作系統(tǒng)、數(shù)據(jù)庫、中間件等方面的兼容性問題。
2 容器云平臺介紹
容器云平臺是以輕量化 PaaS 平臺的容器化實現(xiàn),并采用容器、容器調(diào)度編排、分布式等技術(shù)構(gòu)建的一種云計算平臺。以容器云平臺作為軟硬件整合方案,一是利用微服務技術(shù)將業(yè)務功能分解為微服務,實現(xiàn)功能解耦,以降低研發(fā)工作量、減少研發(fā)周期,降低應用架構(gòu)轉(zhuǎn)型難度;二是利用容器云平臺異構(gòu)集群管理功能整合不同技術(shù)架構(gòu)服務器,提高服務器資源利用率;三是利用容器部署不依賴任何服務器架構(gòu)、語言、框架及操作系統(tǒng)的特性解決新技術(shù)應用的兼容性問題。
2.1 應用部署方式的演進
應用系統(tǒng)的部署方式經(jīng)歷了物理機部署方式、虛擬機部署方式、虛擬機(物理機)+Docker部署方式、容器云平臺部署方式四個階段,如圖1所示。
1)傳統(tǒng)的應用系統(tǒng)部署方式為物理服務器+操作系統(tǒng)+中間件+應用系統(tǒng)模式。其優(yōu)點是架構(gòu)簡單,技術(shù)成熟,學習成本低,易于掌握,適合小規(guī)模部署;其缺點一是軟硬件耦合度高,應用系統(tǒng)的兼容性很大程度上依賴于中間件的兼容性,而中間件技術(shù)缺乏統(tǒng)一標準,對于不同技術(shù)架構(gòu)的處理器其兼容性無法保障,導致上層應用系統(tǒng)對底層硬件產(chǎn)生較強耦合,不利于軟硬件資源整合,無法提高資源利用率,不利于新技術(shù)的應用,阻礙國產(chǎn)化技術(shù)的發(fā)展。
2)虛擬機部署方式是在傳統(tǒng)部署方式上增加虛擬機層,在物理服務器操作系統(tǒng)之上部署虛擬機,虛擬機內(nèi)部署虛擬服務器操作系統(tǒng),應用部署在虛擬服務器操作系統(tǒng)中。其優(yōu)點是一臺物理服務器上可以部署多個應用,應用間互不影響,提高了系統(tǒng)利用率。其缺點一是虛擬機操作系統(tǒng)占用系統(tǒng)資源,增加系統(tǒng)資源開銷,二是不支持不同架構(gòu)服務器混合部署,例如x86和ARM架構(gòu)服務器不能混合部署虛擬化集群,不利于新架構(gòu)服務器的應用。
3)容器云平臺部署方式是基于Docker容器虛擬化技術(shù)、容器集群技術(shù)及微服務技術(shù),將應用系統(tǒng)、配置及其運行環(huán)境打包成一個獨立的程序包,也稱為容器,直接部署在由異構(gòu)的物理服務器組成容器集群上,得益于Docker容器虛擬化技術(shù)特點,各容器彼此相互獨立。容器直接部署在物理服務器上,不需要虛擬操作系統(tǒng)支持,資源開銷小,降低應用系統(tǒng)與服務器之間的耦合[3],一臺服務器可部署上千個容器,資源利用率極高。
2.2 容器云平臺優(yōu)勢
容器云平臺三大技術(shù)特點決定了它在服務器軟硬件整合應用方面的優(yōu)勢,即Docker容器虛擬化技術(shù)、容器集群管理技術(shù)及微服務技術(shù)。
1)Docker容器虛擬化技術(shù)
Docker容器虛擬化技術(shù)提供一個開源的應用容器引擎,讓開發(fā)者可以以統(tǒng)一的方式打包他們的應用系統(tǒng)、配置、依賴包到一個可移植的容器中,然后發(fā)布到任何安裝了Docker引擎的服務器上。容器引擎不依賴任何服務器架構(gòu)、語言、框架包括操作系統(tǒng),運行容器引擎的服務器可以是不同的技術(shù)架構(gòu)和不同的操作系統(tǒng)。容器間互相獨立,互不影響,不需要虛擬操作系統(tǒng)支持,直接部署在物理服務器上,幾乎沒有資源及性能開銷,一臺物理服務器可以部署上千個容器。
2)容器集群管理技術(shù)
隨著容器數(shù)量的增加,要對大量的容器進行管理,并且需要橫向擴展計算容量,這時就需要使用容器集群管理技術(shù)。Kubernetes是業(yè)界廣泛使用的Docker容器集群管理平臺。Kubernetes能在一組異構(gòu)服務器上管理、編排多容器組合成的應用,編排的最基本單位是容器,而管理的實體是整個應用集群,容器集群管理工具全方位為應用集群實現(xiàn)自動化,包括應用實例部署、健康檢查、自動容錯、應用更新、彈性伸縮等等。
3)微服務技術(shù)
容器的部署是容器集群功能的橫向擴展,而微服務是對容器集群的縱向治理。初期部署的容器是直接打包的應用程序包,程序間不會互相影響[4],這樣會產(chǎn)生功能耦合,例如所有功能都會訪問用戶表來獲取用戶信息,都要復制一份用戶訪問代碼,不論從開發(fā)角度還是系統(tǒng)功能角度都存在較高的耦合,牽一發(fā)而動全身,降低系統(tǒng)效率。將單體應用程序按照領域模型驅(qū)動劃分為多個微服務,不僅可以減少模塊間的耦合,例如修改一個服務不會影響其他功能,能加快功能發(fā)布頻率,對數(shù)據(jù)庫的耦合也會減少,數(shù)據(jù)庫的改動對上層調(diào)用者透明。例如:數(shù)據(jù)庫的分庫分表改動不會影響調(diào)用數(shù)據(jù)訪問服務的業(yè)務功能。
3 基于容器云平臺的應用架構(gòu)轉(zhuǎn)型實踐
在應用架構(gòu)轉(zhuǎn)型中使用容器云部署模式可以大大提升應用程序部署架構(gòu)靈活性、縮短業(yè)務部門需求響應時間、統(tǒng)一應用異構(gòu)服務器集群以提高資源利用率等,但容器云部署模式對存量應用系統(tǒng)的兼容性問題仍然突出,例如對一些比較重要的無法容器化的應用系統(tǒng)支持度不高,導致容器云部署模式無法在整個應用架構(gòu)轉(zhuǎn)型過程中全面鋪開。為最大限度提高應用架構(gòu)轉(zhuǎn)型過程中服務器軟硬件資源整合利用率,提出一種基于容器云平臺的超融合應用架構(gòu)方案。
3.1 一種基于容器云平臺的融合應用架構(gòu)方案
方案將容器云平臺及虛擬機平臺相結(jié)合,綜合容器云平臺優(yōu)勢及虛擬機平臺應用兼容性高的優(yōu)點,優(yōu)勢互補,實現(xiàn)應用系統(tǒng)的全面轉(zhuǎn)型。如圖3所示。
方案優(yōu)點在于:一是將可以容器化改造的應用系統(tǒng)進行容器化改造后,融入容器云平臺中,改造后的應用系統(tǒng)使用統(tǒng)一的虛擬化計算資源池和虛擬化存儲資源池,大大降低資源消耗。
二是使用虛擬機部署不能進行容器化改造的應用系統(tǒng),對于可以進行微服務替代的部分系統(tǒng)功能,使用微服務進行替代,并統(tǒng)一使用虛擬化計算資源池和虛擬化存儲資源池,進一步降低資源消耗,最大程度提升應用架構(gòu)轉(zhuǎn)型中的資源整合率。
1)基礎設施層
基礎設施層包括由異構(gòu)CPU服務器組成的集群,為基礎設施之上構(gòu)建融合虛擬化資源池提供算力支撐。
2)虛擬化資源池
虛擬化資源池是由容器技術(shù)、虛擬化技術(shù)構(gòu)建的計算及存儲功能的統(tǒng)一集成,負責提供應用系統(tǒng)的計算能力、存儲能力支持,它由虛擬化計算資源池和分布式存儲資源池組成。
3)虛擬化計算資源池
虛擬化計算資源池基于Docker容器技術(shù)構(gòu)建,圖4為虛擬化計算資源池架構(gòu)圖,Docker容器虛擬化的優(yōu)勢在于容器直接運行在裸金屬服務器上,避免了傳統(tǒng)虛擬化帶來的額外資源開銷,對CPU虛擬化性能要求極低,可更高效地統(tǒng)一利用異構(gòu)CPU服務器計算資源,形成計算能力,同時借助容器引擎的容器調(diào)度功能,實現(xiàn)計算資源整合池化、按需調(diào)度等功能[5]。
4)分布式存儲資源池
方案集成了Ceph分布式存儲架構(gòu),為整個融合應用架構(gòu)提供存儲支撐。Ceph 是一種統(tǒng)一的分布式存儲解決方案[6],它是基于POSIX 的無節(jié)點故障分布式文件系統(tǒng),具有高可用性、高性能和良好的可擴展性,并且具有數(shù)據(jù)文件無縫復制和容錯功能。Ceph 的統(tǒng)一體現(xiàn)在可以提供文件系統(tǒng)、塊存儲和對象存儲,分布式體現(xiàn)在可以動態(tài)擴展。
5)應用集成接口
應用集成接口將SOA思想及微服務技術(shù)相結(jié)合,通過把各種存量系統(tǒng)通過容器技術(shù)或服務適配程序轉(zhuǎn)化為服務,保證所有存量系統(tǒng)都進行服務化,從而根本上使得應用集成接口是完全基于Web服務的。應用集成接口架構(gòu)如圖6所示。
3.2 基于容器云平臺的應用架構(gòu)轉(zhuǎn)型實踐步驟
1)制定工作方案,確立服務器資源整合改造總體目標
工作方案應提出服務器資源整合改造的指導思想、工作目標、總體框架和實施路徑,主要明確服務器及應用系統(tǒng)的整合范圍,對范圍內(nèi)的服務器及應用系統(tǒng)按照技術(shù)架構(gòu)、應用情況等要素進行分類梳理,按照“統(tǒng)籌謀劃、分類施策、分步實施”工作思路,明確整合改造的技術(shù)路線,及實施步驟。
2)搭建分布式容器云平臺,實現(xiàn)異構(gòu)服務器的協(xié)同應用
根據(jù)目前服務器情況,充分利用新技術(shù)優(yōu)勢,引進分布式容器云平臺,以K8S為核心,配合原有的VMware虛擬化平臺,多方位實現(xiàn)異構(gòu)服務器的協(xié)同應用:
一是實現(xiàn)服務器資源平滑整合過渡。分布式容器云平臺充分利用現(xiàn)有的CPU芯片各異、型號不同的服務器資源,組成異構(gòu)服務器混合基礎設施平臺,實現(xiàn)基于ARM、x86等異構(gòu)CPU芯片的物理設備,構(gòu)建單一資源池及異構(gòu)CPU的多芯協(xié)同,為服務器平滑整合過渡打下堅實基礎。
二是實現(xiàn)存儲資源平滑過渡。結(jié)合未來存儲資源規(guī)劃,統(tǒng)籌現(xiàn)有存儲資源,將多種異構(gòu)存儲資源組合成統(tǒng)一資源池,由分布式容器云平臺管理,實現(xiàn)跨異構(gòu)CPU服務器的統(tǒng)一分布式云存儲能力,并通過相互冗余提升數(shù)據(jù)整體可靠性。
三是實現(xiàn)應用系統(tǒng)平滑過渡。通過分布式容器云平臺的容器管理、容器編排以及統(tǒng)一調(diào)度等功能,實現(xiàn)底層硬件差異解耦。無論底層是何種架構(gòu),容器云平臺均自動管理應用的部署及運行。底層硬件架構(gòu)對應用層完全透明,保障應用層在底層硬件架構(gòu)替換后維持平穩(wěn)運行。
容器云平臺的應用,將異構(gòu)服務器資源一體化,大大增強了異構(gòu)服務器資源整合、統(tǒng)一運用的可行性和實施效率,有效解決了異構(gòu)服務器協(xié)同應用的問題,并實現(xiàn)上層應用與基礎設施解耦合,對上層應用屏蔽服務器設施差異,將上層應用進行容器化改造,大大提高了上層應用在異構(gòu)基礎設施上的部署效率。
3)分類實施進行應用系統(tǒng)的改造及遷移
在全面掌握應用系統(tǒng)架構(gòu)情況下,按照信息系統(tǒng)架構(gòu)及是否有源代碼情況將應用系統(tǒng)分類:對有源代碼,可以進行容器化改造的應用系統(tǒng)進行改造后部署到容器云平臺。對于功能簡單的系統(tǒng)進行微服務化改造后再部署到容器云平臺。對于功能復雜,源代碼丟失,不適合容器化的應用系統(tǒng)整體遷移到Vmware虛擬化平臺,待后期使用新系統(tǒng)對其進行替代。
4 結(jié)束語
本文提出并分析了使用容器云平臺技術(shù)解決服務器軟硬件資源整合的可行性,結(jié)合具體的整合實踐過程給出了一套使用容器云平臺技術(shù)整合軟硬件資源的方法。該實踐方法在單位應用架構(gòu)轉(zhuǎn)型過程中異構(gòu)服務器整合、應用系統(tǒng)改造遷移方面取得了良好的效果。
參考文獻:
[1] 于澤萍.面向微服務架構(gòu)的容器云平臺設計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2018.
[2] 陳慧娟.國產(chǎn)虛擬化平臺的應用實踐[J].金融科技時代,2016,24(4):27-29.
[3] 謝藝平.基于超融合架構(gòu)的虛擬云桌面系統(tǒng)設計及應用[J].電腦與信息技術(shù),2022,30(2):30-32.
[4] 吉承文,馬超,張鐵鋼,等.基于微服務與容器的海南電網(wǎng)數(shù)據(jù)中心云平臺應用研討[J].數(shù)字通信世界,2020(12):172-173,184.
[5] 張寧雨,潘艷紅,王泊涵,等.一種基于國產(chǎn)服務器的輕量化的超融合云平臺設計[J].信息技術(shù)與信息化,2020(12):59-62.
[6] 艾如鵬.基于Openstack的超融合平臺的研究與實現(xiàn)[D].廣州:華南理工大學,2017.
收稿日期:2022-03-26
作者簡介:劉勛(1983—),男,廣西桂林人,工程師,碩士,研究方向為軟件架構(gòu)設計、軟件系統(tǒng)開發(fā)。