肖開余?何城橋?唐信軍
摘要:隨著企業(yè)信息化、數(shù)字化標(biāo)準(zhǔn)不斷提高,制造企業(yè)的互聯(lián)網(wǎng)業(yè)務(wù)復(fù)雜程度不斷提升,傳統(tǒng)的應(yīng)用整體架構(gòu)愈加臃腫,維護(hù)困難、集成復(fù)雜等弊端日益凸顯,基于此微服務(wù)架構(gòu)摒棄了傳統(tǒng)大規(guī)模的單塊集成應(yīng)用,變?yōu)樗神詈?、?xì)粒度、可靈活組合的自治單元。微服務(wù)架構(gòu)是一種架構(gòu)思想和開發(fā)模式的蛻變,相比于面向服務(wù)的架構(gòu)(Service Oriented Architecture,簡稱 SOA),微服務(wù)架構(gòu)有著基于獨(dú)立服務(wù)、按需收縮、易于開發(fā)維護(hù)、上線周期快的優(yōu)點(diǎn)。本文主要闡述微服務(wù)架構(gòu)的定義及工作原理,論述微服務(wù)架構(gòu)的特征,以及微服務(wù)架構(gòu)在企業(yè)信息平臺建設(shè)應(yīng)用中的價(jià)值。
關(guān)鍵詞:制造業(yè);微服務(wù);架構(gòu)
一、微服務(wù)架構(gòu)的概述及原理
“微服務(wù)”一詞源于Martin Fowler的名為Microservices的博文,簡單來說,微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計(jì)風(fēng)格,它的主旨是將一個(gè)原本獨(dú)立的系統(tǒng)拆分成多個(gè)小型服務(wù),這些小型服務(wù)都在各自獨(dú)立進(jìn)程中運(yùn)行,服務(wù)之間通過基于HTTP的RESTful API進(jìn)行通信協(xié)作[3-4]。被拆分成的每一個(gè)小型服務(wù)都圍繞著系統(tǒng)中的某一項(xiàng)或一些耦合度較高的業(yè)務(wù)功能進(jìn)行構(gòu)建。并且每個(gè)服務(wù)都維護(hù)著自身的數(shù)據(jù)存儲、業(yè)務(wù)開發(fā)、自動化測試案例以及獨(dú)立部署機(jī)制,如圖1所示。由于有了輕量級的通信協(xié)作機(jī)制基礎(chǔ),所以這些微服務(wù)可使用不同語言編寫[5]。微服務(wù)架構(gòu)輕便的服務(wù)方式可有效保持分系統(tǒng)的獨(dú)立運(yùn)轉(zhuǎn)和擴(kuò)展與延伸,為每個(gè)分系統(tǒng)之間實(shí)現(xiàn)了劃分、使每個(gè)分系統(tǒng)都可以單獨(dú)地進(jìn)行維護(hù)和替換,使整個(gè)系統(tǒng)分而不散,有機(jī)融合[6]。
在現(xiàn)有微服務(wù)架構(gòu)中,Spring Cloud為常用的基礎(chǔ)框架,Spring Cloud是一系列框架的有序集合,利用Spring Boot的開發(fā)便利性簡化了基礎(chǔ)設(shè)施的開發(fā)。其工作原理是采用了分散治理,將一個(gè)系統(tǒng)根據(jù)業(yè)務(wù)拆分成多個(gè)子系統(tǒng)服務(wù);將多個(gè)應(yīng)用通過負(fù)載均衡部署于子系統(tǒng);把子系統(tǒng)服務(wù)注冊到Eureka,以一定策略實(shí)現(xiàn)負(fù)載均衡;客戶端均通過API網(wǎng)關(guān)(Zuul)訪問后臺服務(wù),通過路由配置來實(shí)現(xiàn)轉(zhuǎn)發(fā)請求功能;服務(wù)與服務(wù)之間可以相互訪問及數(shù)據(jù)共享;Hystrix負(fù)責(zé)處理調(diào)用服務(wù)超時(shí)熔斷問題,為服務(wù)提供容錯保護(hù),當(dāng)服務(wù)調(diào)用超時(shí)或出現(xiàn)錯誤時(shí),可及時(shí)處理,避免整個(gè)系統(tǒng)癱瘓。
二、微服務(wù)架構(gòu)的特征
(一)服務(wù)組件化
微服務(wù)架構(gòu)設(shè)計(jì)最為突出的就是將復(fù)雜的應(yīng)用組件化地拆分為更簡單、更小的服務(wù),由于每個(gè)組件化的微服務(wù)都可以提供一個(gè)完整的功能,因此微服務(wù)可以專一地做一個(gè)特定業(yè)務(wù),會讓業(yè)務(wù)邏輯的實(shí)現(xiàn)變得更加簡單,也更容易進(jìn)行構(gòu)建、開發(fā)和維護(hù)。
(二)服務(wù)去中心化
微服務(wù)架構(gòu)中的每個(gè)微型服務(wù)都是獨(dú)立,這是應(yīng)對大型復(fù)雜系統(tǒng)的一種解耦設(shè)計(jì)。每個(gè)服務(wù)的構(gòu)建、開發(fā),部署都是獨(dú)立的,對技術(shù)棧沒有太多限制,每個(gè)微服務(wù)都是相對獨(dú)立的、更加自由的管理空間,一個(gè)服務(wù)的更新迭代不會依賴和影響其他服務(wù),從而達(dá)到對服務(wù)進(jìn)行自治。
(三)漸進(jìn)式設(shè)計(jì)
一個(gè)復(fù)雜的系統(tǒng)應(yīng)用從成型到成熟,是一個(gè)循序漸進(jìn)的過程,期間會有新的業(yè)務(wù)需求的出現(xiàn),也會有業(yè)務(wù)需求的變更、消失。微服務(wù)的微型化可以快速使用這種快速變化的需求,可以在快速迭代中增加,變更或者刪除一個(gè)或者多個(gè)微服務(wù)而不影響整個(gè)系統(tǒng)應(yīng)用的運(yùn)行,因此微服務(wù)的漸進(jìn)式設(shè)計(jì)的特點(diǎn)不需要在一開始就構(gòu)建一個(gè)全面的應(yīng)用,而是隨著需求不斷進(jìn)行優(yōu)化調(diào)整。
(四)基礎(chǔ)設(shè)施自動化
微服務(wù)架構(gòu)依托云計(jì)算和容器化技術(shù),實(shí)施后續(xù)開發(fā)、運(yùn)維工作變得簡便快捷。隨著企業(yè)業(yè)務(wù)深度的劃分,服務(wù)拆分越發(fā)復(fù)雜,導(dǎo)致工作人員的焦點(diǎn)從數(shù)量單一、復(fù)雜,向業(yè)務(wù)簡單但數(shù)量龐大過度。云計(jì)算和容器化技術(shù)的快速發(fā)展,基礎(chǔ)設(shè)施自動化技術(shù)取得了長足的進(jìn)步,也就間接降低了微服務(wù)構(gòu)建、部署、運(yùn)行的復(fù)雜度。
(五)智能端點(diǎn)與管道偏平化
智能端點(diǎn)和啞管道是微服務(wù)架構(gòu)中所具有的顯著特點(diǎn)之一。在微服務(wù)架構(gòu)中,智能端點(diǎn)要求是智能化,管道通信方式應(yīng)當(dāng)是簡單非智能化,組件之間調(diào)用關(guān)系不再是像傳統(tǒng)軟件架構(gòu)模式中直接通過函數(shù)方式進(jìn)行過程調(diào)用,通信方式也發(fā)生了改變,不再是過分依賴集中智能路由,而是由擁有智能端點(diǎn)平臺來提供。
三、微服務(wù)架構(gòu)在企業(yè)信息平臺建設(shè)中的價(jià)值
(一)設(shè)計(jì)應(yīng)用價(jià)值
微服務(wù)架構(gòu)可以有效幫助企業(yè)進(jìn)行信息平臺的構(gòu)建,在企業(yè)應(yīng)用微服務(wù)架構(gòu)之前,研發(fā)設(shè)計(jì)人員需要對企業(yè)開展深入的需求調(diào)研,在深度了解企業(yè)需求的前提下,結(jié)合自身的專業(yè)完成相關(guān)信息化翻譯,以簡潔的功能和頁面達(dá)到用戶的需求。通常情況下,信息平臺構(gòu)建的版塊之間需要有一定的數(shù)據(jù)流通和交互,使用微服務(wù)技術(shù)搭建相關(guān)應(yīng)用后,可使各版塊之間的交互更具有柔性,更能快速響應(yīng)用戶的需求變更,系統(tǒng)的上下線才能真正實(shí)現(xiàn)業(yè)界流行的灰度發(fā)布,有效的提升信息系統(tǒng)的運(yùn)維效率。
(二)架構(gòu)搭建應(yīng)用價(jià)值
企業(yè)信息平臺中展示層都有特定工作需求,數(shù)據(jù)的產(chǎn)生、存儲、分析都需要通過服務(wù)器才能實(shí)現(xiàn)共享,因此各功能都需要通過微服務(wù)架構(gòu)連接,并在功能上交互組成關(guān)系網(wǎng)絡(luò),實(shí)現(xiàn)功能、業(yè)務(wù)、數(shù)據(jù)的靈活調(diào)用;通過微服務(wù)架構(gòu)實(shí)現(xiàn)平臺的建立和功能之間的數(shù)據(jù)流通可以有效降低數(shù)據(jù)擁堵概率,保持企業(yè)信息平臺數(shù)據(jù)運(yùn)行通暢,為用戶提供更加便捷、跳轉(zhuǎn)靈活的功能服務(wù);打破現(xiàn)有的企業(yè)業(yè)務(wù)和平臺應(yīng)用邊界,有利于企業(yè)部門之間的協(xié)作,提高資源利用率。
結(jié)束語
隨著我國企業(yè)現(xiàn)代化發(fā)展的步伐加快,在企業(yè)中應(yīng)用微服務(wù)已是必然趨勢。微服務(wù)設(shè)計(jì)不僅僅對于大型復(fù)雜的系統(tǒng),對于中小型的一個(gè)應(yīng)用平臺同樣可采用微服務(wù)架構(gòu),微服務(wù)架構(gòu)模式不僅可以提升平臺系統(tǒng)性能,還具備應(yīng)用系統(tǒng)擴(kuò)展?jié)摿?,對企業(yè)信息化、數(shù)字化發(fā)展具有重要的意義。這幾年信息技術(shù)的發(fā)展,讓微服務(wù)越來越受關(guān)注,應(yīng)用的領(lǐng)域也越來越廣泛,微服務(wù)架構(gòu)已逐漸成為企業(yè)開發(fā)的常用模式。
參考文獻(xiàn):
[1] 基于Spring Cloud實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)微服務(wù)化的設(shè)計(jì)與實(shí)現(xiàn)[J].王方旭.電子技術(shù)與軟件工程2018(8):60-61.
[2] 微服務(wù)架構(gòu)實(shí)戰(zhàn)[M].張鋒.北京:電子工業(yè)出版社,2018.
[3] 微服務(wù)架構(gòu)的發(fā)展與影響分析[J].李貞昊.信息系統(tǒng)工程,2017(01).
[4] 微服務(wù)架構(gòu)與實(shí)踐[M].王磊.北京:電子工業(yè)出版社,2015.
[5] 適用于微服務(wù)架構(gòu)的企業(yè)應(yīng)用部署平臺研究[D].馬恒.鄭州大學(xué),2018
[6] 電信運(yùn)營商單體架構(gòu)到微服務(wù)架構(gòu)轉(zhuǎn)型設(shè)計(jì)思路[J].董昭.通信世界,2017(25):56-57.
作者簡介:
肖開余(1983—),男,大學(xué)本科,貴州貴陽市人,主要從事智能制造軟件系統(tǒng)研發(fā),研究方向:企業(yè)信息化技術(shù)研究;
何城橋(1992.05-),男,大學(xué)本科,貴州銅仁市人;
唐信軍(1984.06-),男,貴州貴陽市人。