梁光瑞 魏國 楊光
摘 ?要:隨著數(shù)字信息化時代的到來,無論是傳統(tǒng)的企業(yè)還是新型的行業(yè)都需要適應數(shù)字化時代的要求,特別是對于企業(yè)的信息化建設(shè)來說,相關(guān)數(shù)字化軟硬件的應用必不可少,對這些應用的處理也成為信息化建設(shè)的一個重要內(nèi)容,而在何種環(huán)境下采用何種方式需要企業(yè)高度重視。這其中基于容器技術(shù)的微服務架構(gòu)為企業(yè)數(shù)字化建設(shè)提供了良好的平臺,通過在容器技術(shù)提供的高效運行平臺為應用進行微服務化對于企業(yè)滿足業(yè)務需求已經(jīng)成為信息化建設(shè)的焦點。
關(guān)鍵詞:微服務架構(gòu);容器技術(shù);應用集成
中圖分類號:TP393 文獻標志碼:A 文章編號:2095-2945(2020)19-0166-02
Abstract: With the advent of the digital information age, both traditional enterprises and new industries need to adapt to the requirements of the digital age. Especially for the information construction of enterprises, the application of relevant digital software and hardware is indispensable. The processing of these applications has also become an important part of information construction, and enterprises need to attach great importance to what kind of environment and which way to adopt. Among them, the micro-service architecture based on container technology provides a good platform for enterprise digital construction. Micro-service for applications through the efficient operation platform provided by container technology has become the focus of information construction for enterprises to meet the needs of businesses.
Keywords: micro-service architecture; container technology; application integration
1 微服務架構(gòu)的概念
云計算技術(shù)的發(fā)展直接促進了微服務和微服務架構(gòu)的產(chǎn)生,作為一種獨特的設(shè)計風格架構(gòu),它代表了架構(gòu)的發(fā)展趨勢和方向,特別是在架構(gòu)朝向分布式發(fā)展和軟件架構(gòu)動態(tài)彈性伸縮兩個方面,微服務架構(gòu)其就是將服務進行微小化,通過細小化各項應用形成一對一的業(yè)務功能細分,由于每一項細分化的應用微服務都是獨立進行的,且各服務之間有很清晰的邊界,而這些單一的微服務是通過輕量級通信機制互相配合溝通的方式來達到一個應用的完整組合。但是微服務架構(gòu)由于成本較高,這導致進行微服務架構(gòu)的實施和應用存在一定的弱勢,而隨著容器技術(shù)的應用(如Docker等),這為較低成本的實施微服務化應用提供了非常好的基礎(chǔ)保障和平臺。
2 微服務架構(gòu)的特性
從微服務架構(gòu)的概念中可以看到微服務的一些特點:專注于實現(xiàn)有限的業(yè)務功能;獨立于其他(微)服務,并可以在不依賴其他服務的基礎(chǔ)上解耦各項服務;并通過不依賴語言的API實現(xiàn)溝通;實現(xiàn)與底層平臺和基礎(chǔ)設(shè)施的解耦。
2.1 微服務架構(gòu)的優(yōu)勢
(1)規(guī)模簡單不復雜。微服務由于對應用進行細分,這樣就形成了點對點、一對一的服務,這也是微服務功能的主要特點,并且對每項服務的邊界通過接口定義的方式實現(xiàn)清晰的表述。這樣就可以不用再增加很大支出的情況下進行應用的快速高效開發(fā)且保證效率。(2)靈活的技術(shù)選擇。微服務架構(gòu)由于每一個服務都是獨立的因此可以根據(jù)每個項目服務的特點進行最合適最優(yōu)化的技術(shù)選擇,并且可以在原廠商應用架構(gòu)的基礎(chǔ)上進行專業(yè)功能操作。(3)實現(xiàn)了部署的獨立性。微服務由于對于應用進行了功能服務細分,各個細分后的模塊進程是各自獨立的,這樣就可以確保部署時能夠獨立操作。就是其中的每一個微服務發(fā)生變化后也不影響其他微服務的運行,并不用跟傳統(tǒng)的模式一樣對整個應用進行編譯。因此,獨立性很強的微服務可以在灰度發(fā)布方面很容易實現(xiàn)同時能加快發(fā)布的頻率且對環(huán)境不產(chǎn)生影響。(4)擴展性強。微服務由于獨立性的優(yōu)勢可以根據(jù)實際的應用需要進行靈活性的服務擴展而且明顯節(jié)約資源。(5)良好的容錯性。微服務獨立的特性讓每一個細分的應用在出現(xiàn)故障后并不影響整個應用的運行,而是只是這個發(fā)生故障的微服務停止運行。(6)良好的重用性。相對細分獨立的微服務可以具有良好的重用性。
2.2 微服務架構(gòu)的缺點
微服務架構(gòu)雖然具有諸多的優(yōu)勢,但是在應用運行過程中也存在著不少的缺點,總結(jié)起來說主要有以下幾個方面:(1)由于微服務架構(gòu)的細分性,加之隨著微服務數(shù)量的增多,會出現(xiàn)操作過多的問題并且管理的復雜性也明顯的增加。(2)分布式架構(gòu)是微服務的主要特性,但是分布部署過程中存在難以進行有效跟蹤的問題,在微服務的應用過程中,由于分布式系統(tǒng)的原因,復雜性是其固有的特點,要讓其可用性更好,需要有相應的數(shù)據(jù)庫,而這個分布式數(shù)據(jù)庫受技術(shù)限制難以有效的進行建設(shè)。(3)對于一個應用來說,雖然微服務具體細分到了每一個專項功能,但是在實際應用過程中這些微服務之間互相有一定的聯(lián)系,如果在應用中對其中的某一項微服務進行調(diào)整,其它的微服務往往也會受到一定的影響。
3 基于容器技術(shù)平臺的微服務實現(xiàn)
微服務要想更好的實現(xiàn)且更加高效,容器技術(shù)為其提供了非常好的平臺,通過容器作為一個微服務架構(gòu)運行的平臺,它克服了以往虛擬機進行微服務運行所存在的各種弊端,雖然虛擬機也可以有效的實現(xiàn)虛擬化,但是虛擬機的性能明顯落后,首先在虛擬機上進行微服務應用啟動速度會非常慢,并且利用率很低,而且虛擬機進行高速的微服務運算需要更多的硬件設(shè)備來實現(xiàn)OS的功能,并且在一臺普通的電腦上運行,其運行的資源數(shù)量非常有限,最多是十幾個,這就大大增加了硬件設(shè)備成本,并且虛擬機自身運行也占據(jù)了一部分資源,而容器技術(shù)則不會有這樣的問題,它自身不需要過多的設(shè)備資源,更不需要相應的架構(gòu)、語言系統(tǒng),并且可以在任何運行的服務器上包括Linux系統(tǒng)的服務器,并且往往可以同時運行數(shù)百上千個容器,同時能快速的對微服務進行啟動運行,大大增加了微服務運行的效率。通過容器技術(shù)提供的微服務運行平臺,使這些應用可以有效的在各種系統(tǒng)、虛擬機以及云空間之間輕松自如的切換。微服務強大的架構(gòu)平臺和容器封裝微服務技術(shù)實現(xiàn)了兩者的有機結(jié)合,大大發(fā)揮了兩者的效率。
4 基于容器技術(shù)的微服務架構(gòu)應用集成實踐
本文以某互聯(lián)網(wǎng)公司的應用實踐為例進行應用集成測試,本次測試數(shù)據(jù)庫同樣采用傳統(tǒng)的DB2數(shù)據(jù)庫,微服務應用也簡單的細分為四個微服務。
4.1 測試環(huán)境
下述兩種架構(gòu)的數(shù)據(jù)庫采用DB2數(shù)據(jù)庫,獨立部署在物理機上,其應用部署如圖1所示。
采用傳統(tǒng)應用結(jié)構(gòu)的部署環(huán)境:其部署情況分別是Rest、Gatway和Service、Rabbit MQ等4個模塊均同時部署在4臺虛機上,每個虛機4Core/16GB。
微服務架構(gòu)部署環(huán)境:除了Cloud Foundry產(chǎn)品占用的資源外,該互聯(lián)網(wǎng)應用的4個微服務部署在2個虛機上,每個虛機配置為2Core/8GB。為了實現(xiàn)負載均衡,另外有一個軟負載均衡服務HAProxy,部署在一個虛機上,配置為2Core/8GB。
4.2 測試內(nèi)容和效果對比
表1、表2分別是采用傳統(tǒng)架構(gòu)和采用微服務架構(gòu)進行的性能測試結(jié)構(gòu)表。從表中可以看出:兩者不同方式的測試結(jié)果具有明顯的不同,且基于容器技術(shù)的微服務更有優(yōu)勢,在應用重啟方面,不同的模塊啟動時間在容器平臺啟動時間要大大短于傳統(tǒng)架構(gòu)服務啟動時間;而在資源的彈性伸縮上,容器技術(shù)更有優(yōu)勢;在最大并發(fā)上,基于容器技術(shù)的微服務架構(gòu)要明顯大于傳統(tǒng)架構(gòu)的并且用到的容器也不需要很多,各個模塊性能的發(fā)揮壓力并不大。
對于云計算平臺上兩者測試的內(nèi)容和效果來看,在云計算平臺上進行微服務架構(gòu)的運行是非常合適且高效的,經(jīng)過在容器技術(shù)平臺上運行的微服務,不僅有效降低了軟硬件資源的成本而且應用功能也得到了有效發(fā)揮,應用的主要業(yè)務功能得以最大化利用,對于一些非業(yè)務功能也可以通過一些公關(guān)微服務得到實現(xiàn),持續(xù)集成、灰度發(fā)布、快捷開發(fā)的優(yōu)勢得以全面發(fā)揮。
5 結(jié)束語
隨著數(shù)字化進程的加快,對于企業(yè)微服務的應用也越來越多,而要實現(xiàn)微服務的高效化,基于容器技術(shù)的微服務集成應用實現(xiàn)了“一次編寫,到處運行”讓相關(guān)業(yè)務運行更高效更有價值。
參考文獻:
[1]孫海洪.微服務架構(gòu)和容器技術(shù)應用[J].金融電子化,2016(05):63-64.
[2]楊鷗.微服務架構(gòu)在容器云中的應用實踐[J].電腦和電信,2017(07):79-81.
[3]張曉明.基于微服務和容器技術(shù)的實時數(shù)據(jù)架構(gòu)研究[J].信息技術(shù)與標準化,2019(05):20-24.