微服務是一種軟件的體系結構方法,旨在加快開發周期并支持可伸縮性。在這種方法中,軟件由小型獨立服務組成,這些服務通過架構良好的API進行通信。
整體式與微服務架構
在整體式架構中,所有組件都緊密耦合并作為單個服務運行。在這里,如果應用程序的任何一個組件遇到需求高峰,則必須擴展整個體系結構。此體系結構類型增加了在應用程序中實現新想法的難度級別。
在微服務架構中,每個組件都是一個小型應用程序,具有自己的六邊形架構。它是一種體系結構樣式,它將應用程序構造為松散耦合且可獨立部署的服務集合。
微服務架構的特點
獨立
在微服務架構中,每個組件都可以單獨更改、升級或替換,而不會影響其他組件的功能。
分散
微服務架構遵循分散的數據管理,其中每個服務都有自己的數據模型視圖。
自治
在微服務架構中,無需與其他組件共享任何組件代碼或實現。組件之間的任何通信都可以通過明確定義的 API 來完成。
黑盒子
微服務架構的行為類似于黑匣子,因為每個組件都對其他組件隱藏了復雜性的詳細信息。
微服務架構的優勢
質量
微服務架構還可以提高代碼質量,因為整個應用程序都運行在小的、定義明確的組件中。
可伸縮性
在微服務架構中,每個組件都經過適當的解耦,因此可以水平擴展并彼此獨立,并且在擴展過程中永遠不會面臨停機,因為在水平擴展中,更多的組件被添加到現有池中,而不是增加每個組件的容量。
輕松開發
微服務架構使嘗試新想法變得容易,并在持續集成和持續交付的幫助下將其回滾,以防發生意外情況。
達觀
借助微服務架構,應用程序可以通過降低功能而不是使整個應用程序崩潰來處理總體服務故障。
微服務架構的挑戰
遷移
從整體架構遷移到微服務架構的過程非常復雜,需要將發布代碼依賴項向下延伸到數據庫層。
測試
在微服務環境中,由于服務及其集成不同,測試非常復雜。
監測
在微服務架構中,應用程序被分解為小組件。當出現問題時,很難找到問題的根本原因,因為問題可能不在于發生故障的組件,而在于依賴關系。
無服務器微服務架構
下圖顯示了無服務器微服務體系結構,其中構建了完整的解決方案,而無需管理任何服務器。這也消除了運行和監視服務器的操作工作。
Lambda 將處理運行和擴展執行所需的一切,以滿足具有高可用性的實際需求。Lambda 支持多種編程語言,可以直接從任何 Web 或移動應用程序調用它。
在架構圖中,Lambda 與 API 網關 集成。從 API 網關到 AWS Lambda 的同步調用使應用程序能夠以無服務器身份運行。AWS Lambda 會將所有數據存儲在名為 DynamoDB 的完全托管的 NoSQL 數據庫中,所有靜態數據都將存儲在 S3 存儲桶中。
可以說,微服務架構旨在克服企業應用程序中傳統整體架構的挑戰。它允許任何組織的運營和開發團隊之間的協作,從而實現DevOps,并且是當今的首選。
審核編輯:郭婷
-
服務器
+關注
關注
12文章
9237瀏覽量
85664 -
AWS
+關注
關注
0文章
432瀏覽量
24405
發布評論請先 登錄
相關推薦
評論