国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

企業(yè)應(yīng)用系統(tǒng)架構(gòu)演進(jìn)

2017-12-19 05:56唐志濤劉星
科技創(chuàng)新與應(yīng)用 2017年35期

唐志濤+劉星

摘 要:企業(yè)信息化隨著新技術(shù)的不斷發(fā)展,也在不斷進(jìn)行演進(jìn),傳統(tǒng)的單體應(yīng)用架構(gòu)已經(jīng)存在越來越多的挑戰(zhàn)。微服務(wù)架構(gòu)具有越來越多的優(yōu)勢,特別是對于大型企業(yè)的應(yīng)用系統(tǒng),開發(fā)簡單、按需擴(kuò)展等優(yōu)點(diǎn),非常適合大型企業(yè)內(nèi)部應(yīng)用的統(tǒng)一化演進(jìn)。文章主要通過對傳統(tǒng)單體應(yīng)用和微服務(wù)應(yīng)用的對比,分析大型企業(yè)內(nèi)部信息化應(yīng)用系統(tǒng)的演進(jìn)趨勢。

關(guān)鍵詞:單體應(yīng)用架構(gòu);微服務(wù)架構(gòu);微服務(wù)優(yōu)點(diǎn);企業(yè)應(yīng)用架構(gòu)趨勢

中圖分類號:F270.7 文獻(xiàn)標(biāo)志碼:A 文章編號:2095-2945(2017)35-0120-02

1 企業(yè)應(yīng)用系統(tǒng)傳統(tǒng)架構(gòu)

企業(yè)應(yīng)用系統(tǒng)是利用計(jì)算機(jī)技術(shù),形成各種軟件系統(tǒng),幫助企業(yè)更好地管理企業(yè)生產(chǎn)經(jīng)營中的各種信息,以提高企業(yè)的競爭力和經(jīng)濟(jì)效益。由于社會的發(fā)展變化,企業(yè)經(jīng)營環(huán)境也隨之不斷變化,因此應(yīng)用系統(tǒng)也必須不斷升級,滿足新的需求。

目前經(jīng)常被企業(yè)使用的軟件有:財(cái)務(wù)軟件、OA軟件、ERP系統(tǒng)、客戶關(guān)系管理軟件、人力資源管理軟件等。這些應(yīng)用系統(tǒng)經(jīng)過多年演進(jìn),從C/S架構(gòu)演進(jìn)為為B/S架構(gòu)的,但基本上都是作為一個單元進(jìn)行構(gòu)建。隨著軟件系統(tǒng)的功能不斷增加,這個整體變得越來越龐大。系統(tǒng)有任何修改,都需要重新構(gòu)建并部署整個應(yīng)用。原因就是上述系統(tǒng)采用的是一體化架構(gòu)方式,稱之為單體架構(gòu)應(yīng)用。在單體應(yīng)用中,所有處理請求的邏輯都運(yùn)行在單個進(jìn)程中,各個邏輯之間如果需要互相調(diào)用,那么直接進(jìn)行,在進(jìn)行部署時,全部功能要一起部署。

2 單體架構(gòu)特點(diǎn)

2.1 優(yōu)點(diǎn)

單體架構(gòu)的應(yīng)用由于全部的應(yīng)用邏輯都在一個整體中,并且運(yùn)行在一個進(jìn)程里面,因此,在應(yīng)用的開發(fā)、測試、部署、維護(hù)、擴(kuò)展方面,都具有一定的優(yōu)勢。

(1)易于組織

單體架構(gòu)的應(yīng)用是傳統(tǒng)方式的架構(gòu),為人所熟知,對于設(shè)計(jì)、開發(fā)人員來說,最容易上手,學(xué)習(xí)成本很低。

(2)易于開發(fā)

