近幾年,我們有很多文章對(duì)SOA和微服務(wù)之間的不同點(diǎn)和相似點(diǎn)進(jìn)行了分析。有些人認(rèn)為SOA有很多地方是值得微服務(wù)學(xué)習(xí)的,而有些人則認(rèn)為區(qū)別對(duì)待微服務(wù)和SOA會(huì)更好。而Neal Ford認(rèn)為,將單體遷移到面向服務(wù)的架構(gòu)要比遷移到微服務(wù)來(lái)得容易。關(guān)于選擇SOA還是微服務(wù)的話題,最近并沒(méi)有太多的爭(zhēng)論,直到Redmonk的Stephen O'Grady發(fā)表了他的文章,這個(gè)話題再次進(jìn)入了人們的視野。O'Grady在他的文章里說(shuō)到,服務(wù)的大小不應(yīng)該成為關(guān)鍵的決定性因素。這些年來(lái),人們也一直在爭(zhēng)論這個(gè)觀點(diǎn),比如Dan North。而Jeppe Cramon也說(shuō)過(guò):
單純使用服務(wù)大小來(lái)定義微服務(wù)有失偏頗,也難以確定一個(gè)微服務(wù)是否被賦予了正確的職責(zé)……
O'Grady相信,SOA和微服務(wù)之間有著千絲萬(wàn)縷的聯(lián)系:
在過(guò)去,SOA存在的一些缺陷導(dǎo)致它變成企業(yè)的幻象,就像今天那些使用了微服務(wù)云原生架構(gòu)的激進(jìn)型組織一樣。如果我們深入到SOA的核心,我們會(huì)發(fā)現(xiàn),SOA的本意是說(shuō)架構(gòu)應(yīng)該由服務(wù)組成,而不是單體。
O'Grady在他的文章里通過(guò)Google Trends生成了一些圖表,其中第一張圖表顯示了SOA在整個(gè)行業(yè)歷史上曾經(jīng)有一小段時(shí)期處于流行的高峰狀態(tài)。
Stephen認(rèn)為,通過(guò)服務(wù)大小來(lái)區(qū)分SOA和微服務(wù)將有礙找出導(dǎo)致SOA沒(méi)落與微服務(wù)崛起的真正原因,SOA是由廠商驅(qū)動(dòng)的,而微服務(wù)更多的是由開(kāi)發(fā)者來(lái)驅(qū)動(dòng)。
因?yàn)锳WS的大肆成功,我們無(wú)法否認(rèn)基于服務(wù)驅(qū)動(dòng)的平臺(tái)確實(shí)是構(gòu)建可伸縮平臺(tái)的一種有效方式,也無(wú)法否認(rèn)它們?cè)诂F(xiàn)今所取得的主導(dǎo)地位。但值得注意的是,現(xiàn)今基于服務(wù)的平臺(tái)一般是由開(kāi)發(fā)者來(lái)驅(qū)動(dòng)的。而SOA最初由大型的廠商來(lái)驅(qū)動(dòng),基于拜占庭式的復(fù)雜(一般帶有政治性質(zhì))的標(biāo)準(zhǔn)框架來(lái)構(gòu)建服務(wù),而這些標(biāo)準(zhǔn)并不為開(kāi)發(fā)者所接受。
O'Grady在文章中提到,微服務(wù)在好的方面和不好的方面都借鑒了SOA。
微服務(wù)比單體更容易開(kāi)發(fā),而且沒(méi)有了SOA的廠商標(biāo)準(zhǔn)累贅。
在過(guò)去幾年,還有其他的一些人也表達(dá)了類(lèi)似的觀點(diǎn),Asanka說(shuō):
如今,企業(yè)正在轉(zhuǎn)向更干凈的SOA,開(kāi)始擁抱MSA。或許最大的看點(diǎn)是組件化,以及微服務(wù)提供的單一功能能夠被快速地部署成組件,在必要的時(shí)候可以很容易地進(jìn)行伸縮。不管怎樣,這是一種很新奇的概念。
其中的第二張Google Trends圖表也很有趣。
查看英文原文: The Difference between SOA and Microservices?