將Azure API管理與微服務結合使用的好處

來源:Microsoft Azure
作者:Mike Budzynski
時間:2020-08-05
2271
在此文章中,我們將探討:如何設計簡化的在線商店系統(tǒng)以實現(xiàn)上述好處。為什么以及如何在基于微服務的體系結構中管理面向公眾的API。如何開始使用Azure API管理和微服務。

IT行業(yè)正在經(jīng)歷從單一應用程序到基于微服務的體系結構的轉變。這種新方法的好處包括:

獨立開發(fā)和自由選擇技術–開發(fā)人員可以同時處理不同的微服務,并為他們要解決的問題選擇最佳技術。

獨立的部署和發(fā)布周期–微服務可以按自己的時間表進行單獨更新。

粒度擴展–單個微服務可以獨立擴展,從而降低了總體成本并提高了可靠性。

簡便性–較小的服務更易于理解,從而加快了產(chǎn)品的開發(fā),測試,調試和發(fā)布的速度。

故障隔離–微服務的故障不必轉化為其他服務的故障。

在此博客文章中,我們將探討:

如何設計簡化的在線商店系統(tǒng)以實現(xiàn)上述好處。

為什么以及如何在基于微服務的體系結構中管理面向公眾的API。

如何開始使用Azure API管理和微服務。

示例:使用微服務實現(xiàn)的在線商店

讓我們考慮一個簡化的在線商店系統(tǒng)。網(wǎng)站的訪問者需要能夠查看產(chǎn)品的詳細信息,下訂單,查看下訂單。

每當下訂單時,系統(tǒng)都需要處理訂單明細并發(fā)出運輸請求。根據(jù)用戶方案和業(yè)務需求,系統(tǒng)必須具有以下屬性:

細粒度縮放-查看產(chǎn)品詳細信息的頻率平均比下訂單至少高1000倍。

簡便性–明確定義了獨立的用戶操作,這種分離需要反映在系統(tǒng)的體系結構中。

故障隔離–運輸功能的故障不會影響查看產(chǎn)品或下訂單。

他們暗示將通過三種微服務來實施該系統(tǒng):

1、使用公共GET和POST API的訂單-負責查看和下訂單。

2、具有公共GET API的產(chǎn)品-負責查看產(chǎn)品的詳細信息。

3、由事件在內部觸發(fā)的裝運–負責處理和裝運訂單。

為此,Azure將使用易于實現(xiàn)和管理的Azure功能。它們的事件驅動性質意味著它們將在交互上執(zhí)行并為其付費。當商店流量不可預測時,此功能將非常有用。在沒有流量的情況下,基礎架構會縮減為零。在市場營銷活動如病毒般傳播或在購物假期(例如美國的黑色星期五)期間負載增加的情況下,它還可以提供大量流量。

為了保持縮放粒度,確保簡單性并保持發(fā)布周期獨立,每個微服務都應在單獨的Function App中實現(xiàn)。

ia_2000000003.png

在單個功能應用程序中實現(xiàn)微服務的流程圖

訂單和產(chǎn)品微服務是帶有HTTP觸發(fā)器的外部函數(shù)。運輸微服務由訂單微服務間接觸發(fā),該訂單微服務在Azure Service Bus中創(chuàng)建一條消息。例如,當您訂購商品時,網(wǎng)站會發(fā)出POST Order API調用來執(zhí)行訂購功能。接下來,您的訂單在Azure Service Bus實例中作為消息排隊,然后觸發(fā)運送功能進行處理。

在基于微服務的架構中管理外部API通信的主要理由

所提出的體系結構具有一個基本問題,即處理來自外部的通信的方式。

客戶端應用程序耦合到內部微服務。當您希望拆分,合并或重寫微服務時,這尤其麻煩。

API不在同一域或IP地址下出現(xiàn)。

通用API規(guī)則無法輕松地跨微服務應用。

管理API更改和引入新版本很困難。

盡管Azure Functions代理提供了統(tǒng)一的API平面,但在其他情況下它們還是不足的。應該通過在Azure函數(shù)之前使用Azure API管理來解決這些限制,現(xiàn)在可以在無服務器的消費層中使用。

ia_2000000004.png

流程圖顯示Azure API Managemnet到Azure Functions的前沿

API管理從其實現(xiàn)中抽象出API,并將它們托管在相同的域或靜態(tài)IP地址下。它使您可以將客戶端應用程序與內部微服務分離。Azure API管理中的所有API共享一個主機名和一個靜態(tài)IP地址。您也可以分配自定義域。

使用APIManagement通過在Azure API Management中聚集API來確保API的安全,而不是直接公開您的微服務。這可以幫助您減少潛在攻擊的表面積。您可以使用訂閱密鑰,JWT令牌,客戶端證書或自定義標頭來驗證API請求。流量只能過濾到受信任的IP地址。

使用APIManagement,還可以在API上執(zhí)行規(guī)則。您可以按API或按API操作全局定義傳入請求和傳出響應的API策略。幾乎有50種策略,例如身份驗證方法,限制,緩存和轉換。通過訪問我們的文檔“API管理政策”了解更多信息。

API管理簡化了不斷變化的API。從設計階段到引入新版本或修訂版,您都可以在API的整個生命周期中進行管理。與修訂版本相反,版本應包含重大更改,例如刪除API操作或更改身份驗證。

可以在使用API管理時監(jiān)視API,在Azure API管理實例中查看使用情況指標,在Azure Application Insights中記錄API調用以創(chuàng)建圖表,監(jiān)視實時流量并簡化調試。

API管理使向外部開發(fā)人員發(fā)布API變得容易。Azure API管理提供了一個開發(fā)人員門戶,該門戶是一個自動生成的,完全可自定義的網(wǎng)站,訪問者可以在其中發(fā)現(xiàn)API,學習如何使用它們,以交互方式試用它們,下載其OpenAPI規(guī)范并最終注冊以獲取API密鑰。

如何通過微服務使用API管理

Azure API管理最近已在新的定價層中可用。通過按執(zhí)行計費,消費層特別適合基于微服務的體系結構和事件驅動的系統(tǒng)。例如,對于我們假設的在線商店而言,這將是一個不錯的選擇。

對于更高級的系統(tǒng),API管理的其他層提供了更豐富的功能集。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:Microsoft Azure
版權說明:本文內容來自于Microsoft Azure,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家