單體架構(gòu)的應(yīng)用在開發(fā)時,采用傳統(tǒng)技術(shù)和工具,易于開發(fā)調(diào)試。并且由于全部的邏輯都在一個整體之中,相互之間調(diào)用不需要考慮跨進(jìn)程、跨服務(wù)器的情況,也易于軟件的設(shè)計(jì)和開發(fā)。

(3)易于測試

單體架構(gòu)應(yīng)用程序是一個程序,因此非常容易被測試。只要部署好測試測試環(huán)境,全部功能都可以進(jìn)行測試,非常方便。

(4)易于部署

對單體架構(gòu)的應(yīng)用程序而言,由于所有的功能最終會達(dá)成一個安裝包,因此對安裝包的安裝比較簡單,一般只要拷貝到服務(wù)器相應(yīng)的目錄下,修改一定的配置后,就部署完成了。

(5)易于維護(hù)

單體架構(gòu)的應(yīng)用運(yùn)行時,是作為一個整體進(jìn)行。在出現(xiàn)問題的時候,只要檢查該程序本身的運(yùn)行時刻快照、日志,進(jìn)行錯誤檢查即可,查錯相對容易。

(6)易于水平伸縮

由于單體應(yīng)用全部功能都在一個安裝包內(nèi),因此,水平擴(kuò)展就是在另外的服務(wù)器上進(jìn)行新的部署,然后進(jìn)行一定的配置就可以了,然后通過負(fù)載均衡器做多個節(jié)點(diǎn)之間進(jìn)行負(fù)載均衡。

2.2 缺點(diǎn)

隨著企業(yè)規(guī)模及業(yè)務(wù)的不斷變化,各種對應(yīng)用系統(tǒng)的需求也不斷增加,單體架構(gòu)面臨的挑戰(zhàn)越來越多。例如,系統(tǒng)功能不斷增多、代碼庫變得巨大;用戶量攀升,負(fù)載變重,性能變慢。單體架構(gòu)的可維護(hù)性、靈活性不斷降低,各種成本不斷增加。

(1)培訓(xùn)成本升高

隨著應(yīng)用系統(tǒng)的復(fù)雜和龐大,新成員需要進(jìn)行更長時間的培訓(xùn),才可以成為一名合格的開發(fā)團(tuán)隊(duì)成員,培訓(xùn)成本隨著系統(tǒng)規(guī)模不斷上升。

(2)技術(shù)選型影響大

由于單體架構(gòu)應(yīng)用系統(tǒng)是作為一個整體開發(fā)和運(yùn)行,因此全部功能都采用同一個技術(shù)路線。因此,如果在后期要修改技術(shù)路線,需要花費(fèi)的代價(jià)巨大,甚至整個系統(tǒng)要推倒重來。這樣,前期的技術(shù)選型要非常慎重。

(3)后續(xù)開發(fā)難度大

隨著應(yīng)用代碼庫的巨大化,新增功能開發(fā)要非常小心,不能影響已有功能,測試范圍也要不斷增大,以保證整個系統(tǒng)的質(zhì)量。有時原有代碼在架構(gòu)上的限制,會導(dǎo)致新增代碼很困難,不得不屈從于原有結(jié)構(gòu),采用打補(bǔ)丁方式進(jìn)行,使得代碼合理性變得越來越差。

(4)持續(xù)交付周期長

隨著應(yīng)用系統(tǒng)的功能越來越多,代碼越來越復(fù)雜,設(shè)計(jì)、開發(fā)、測試周期都會相應(yīng)增加,以確保原有功能不受影響,這就大大延長了交付的時間。

(5)維護(hù)成本增加

由于單體應(yīng)用系統(tǒng)全部代碼在一個整體中,代碼耦合度高。這導(dǎo)致分析缺陷、定位缺陷、修復(fù)缺陷的成本相應(yīng)增高。同時,在開發(fā)人員對全局功能缺乏深度理解時,修復(fù)一個缺陷,容易引入其他缺陷,增加維護(hù)成本。

(6)穩(wěn)定性不高

