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