單體應用與微服務優缺點辨析


前久由於需要做一個異構系統集成的架構設計,所以深入研究了下微服務架構,今天由於家里斷網(只能用手機熱點)所以分享一篇OneNote里面摘錄的文章。

微服務架構(MSA)是一種架構概念,旨在通過將功能分解到各個離散的服務中以實現對解決方案的解耦。你可以將其看作是在架構層次而非在具體代碼上應用SOLID原則的設計原則。個人我認為微服務更多的是一種架構風格,也可以看作是一種粒度更細的SOA。在InfoQ上有很多介紹微服務架構的文章,今天要分享的是一篇對比單體應用和微服務的文章,所謂單體應用和微服務可以通過下圖來理解:

monolithic_ms

閱讀這篇文章后,可以幫助我們對微服務的概念和優缺點有一個比較清晰的認識。

這篇文章首先講述了單體應用的優點:為人熟知;IDE友好;便於共享;易於測試;容易部署。

接着例舉了一些單體應用的缺點:不夠靈活;妨礙持續交付;受技術棧限制;技術負債。

由於微服務具有諸多特點:領域驅動設計;單一職責原則;明確發布接口;獨立部署、升級、擴展和替換;可以異構多種語言混合;輕量級通信。

所以,引入微服務可以帶入如下好處:易於開發、理解和維護;比單體應用啟動快;局部修改很容易部署,有利於持續集成和持續交付;故障隔離,一個服務出現問題不會影響整個應用;不會受限於任何技術棧。

當然要成功實施微服務,具備良好的開發運維團隊才有保證。

更多的解釋和說明可以“閱讀原文”,或者在InfoQ中文站上搜索“微服務”來獲取更多相關文章。

原文地址:http://www.infoq.com/cn/news/2015/04/single-app-micro-service


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM