微服務架構全解析:絕不是360度無死角

jopen 9年前發布 | 11K 次閱讀 微服務
 

草根開發群體的大力支持正在將微服務架構的采用率推到新的高度。據紅帽公司中間件專家Mark Little博士聲稱,微服務是個好東西,卻不是世界和平的答案。

微服務架構全解析:絕不是360度無死角

紅帽公司中間件部門工程副總裁Mark Little博士:采用微服務并不意味著你那架構差強的泥球突然變得架構很好。

鑒于微服務的人氣扶搖直上,那些記性不好的人可能忽略了這種方法極其類似面向服務的架構(SOA),20年前SOA第一次出現在世人眼前。

不過紅帽公司中間件部門工程副總裁Mark Little博士喜歡將微服務看成面向服務的架構中的精華部分,它得益于出現了更先進的工程和運維技術及技巧。

Little說:“區別就在于,推動它的主要是開發軟件和分布式軟件領域的新方法。Linux容器等技術――Docker就是個典例。你現在有了 不變的服務,有了Kuberneters之類用于協調那些服務的技術――很顯然,你有了開發運維(DevOps),而開發運維受到敏捷開發理念的重大影 響。”

“那些技術讓人們真正回顧我們在過去開發分布式系統的方法,面向服務的架構就是這方面的一個例子,并挑選與那些技術相匹配的精華部分。或者反之亦 然,找到與面向服務的架構的一些精華部分相匹配的那些技術。這可能就是區別所在。架構方法并非不一樣,但是其背后的技術確實不一樣。”

在微服務架構中,應用程序組裝成一組小小的半自主式進程,這些進程執行特定的任務,并使用API彼此進行聯系。微服務旨在易于使用、靈活擴展,在Web應用程序、移動應用程序和物聯網應用程序中日益嶄露頭角。

在面向服務的架構的以往不足中,Little提到了一個不足:無法在客戶機和服務之間提供很好的契約定義,他還提到了Web服務描述語言(WSDL)的不足,這種語言對松散耦合、分布式的系統而言差強人意。

然而,就因為許多因素和技術融合到一起,讓微服務成為當下風光無限的架構,并不能保證它就能一帆風順。

Little說:“認識到微服務不是世界和平的答案,這一點很重要。它對一些任務來說很好。但是它跟任何技術一樣,也有缺點。就因為你采用了微服 務,并不突然意味著你那架構差勁的泥球(ball of mud)突然架構變得很好,不再是泥球。它有可能變成了好多分布式泥球。”

“這讓我有點擔憂。我長期以來就在關注面向服務的架構,知道優點和缺點。我喜歡微服務,因為它讓我們得以關注優點,但是人們以為它能解決根本就解決不了的許多問題,這確實讓我擔心。”

如果你正在考慮微服務,最好從良好的軟件工程實踐開始入手。

Little說:“從根本上來說,這正是面向服務的架構背后的思想。如果你不從那方面開始入手,無論你使用Docker、虛擬化、Java虛擬機還是使用其他什么都不重要,合適的工具不會為你解決架構問題。”

微架構或者甚至面向服務的架構真正發揮所長的地方在于,應彼此獨立部署的邏輯服務,這些邏輯服務可以獨立于其他服務進行擴展,而且能夠實現獨立的故障切換。

Little說:“我在微服務方面擔心的問題之一就是,你有一個整體式系統(monolith),假設你開始把它分解成多個服務,可是分解時很隨意,到頭來就會分解得過細,最后會有10個、100個甚至1000個微服務。”

“但是這些微服務又彼此高度依賴,以至于如果某一個服務出現故障,其余服務很有可能也會出現故障。這種情況下,你一無所獲。你有999個服務就在那里干等著另一個服務恢復正常運行。”

據Little聲稱,那些開始使用微服務的人應該找出未能實現其功能的軟件,而不是就因為使用年限而把那些舊軟件挑出來。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!