摘要:本文通過(guò)從傳統(tǒng)、典型的兩種IT架構(gòu)模式,分布式軟件架構(gòu)與微服務(wù)架構(gòu)兩個(gè)角度,分析IT架構(gòu)如何在大數(shù)據(jù)時(shí)代的轉(zhuǎn)型起到推進(jìn)作用。近年來(lái),大數(shù)據(jù)技術(shù)在我國(guó)的通信、金融、交通等行業(yè)快速的得到了關(guān)注與應(yīng)用,誰(shuí)能先使用大數(shù)據(jù)技術(shù)幫助企業(yè)完成數(shù)字化的戰(zhàn)略轉(zhuǎn)型,誰(shuí)就能先占據(jù)市場(chǎng)的領(lǐng)導(dǎo)地位。而大數(shù)據(jù)技術(shù)的爆發(fā)性增長(zhǎng)且能在企業(yè)快速發(fā)展的原因,很大一部分需要?dú)w功于計(jì)算機(jī)科學(xué)領(lǐng)域前幾十年的完整高效的IT架構(gòu)積累。
關(guān)鍵詞:IT架構(gòu);系統(tǒng)架構(gòu);分布式;微服務(wù)
1 引言
目前越來(lái)越多的企業(yè)開(kāi)始進(jìn)行大規(guī)模數(shù)字化轉(zhuǎn)型,在這種轉(zhuǎn)型的過(guò)程中,大數(shù)據(jù)技術(shù)的應(yīng)用以及大數(shù)據(jù)分析平臺(tái)的搭建成為了重中之重。但是面臨著大數(shù)據(jù)時(shí)代,數(shù)據(jù)繁雜,來(lái)源多樣,且數(shù)據(jù)量龐大的情況,企業(yè)如何能夠選用優(yōu)秀的IT架構(gòu),以及如何將優(yōu)秀的IT架構(gòu)能夠更好地符合企業(yè)不同的業(yè)務(wù)要求,切合地應(yīng)用到企業(yè)的戰(zhàn)略中去,是在大數(shù)據(jù)轉(zhuǎn)型中目前很多企業(yè)和系統(tǒng)架構(gòu)專(zhuān)家需要主要考慮的事情。本文在這種背景下,對(duì)兩種優(yōu)秀的IT架構(gòu),分布式架構(gòu)和微服務(wù)架構(gòu),在大數(shù)據(jù)時(shí)代的企業(yè)的大數(shù)據(jù)平臺(tái)搭建過(guò)程中所做出的貢獻(xiàn)進(jìn)行了分析,希望能夠?yàn)槠髽I(yè)和社會(huì)的大數(shù)據(jù)轉(zhuǎn)型提供一些參考與幫助。
2 lT架構(gòu)概念介紹
2.1 分布式架構(gòu)
分布式部署架構(gòu)通常是為了處理在一段時(shí)間內(nèi)產(chǎn)生的海量數(shù)據(jù),并要求在很短的時(shí)間內(nèi)將計(jì)算結(jié)果計(jì)算出來(lái)的任務(wù),分布式架構(gòu)的解決辦法是使用很多臺(tái)獨(dú)立的服務(wù)器或者計(jì)算主機(jī),然后將其連接起來(lái)成為一個(gè)分布式的網(wǎng)絡(luò),其中在這個(gè)分布式網(wǎng)絡(luò)架構(gòu)中的每一個(gè)計(jì)算主機(jī),在分布式架構(gòu)中,一般將其稱(chēng)為分布式系統(tǒng)的一個(gè)節(jié)點(diǎn)[1]。在一個(gè)分布式架構(gòu)中,會(huì)根據(jù)系統(tǒng)所需要處理的業(yè)務(wù)邏輯,設(shè)置不同的節(jié)點(diǎn)格式。分布式部署使用這種網(wǎng)狀的節(jié)點(diǎn)架構(gòu),來(lái)實(shí)現(xiàn)節(jié)點(diǎn)之間的相互配合與協(xié)作。比如當(dāng)一個(gè)超高難度的計(jì)算任務(wù)來(lái)到分布式架構(gòu)的時(shí)候,分布式架構(gòu)的主進(jìn)程會(huì)根據(jù)預(yù)先依據(jù)系統(tǒng)的業(yè)務(wù)邏輯設(shè)定好的代碼,來(lái)將這個(gè)大的任務(wù)拆分成很多個(gè)可以獨(dú)立計(jì)算的子任務(wù),將其分發(fā)給這個(gè)分布式架構(gòu)中的不同節(jié)點(diǎn),然后分布式架構(gòu)中這些計(jì)算節(jié)點(diǎn)會(huì)根據(jù)所設(shè)置的代碼運(yùn)算的算法進(jìn)行同時(shí)運(yùn)算,并且能夠?qū)⒂?jì)算的結(jié)果通過(guò)記錄傳輸?shù)街鞴?jié)點(diǎn),主節(jié)點(diǎn)根據(jù)分布式系統(tǒng)中不同節(jié)點(diǎn)已經(jīng)計(jì)算出的結(jié)果,最后將每個(gè)節(jié)點(diǎn)上計(jì)算出來(lái)的數(shù)據(jù)進(jìn)行總結(jié);從而最終實(shí)現(xiàn)在極短的時(shí)間里完成大數(shù)據(jù)時(shí)代單個(gè)服務(wù)器或者主機(jī)的傳統(tǒng)架構(gòu)不能解決的大數(shù)據(jù)難題。而且這種分布式架構(gòu)因其網(wǎng)狀架構(gòu)的模式設(shè)計(jì)形式,如果一個(gè)節(jié)點(diǎn)發(fā)生了異常,比如是在分配給其計(jì)算任務(wù)的時(shí)候發(fā)生了系統(tǒng)的宕機(jī)等情況,在這個(gè)時(shí)候,主節(jié)點(diǎn)就可以立馬檢測(cè)到這種情況,并使用Docker技術(shù),或者Linux中的CP命令,將整個(gè)節(jié)點(diǎn)的應(yīng)用,根據(jù)分布式架構(gòu)中完善的日志系統(tǒng)和日志中記載的問(wèn)題,重新啟動(dòng)一臺(tái)新的分布式架構(gòu)計(jì)算節(jié)點(diǎn)。這樣就能保證數(shù)據(jù)的穩(wěn)定運(yùn)行,不會(huì)因?yàn)橐慌_(tái)服務(wù)計(jì)算節(jié)點(diǎn)的問(wèn)題,而導(dǎo)致數(shù)據(jù)的計(jì)算錯(cuò)誤以及計(jì)算失敗等問(wèn)題。
在大數(shù)據(jù)云計(jì)算平臺(tái)中,分布式系統(tǒng)架構(gòu)可以提供如下優(yōu)勢(shì):
(1)分布式系統(tǒng)架構(gòu)技術(shù)可以為任何系統(tǒng)架構(gòu)節(jié)點(diǎn)上的獨(dú)立的物理機(jī)或者獨(dú)立的虛擬機(jī)提供信息塊、數(shù)據(jù)文件和數(shù)據(jù)模式對(duì)象等數(shù)據(jù)存儲(chǔ)服務(wù);
(2)分布式系統(tǒng)架構(gòu)支持多種企業(yè)級(jí)特性,包括大數(shù)據(jù)集群的快照功能、大數(shù)據(jù)集群的精簡(jiǎn)配置功能、大數(shù)據(jù)集群的數(shù)據(jù)備份、大數(shù)據(jù)集群的數(shù)據(jù)加密,壓縮功能等[2],幫助大數(shù)據(jù)分析技術(shù)可以更好的對(duì)源源不斷的復(fù)雜數(shù)據(jù)進(jìn)行整合或替代,保證大數(shù)據(jù)處理中現(xiàn)有集中的信息存儲(chǔ)設(shè)施能夠穩(wěn)定高效的支撐企業(yè)各種業(yè)務(wù)應(yīng)用。
(3)分布式系統(tǒng)架構(gòu)技術(shù)可實(shí)現(xiàn)云計(jì)算大數(shù)據(jù)分析平臺(tái)中PB、EB級(jí)以上容量的大數(shù)據(jù)信息存儲(chǔ)資源池按照企業(yè)業(yè)務(wù)的不同維度進(jìn)行靈活擴(kuò)展,相對(duì)于傳統(tǒng)的單個(gè)服務(wù)器數(shù)據(jù)處理模式的集中存儲(chǔ),分布式系統(tǒng)架構(gòu)技術(shù)成本更低。
2.2 微服務(wù)架構(gòu)
在微服務(wù)出現(xiàn)之前,人們通過(guò)MONILITHIC(單體架構(gòu))來(lái)開(kāi)發(fā)應(yīng)用,一個(gè)系統(tǒng)的應(yīng)用只使用一套代碼。使用這種模式設(shè)計(jì)的系統(tǒng)中的所有功能與對(duì)外服務(wù)都編寫(xiě)于一套代碼中,但是隨著系統(tǒng)的升級(jí)迭代,以及系統(tǒng)承載業(yè)務(wù)的變化,系統(tǒng)中的模塊會(huì)越來(lái)越多,如果系統(tǒng)想要升級(jí)或者擴(kuò)展,都變得非常困難。特別是當(dāng)所有模塊的代碼放在一起的時(shí)候,如果其中一個(gè)模塊的代碼出現(xiàn)了BUG,那么整個(gè)系統(tǒng)就將全部崩潰,無(wú)法繼續(xù)運(yùn)行下去,這種模式的系統(tǒng)也無(wú)法擁有強(qiáng)悍的穩(wěn)定性。因此在近些年出現(xiàn)了微服務(wù)的概念,所謂微服務(wù)的概念就是說(shuō),將一個(gè)系統(tǒng)的業(yè)務(wù)邏輯拆分成很多個(gè)模塊,微服務(wù)架構(gòu)相比于傳統(tǒng)系統(tǒng)開(kāi)發(fā)架構(gòu)有著粒度小,僅專(zhuān)注于做一件事情,運(yùn)行于分布式進(jìn)程,輕量級(jí)的通信協(xié)議,松耦合、獨(dú)立和多版本部署,多實(shí)例部署,提供更好的擴(kuò)展能力等特點(diǎn)。比如企業(yè)的大數(shù)據(jù)平臺(tái)建設(shè),可以將前期企業(yè)必要數(shù)據(jù)的獲取,從企業(yè)需求的不同維度進(jìn)行分析,為企業(yè)的用戶及員工提供易于理解且直觀的數(shù)據(jù)可視化數(shù)據(jù)報(bào)表展示平臺(tái)等功能,分別拆分出來(lái),各自使用一套獨(dú)立的代碼進(jìn)行開(kāi)發(fā)。然后每個(gè)模塊直接使用方法接口進(jìn)行通信。每個(gè)模塊出錯(cuò)都不影響其他模塊使用,當(dāng)其中一個(gè)模塊出錯(cuò),使用服務(wù)降級(jí)的概念,可以直接在系統(tǒng)中進(jìn)行提示,提升用戶體驗(yàn)度。使用微服務(wù)的概念將系統(tǒng)中的多個(gè)模塊拆分成獨(dú)立的服務(wù)以后,每個(gè)服務(wù)只需要負(fù)責(zé)自己的功能就可以,開(kāi)發(fā)人員在開(kāi)發(fā)當(dāng)前服務(wù)的時(shí)候,也不用擔(dān)心會(huì)影響到其他的服務(wù),滿足現(xiàn)代開(kāi)發(fā)中持續(xù)集成,持續(xù)迭代概念的要求。
3 lT架構(gòu)在大數(shù)據(jù)時(shí)代中的應(yīng)用研究
3.1 分布式架構(gòu)在大數(shù)據(jù)時(shí)代的應(yīng)用
大數(shù)據(jù)時(shí)代的中心數(shù)據(jù)庫(kù)數(shù)據(jù)龐大,數(shù)據(jù)的查詢會(huì)變得困難,查詢速度會(huì)變慢,特別當(dāng)多線程共同對(duì)同一個(gè)服務(wù)器進(jìn)行數(shù)據(jù)查詢時(shí)候,數(shù)據(jù)庫(kù)中心負(fù)載太大,可能會(huì)造成數(shù)據(jù)處理效率變低。因此,現(xiàn)在采用分布式存儲(chǔ)技術(shù)來(lái)分割大量數(shù)據(jù),將不同的數(shù)據(jù)模塊存儲(chǔ)在不同的數(shù)據(jù)存儲(chǔ)服務(wù)器上,并使用不同的網(wǎng)絡(luò)接口來(lái)實(shí)現(xiàn)它們之間的數(shù)據(jù)同步,然后再將數(shù)據(jù)結(jié)果匯總返回到本地,可以加快數(shù)據(jù)查詢和處理的速度,提高系統(tǒng)運(yùn)行效率。
同時(shí),隨著企業(yè)的業(yè)務(wù)數(shù)據(jù)的不斷增加,在這種大數(shù)據(jù)時(shí)代,企業(yè)如果需要在極短的時(shí)間內(nèi),根據(jù)企業(yè)的業(yè)務(wù)需要能夠?qū)@種業(yè)務(wù)數(shù)據(jù)進(jìn)行不同維度的分析,如果僅僅使用傳統(tǒng)的數(shù)據(jù)分析模式,使用單臺(tái)服務(wù)器進(jìn)行數(shù)據(jù)的計(jì)算和分析,是無(wú)法在要求的時(shí)間內(nèi)計(jì)算出準(zhǔn)確的結(jié)果的。這種大數(shù)據(jù)時(shí)代的企業(yè)業(yè)務(wù)數(shù)據(jù)分析與計(jì)算,必須依靠分布式架構(gòu)技術(shù),來(lái)將企業(yè)實(shí)時(shí)發(fā)送的業(yè)務(wù)數(shù)據(jù),通過(guò)分布式架構(gòu)的特點(diǎn),將一個(gè)大的業(yè)務(wù)數(shù)據(jù),根據(jù)預(yù)先依據(jù)業(yè)務(wù)邏輯開(kāi)發(fā)好的算法,將這個(gè)大的任務(wù)分解成多個(gè)小的計(jì)算任務(wù),然后分配到分布式架構(gòu)中網(wǎng)狀結(jié)構(gòu)的不同節(jié)點(diǎn)去進(jìn)行計(jì)算,最后將計(jì)算結(jié)果進(jìn)行統(tǒng)一收集,然后交給大數(shù)據(jù)中臺(tái)的前端數(shù)據(jù)展示平臺(tái)去進(jìn)行數(shù)據(jù)的可視化呈現(xiàn)。分布式架構(gòu)的應(yīng)用,能夠幫助大數(shù)據(jù)在企業(yè)中的分布式部署成為可能,也推進(jìn)了大數(shù)據(jù)技術(shù)在數(shù)據(jù)計(jì)算中的時(shí)間縮減和效能提高。
3.2 微服務(wù)架構(gòu)在大數(shù)據(jù)時(shí)代的應(yīng)用
當(dāng)我們開(kāi)發(fā)一個(gè)企業(yè)化大型大數(shù)據(jù)平臺(tái)時(shí)候,我們通常會(huì)發(fā)現(xiàn),大數(shù)據(jù)的不同繁雜的數(shù)據(jù)類(lèi)型,屬性和被查詢和修改的頻率都會(huì)不一樣,而傳統(tǒng)的一個(gè)服務(wù)器的架構(gòu)應(yīng)用下,我們通常會(huì)使用一個(gè)中心數(shù)據(jù)庫(kù),來(lái)存儲(chǔ)所有數(shù)據(jù)。譬如一個(gè)垂直電商大數(shù)據(jù)平臺(tái)的應(yīng)用里面可以有客戶信息數(shù)據(jù)、商品數(shù)據(jù)、購(gòu)物車(chē)數(shù)據(jù)、訂單數(shù)據(jù)和支付數(shù)據(jù)。一個(gè)服務(wù)器的架構(gòu)應(yīng)用下,我們很可能就使用一個(gè)MYSQL數(shù)據(jù)庫(kù)就解決所有問(wèn)題。而微服務(wù)框架下,允許也提倡每一個(gè)服務(wù)模塊下?lián)碛凶约旱臄?shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)可以是SQL類(lèi)型的數(shù)據(jù)庫(kù),譬如Oracle,MYSQL,Postgres等等關(guān)系型存儲(chǔ)數(shù)據(jù)庫(kù),也可以是NOSQL類(lèi)型數(shù)據(jù)庫(kù),譬如MongoDB,Cassandra,Amazon DynamoDB等等[3],企業(yè)可以根據(jù)自己的業(yè)務(wù)大數(shù)據(jù)維度的需求,在NOSQL里面來(lái)選擇哪種類(lèi)型的數(shù)據(jù)庫(kù)。對(duì)不同的模塊選擇不同的開(kāi)發(fā)語(yǔ)言,和開(kāi)發(fā)團(tuán)隊(duì)分別對(duì)不同維度的應(yīng)用服務(wù)進(jìn)行開(kāi)發(fā),將單個(gè)龐大的應(yīng)用系統(tǒng)的功能拆分成單個(gè)不同的小系統(tǒng),分發(fā)給不同的數(shù)據(jù)支持團(tuán)隊(duì)進(jìn)行系統(tǒng)開(kāi)發(fā),比如訂單的數(shù)據(jù)處理分析,就單獨(dú)拿出來(lái)交給訂單的大數(shù)據(jù)處理團(tuán)隊(duì)做開(kāi)發(fā),這個(gè)團(tuán)隊(duì)可以使用自己擅長(zhǎng)的語(yǔ)言,擅長(zhǎng)的開(kāi)發(fā)方式進(jìn)行訂單模塊的大數(shù)據(jù)分析,然后只需要將結(jié)果與數(shù)據(jù)中臺(tái)對(duì)接,數(shù)據(jù)中臺(tái)便可以得到訂單模塊的大數(shù)據(jù)分析結(jié)果。這就是微服務(wù)架構(gòu)在大數(shù)據(jù)時(shí)代的一些典型應(yīng)用案例,通過(guò)應(yīng)用微服務(wù)架構(gòu),可以使得大數(shù)據(jù)時(shí)代的繁雜問(wèn)題可以分解成更多的小問(wèn)題去解決,從而在大數(shù)據(jù)時(shí)代實(shí)現(xiàn)高效的處理數(shù)據(jù),快捷的應(yīng)對(duì)各種需求。
4 分布式架構(gòu)和微服務(wù)架構(gòu)在大數(shù)據(jù)時(shí)代面臨的問(wèn)題
盡管分布式系統(tǒng)架構(gòu)和微服務(wù)架構(gòu)在大數(shù)據(jù)時(shí)代的數(shù)據(jù)處理分析方面有著非常多的優(yōu)點(diǎn),但也有很多缺點(diǎn),本節(jié)將指出其中的一些缺陷。
首先是大數(shù)據(jù)時(shí)代的開(kāi)發(fā)軟件問(wèn)題。就目前的最新的計(jì)算機(jī)科學(xué)技術(shù)與人工智能等技術(shù)的發(fā)展水平,大部分的企業(yè)和個(gè)人在設(shè)計(jì)、實(shí)現(xiàn)及使用搭建能夠滿足于自己業(yè)務(wù)維度,適合自己的戰(zhàn)略思想的大數(shù)據(jù)平臺(tái)時(shí)候,往往都沒(méi)有太多的經(jīng)驗(yàn)。什么樣的操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言和應(yīng)用適合這一系統(tǒng)呢?用戶對(duì)分布式系統(tǒng)中分布式處理又應(yīng)該了解多少呢?系統(tǒng)應(yīng)當(dāng)做多少而用戶又應(yīng)當(dāng)做多少呢?專(zhuān)家們同樣觀點(diǎn)不一(專(zhuān)家們對(duì)于分布式系統(tǒng)他們也涉及不多,導(dǎo)致目前眾人對(duì)該系統(tǒng)眾說(shuō)紛壇)[4]。隨著更多的研究的進(jìn)行,這些問(wèn)題將會(huì)逐漸減少。
另一個(gè)潛在的問(wèn)題是大數(shù)據(jù)時(shí)代的開(kāi)發(fā)軟件之間的通信網(wǎng)絡(luò)。由于在大規(guī)模的數(shù)據(jù)傳輸和不同的設(shè)備之間進(jìn)行傳輸?shù)脑捒赡軙?huì)損失很多重要的信息,目前一般的做法是采用專(zhuān)門(mén)的大數(shù)據(jù)針對(duì)軟件對(duì)一些重要的數(shù)據(jù)進(jìn)行二次檢測(cè)與恢復(fù)。同時(shí),如果大數(shù)據(jù)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)產(chǎn)生很多流量的時(shí)候,流量會(huì)發(fā)生信息過(guò)載的情況。但是隨著5G時(shí)代的到來(lái),我們相信這些問(wèn)題都將得到解決。
5 總結(jié)
本文通過(guò)對(duì)兩種典型優(yōu)秀的IT架構(gòu),分布式架構(gòu)和微服務(wù)架構(gòu),在大數(shù)據(jù)時(shí)代起到的推進(jìn)過(guò)程進(jìn)行了詳細(xì)的研究,分析了這兩種架構(gòu)在企業(yè)和個(gè)人搭建大數(shù)據(jù)平臺(tái)過(guò)程中能夠起到的架構(gòu)貢獻(xiàn),也分析了這兩種架構(gòu)在目前的大數(shù)據(jù)處理過(guò)程中仍然存在的一些不足,以及需要在以后的計(jì)算機(jī)技術(shù)發(fā)展中優(yōu)化的地方。IT架構(gòu)是一個(gè)軟件系統(tǒng)建設(shè)的基石,優(yōu)秀的系統(tǒng)離不開(kāi)優(yōu)秀的IT架構(gòu),大數(shù)據(jù)時(shí)代的蓬勃發(fā)展離不開(kāi)不斷改進(jìn)優(yōu)化的優(yōu)秀的IT架構(gòu),優(yōu)秀的IT架構(gòu)也得益于不斷發(fā)展的社會(huì)和個(gè)人的需求。只有不斷地提出新的挑戰(zhàn),才能使IT架構(gòu)的研究得到更好的發(fā)展動(dòng)力與機(jī)會(huì)。
參考文獻(xiàn)
[1]李標(biāo),徐進(jìn),邱紅桐,基于云計(jì)算技術(shù)的新一代公安交管信息系統(tǒng)架構(gòu)研究[A].中國(guó)智能交通協(xié)會(huì),第十四屆中國(guó)智能交通年會(huì)論文集[c].中國(guó)智能交通協(xié)會(huì):中國(guó)智能交通協(xié)會(huì),2019:9.
[2]楊秋鴻,潘曉衡,趙鐵柱,姚錦濤,董輝,基于分布式存儲(chǔ)架構(gòu)的大數(shù)據(jù)商務(wù)智能分析與應(yīng)用[J].東莞理工學(xué)院學(xué)報(bào),2019,26 (05):56-61.
[3]高文潔,以大數(shù)據(jù)思維促進(jìn)商業(yè)銀行內(nèi)部審計(jì)發(fā)展轉(zhuǎn)型[J],財(cái)富時(shí)代,2 019 (10):113.
[4]沙金,大數(shù)據(jù)安全的技術(shù)架構(gòu)和管理策略研究[J].現(xiàn)代計(jì)算機(jī),2019 (30):45-48+5 3.
作者簡(jiǎn)介
王軍利(1973一),男,河南省沁陽(yáng)市人。大學(xué)本科學(xué)歷,高級(jí)職稱(chēng)。研究方向?yàn)槠髽I(yè)信息化、IT架構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)。