單體應(yīng)用全部功能都在一個進(jìn)程中運(yùn)行,出現(xiàn)任何一個致命問題,整個進(jìn)程都會受影響停止服務(wù),導(dǎo)致穩(wěn)定性不高。

(7)可伸縮性差

應(yīng)用系統(tǒng)不同功能對服務(wù)器硬件需求是不同的,有的功能可能要求CPU速度快,而有的功能要求內(nèi)存大。而由于不同功能的使用率不同,對整個系統(tǒng)進(jìn)行水平擴(kuò)展后,某些節(jié)點(diǎn)硬件資源的利用率會比較差,造成較大的浪費(fèi)。

3 微服務(wù)架構(gòu)特點(diǎn)

隨著互聯(lián)網(wǎng)的高速發(fā)展和軟件開發(fā)技術(shù)、研發(fā)理論的不斷創(chuàng)新,敏捷、精益、持續(xù)交付方法論日益深入人心。在這些因素的共同作用下,誕生了微服務(wù)架構(gòu)。

微服務(wù)架構(gòu)(Microservice Architect)是一種架構(gòu)模式,它提倡將大的應(yīng)用劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)、互相配合,服務(wù)可以進(jìn)行獨(dú)立部署,通過服務(wù)的組合為用戶提供最終價(jià)值。每個服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)與服務(wù)間采用輕量級的通信機(jī)制互相溝通。不同服務(wù)可以采用不同的開發(fā)語言進(jìn)行構(gòu)建,并且可以使用不同的數(shù)據(jù)存儲技術(shù)進(jìn)行數(shù)據(jù)的保存。

3.1 優(yōu)點(diǎn)endprint

(1)強(qiáng)迫設(shè)計(jì)

微服務(wù)架構(gòu)下,各個服務(wù)獨(dú)立運(yùn)行,不能像單體架構(gòu)時,直接代碼級調(diào)用。這就要求在設(shè)計(jì)時,對各個部分的功能考慮得非常清楚,并定義好各個服務(wù)的邊界。這種對設(shè)計(jì)階段的強(qiáng)迫性要求,往往會提高應(yīng)用系統(tǒng)質(zhì)量并減小后期修改工作量。

(2)開發(fā)簡單

微服務(wù)架構(gòu)下,每個服務(wù)內(nèi)部都具有高內(nèi)聚,服務(wù)之間具有低耦合的特點(diǎn)。開發(fā)人員每次僅僅需要面對一個服務(wù)進(jìn)行開發(fā),邏輯相對簡單,代碼體量小。

(3)技術(shù)棧靈活

微服務(wù)架構(gòu)下,每個服務(wù)都獨(dú)立部署運(yùn)行,服務(wù)間通過API進(jìn)行調(diào)用。因此,不同服務(wù)可以選擇不同的技術(shù)實(shí)現(xiàn),技術(shù)棧的選擇是相當(dāng)靈活的。即使后期某個服務(wù)技術(shù)路線需要修改,也代價(jià)較低,僅僅影響該服務(wù)本身。

(4)服務(wù)獨(dú)立無依賴

微服務(wù)架構(gòu)模式下每個微服務(wù)是獨(dú)立部署運(yùn)行的,每個服務(wù)都可以做到多節(jié)點(diǎn)部署。當(dāng)一個服務(wù)發(fā)生更新后,僅僅需要重新部署該服務(wù)即可,不依賴于其他服務(wù)。并且可以先更新該服務(wù)多個節(jié)點(diǎn)中的一個節(jié)點(diǎn),測試沒有問題后,再更細(xì)其他的服務(wù)節(jié)點(diǎn),使得持續(xù)化部署成為可能。

(5)獨(dú)立按需擴(kuò)展

微服務(wù)架構(gòu)模式使得每個服務(wù)可以獨(dú)立進(jìn)行擴(kuò)展,運(yùn)維人員可以對不同服務(wù)的需求,分別進(jìn)行多點(diǎn)部署,更加充分利用硬件資源。

