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