焦烈焱
微服務(wù)的出現(xiàn)有其必然的商業(yè)背景和架構(gòu)哲學(xué),如何更好的認(rèn)識(shí)微服務(wù)的內(nèi)涵、如臂使指的應(yīng)用微服務(wù)架構(gòu),還有很多挑戰(zhàn)。
企業(yè)數(shù)字化轉(zhuǎn)型驅(qū)動(dòng)架構(gòu)升級(jí)
互聯(lián)網(wǎng)經(jīng)濟(jì)改變了商業(yè)環(huán)境,消費(fèi)者的生活方式日益數(shù)字化,人們可以在任何時(shí)間和地點(diǎn),利用線上、線下渠道體驗(yàn)無縫購物,運(yùn)用社交媒體表達(dá)自我,企業(yè)也在運(yùn)用多種技術(shù)手段,發(fā)揮數(shù)字化潛力,改善客戶聯(lián)系,促進(jìn)企業(yè)業(yè)務(wù)模式的轉(zhuǎn)型。Gartner認(rèn)為,數(shù)字化就是把人、事、物和商業(yè)聯(lián)系起來,建立新的商業(yè)模式。
未來的企業(yè)都將是IT企業(yè),IT將從后臺(tái)走向前臺(tái),從ERP、CRM等內(nèi)部流程優(yōu)化為主的業(yè)務(wù),逐步轉(zhuǎn)向內(nèi)外兼修的模式,從而實(shí)現(xiàn)商業(yè)創(chuàng)新。這一變化要求IT架構(gòu)更加靈活的與上下游企業(yè)協(xié)作,更加快速的響應(yīng)客戶的個(gè)性化需求,更加彈性地應(yīng)對(duì)無時(shí)不在的客戶請(qǐng)求并提供良好的客戶體驗(yàn)。同時(shí)云計(jì)算、大數(shù)據(jù)等技術(shù)的出現(xiàn)也為上述改變提供了新的技術(shù)選擇,我們正面臨B/S多層架構(gòu)出現(xiàn)后新的一次架構(gòu)升級(jí),而微服務(wù)架構(gòu)就在這個(gè)架構(gòu)升級(jí)過程中應(yīng)運(yùn)而生。
分而治之的哲學(xué)是微服務(wù)的理論基礎(chǔ)
軟件也可以分解為基本單元,以這樣的基本單元進(jìn)行開發(fā)、測試、維護(hù),是解決大規(guī)模系統(tǒng)建設(shè)的思路。這首先要解決如何分的問題,企業(yè)軟件的分法應(yīng)該是以業(yè)務(wù)驅(qū)動(dòng)的,而不是技術(shù)驅(qū)動(dòng)的,也就是分解為獨(dú)立的業(yè)務(wù)邏輯,而這樣的不可再分的業(yè)務(wù)邏輯就是微服務(wù)。
細(xì)分為微服務(wù)后,勢必帶來部署、測試、信息集成難度的提高,分而治之除了“分”之外,還需要“治”。在數(shù)字化時(shí)代,客戶個(gè)性化的要求讓我們從這種面向組織的軟件,逐漸演變?yōu)槊嫦騻€(gè)體的軟件。這些面向個(gè)體的流程就是微應(yīng)用,企業(yè)應(yīng)用將由無數(shù)個(gè)微應(yīng)用組成。
微服務(wù)和微應(yīng)用是事物的兩面。正因?yàn)槲⒎?wù)實(shí)際是一個(gè)業(yè)務(wù)邏輯,因此做好微服務(wù)需要從微應(yīng)用的維度考慮,將分解開的邏輯形成一個(gè)整體,要從多渠道接入、客戶體驗(yàn)、數(shù)據(jù)管理、應(yīng)用交付、運(yùn)維全方位的視角考慮,這就是分而治之中實(shí)現(xiàn)“治”的體驗(yàn),也是微服務(wù)架構(gòu)要解決的問題。
站在SOA的肩膀上踐行微服務(wù)
微服務(wù)是一個(gè)新概念,但這絕不是一個(gè)全新架構(gòu),更不是一個(gè)包治百病的架構(gòu)。微服務(wù)架構(gòu)屬于應(yīng)用技術(shù)架構(gòu),和以B/S為代表的三層架構(gòu)相對(duì)應(yīng),強(qiáng)調(diào)將巨石型應(yīng)用拆分為由微服務(wù)組成的應(yīng)用,在數(shù)據(jù)上也視情況從集中的存儲(chǔ)拆解為更小的存儲(chǔ)單元。
因此,面向服務(wù)架構(gòu)的服務(wù)應(yīng)該是一個(gè)業(yè)務(wù)意義的服務(wù),而微服務(wù)是系統(tǒng)中的技術(shù)服務(wù),更關(guān)注服務(wù)的實(shí)現(xiàn),雖然提供了業(yè)務(wù)意義的服務(wù),但是不能混為一談。
微服務(wù)的使用也不是無限度的,事實(shí)上由于數(shù)據(jù)一致性等問題的限制,不能無限度拆分微服務(wù),可以把微服務(wù)分為系統(tǒng)對(duì)外提供的遠(yuǎn)程服務(wù)、系統(tǒng)內(nèi)部的遠(yuǎn)程服務(wù)和系統(tǒng)內(nèi)部的本地服務(wù),顯式聲明、明確職責(zé)。事實(shí)上,在企業(yè)架構(gòu)上使用SOA支撐業(yè)務(wù),而在應(yīng)用技術(shù)架構(gòu)上使用微服務(wù)架構(gòu),是一個(gè)合適的選擇。