(6)可用性高

微服務(wù)架構(gòu)模式下,單個服務(wù)發(fā)生致命故障后,并不會對其他服務(wù)產(chǎn)生影響,可用性高。

3.2 不足

(1)設(shè)計(jì)難度增大

微服務(wù)架構(gòu)強(qiáng)調(diào)系統(tǒng)由多個服務(wù)構(gòu)成,服務(wù)內(nèi)部高耦合,服務(wù)之間低耦合。這就要求在系統(tǒng)設(shè)計(jì)之初,就需要對各個服務(wù)的功能、邊界劃分清晰、合理。如何設(shè)計(jì)合理的服務(wù)粒度,服務(wù)對業(yè)務(wù)的合理封裝,這往往不是一個簡單的任務(wù)。

此外,微服務(wù)應(yīng)用是分布式系統(tǒng),由此會帶來固有的復(fù)雜性。諸如怎么部署,出錯怎么辦,怎么保證數(shù)據(jù)的最后一致性;此外,還有微服務(wù)的粒度大?。蝗绾伪苊庖粋€服務(wù)改動導(dǎo)致的多個級聯(lián)服務(wù)的失敗等問題,都增大了設(shè)計(jì)的難度。

(2)保持?jǐn)?shù)據(jù)一致性復(fù)雜度高

由于微服務(wù)架構(gòu)中每個服務(wù)都可以有自己的數(shù)據(jù)存儲方式,因此,當(dāng)需要進(jìn)行跨服務(wù)的數(shù)據(jù)更新操作時,會比較復(fù)雜,需要更新不同服務(wù)所使用的不同的數(shù)據(jù)庫。最終可能不得不使用一個最終一致性的方法,從而對開發(fā)者提出了更高的要求和挑戰(zhàn)。

(3)服務(wù)間通信成本高

微服務(wù)應(yīng)用是分布式系統(tǒng),服務(wù)之間的需要通過RPC或者REST方式進(jìn)行通訊,必然增加了網(wǎng)絡(luò)訪問開銷。同時,還需要進(jìn)行一定的數(shù)據(jù)轉(zhuǎn)換工作,也需要一定的資源消耗。

(4)系統(tǒng)集成測試相對復(fù)雜

測試微應(yīng)用架構(gòu)下的單個服務(wù)比較簡單,因?yàn)榉?wù)可以獨(dú)立部署。但是測試一個基于微服務(wù)架構(gòu)的完整應(yīng)用也是很復(fù)雜的任務(wù),因?yàn)樾枰獙⑷康姆?wù)都部署好、配置通。

(5)系統(tǒng)部署復(fù)雜

部署一個微服務(wù)應(yīng)用也很復(fù)雜,一個應(yīng)用由多個服務(wù)構(gòu)成,每個服務(wù)都可能有多個實(shí)例,這就造成許多需要配置、部署、擴(kuò)展和監(jiān)控的工作。

(6)多服務(wù)運(yùn)維難度大

微服務(wù)架構(gòu)系統(tǒng)是一個分布式系統(tǒng),多個服務(wù)運(yùn)行在多臺服務(wù)器上。這需要運(yùn)維人員掌握較多知識,具有綜合解決問題的能力。當(dāng)系統(tǒng)出現(xiàn)問題時,可能涉及到不同服務(wù)的不同節(jié)點(diǎn),問題解決難度和速度,都會變大。當(dāng)然,通過系統(tǒng)監(jiān)控工具、自動化運(yùn)維工具可以幫助運(yùn)維人員更好地完成運(yùn)維工作。

4 企業(yè)應(yīng)用系統(tǒng)架構(gòu)趨勢

隨著微服務(wù)架構(gòu)的應(yīng)用越來越多,未來基于為服務(wù)架構(gòu)的大型企業(yè)一體化應(yīng)用將逐漸成為企業(yè)應(yīng)用的發(fā)展方向。

