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