隨着也業務的不斷髮展,原來可行的應用,逐漸演變成了單體地獄(泥球模式:隨意的架構、龐大的、草率的、佈滿了膠帶和線路,如同意大利麪條一般的代碼叢林),軟件的交付速度已經放緩,敏捷開發和部署已經不可能。
逃離單體地獄的途徑必將是選擇微服務架構(拯救之道)。
微服務架構作爲模塊化的一種形式。每個微服務有其獨特的獨立性,且都擁有自己的數據庫。微服務架構的一個關鍵特性是每一個微服務之間都是鬆耦合的,它們僅僅通過API進行通信。
微服務架構的好處:
- 使大型的複雜應用程序可以持續交付和持續部署
- 每個微服務相對較小並容易維護
- 服務可以獨立部署
- 服務可以獨立擴展
- 微服務架構可以實現團隊的自治
- 更容易實驗和採納新的技術
- 更好的容錯性
微服務架構的弊端:
- 微服務的拆分和定義是一項挑戰
- 分佈式系統帶來的複雜性,使開發、測試和部署變得更困難(運維複雜度化解開發複雜度的痛點)
- 當部署跨多個服務的功能時需要謹慎地協調更多開發團隊
- 開發者需要思考到底應該在應用的什麼階段使用微服務架構