在傳統(tǒng)單體應(yīng)用架構(gòu)下,企業(yè)多個應(yīng)用相互獨(dú)立,造成信息孤島。未解決這種孤島現(xiàn)象,主要是通過SOA技術(shù)來實(shí)現(xiàn)各個應(yīng)用系統(tǒng)之間的集成。但是這種集成應(yīng)用之間的交互粒度較粗,不能快速構(gòu)建一個新的應(yīng)用。

而采用微服務(wù)架構(gòu)之后,一個應(yīng)用可以分為兩部分,一部分為應(yīng)用部分,提供對外交互的界面;一部分為微服務(wù)部分,提供支撐應(yīng)用層的各種服務(wù)。微服務(wù)部分由眾多的微服務(wù)構(gòu)成,這些微服務(wù)可以獨(dú)立部署,對外提供服務(wù)。應(yīng)用部分是通過對服務(wù)層提供的服務(wù)進(jìn)行組合調(diào)用,完成總體應(yīng)用。

當(dāng)一個大型企業(yè)的眾多應(yīng)用都進(jìn)行微服務(wù)架構(gòu)改造后,提供某項(xiàng)能力的微服務(wù)就不僅僅為某個應(yīng)用所獨(dú)有,它可以在眾多企業(yè)應(yīng)用之間被共享,大大提高了某個微服務(wù)的價(jià)值。通過這種微服務(wù)集合的方式,可以將原來的多個應(yīng)用系統(tǒng)最終融合成一個統(tǒng)一的應(yīng)用系統(tǒng)。當(dāng)需要個新的功能時,不再是傳統(tǒng)的重新開發(fā),而是首先在微服務(wù)集中查找是否存在相似服務(wù),如果已經(jīng)存在,只需要進(jìn)行部分改造即可。同時,頁可以通過眾多微服務(wù)之間的相互關(guān)聯(lián)調(diào)用,組合成一個新的微服務(wù)。這樣就可以極大的加快開發(fā)速度,提高效率,降低成本。

通過上述分析,企業(yè)信息化應(yīng)用系統(tǒng)架構(gòu)由傳統(tǒng)單體應(yīng)用架構(gòu)向微服務(wù)架構(gòu)進(jìn)行演進(jìn)是一個大的趨勢,未來的企業(yè)應(yīng)用系統(tǒng)將基于為服務(wù)架構(gòu)進(jìn)行開發(fā)。

參考文獻(xiàn):

[1]李忠民,齊占新.業(yè)務(wù)架構(gòu)的微應(yīng)用化與技術(shù)架構(gòu)的微服務(wù)化——兼談微服務(wù)架構(gòu)的實(shí)施實(shí)踐[J].科技創(chuàng)新與應(yīng)用,2016(35):95-96.

[2]郝哲偉,劉洋.基于微服務(wù)架構(gòu)下的企業(yè)微門戶平臺規(guī)劃[J].信息系統(tǒng)工程,2017(09):140-141.

[3]陳聰敏,陳晨.基于微服務(wù)的衍生品銷售管理平臺設(shè)計(jì)方案[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2017(09):22-27.endprint

安宁市| 吐鲁番市| 耿马| 卢氏县| 翁牛特旗| 浙江省| 泸溪县| 江油市| 新兴县| 四子王旗| 杭州市| 博兴县| 六枝特区| 哈巴河县| 济宁市| 应用必备| 蒲江县| 夏津县| 项城市| 玉山县| 开封市| 瓦房店市| 怀来县| 革吉县| 垫江县| 潍坊市| 车险| 邵阳市| 汤原县| 德钦县| 建平县| 庆云县| 阿拉尔市| 星子县| 柳江县| 廊坊市| 诸暨市| 修水县| 陵川县| 玉溪市| 九江县|