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