共用方式為


設計微服務架構

微服務是一種流行的架構風格,用於構建雲應用程序,這些應用程序保持彈性、高效擴展、獨立部署和快速發展。 為了提供真正的價值,微服務需要不同的設計和應用程式開發方法。

這組文章探討如何在 Azure 上建置微服務架構。 它包括以下指導:

  • 微服務的計算選項:評估微服務的 Azure 計算服務,包括 Azure Kubernetes Service (AKS)、Azure 容器應用程式和 Azure Functions。 根據可擴展性、管理額外負荷和部署模型的需求,瞭解何時使用每項服務。

  • 服務間通訊:使用同步和非同步方法,設計微服務之間的有效通訊模式。 瞭解 REST API、傳訊模式、事件驅動架構和服務網格技術,以實現可靠的服務對服務通訊。

  • API 設計: 創建支持微服務架構原則的精心設計的 API。 瞭解 API 版本控制策略、錯誤處理模式,以及如何設計 API 以促進鬆散耦合和獨立服務演進。

  • API 閘道:實作 API 閘道來管理跨領域問題,例如驗證、速率限制和請求路由。 了解閘道如何簡化用戶端互動,並在整個微服務生態系統中提供集中式政策執行。

  • 資料考量:解決微服務架構中的資料管理挑戰,包括資料一致性模式、分散式事務和選擇合適的資料存放區。 瞭解跨服務界限維護資料完整性的策略。

  • 容器協調流程:使用容器協調器大規模部署和管理容器化微服務。 了解 Kubernetes 等平台如何自動化部署、擴展、負載平衡和健康管理,以在生產環境中維護所需的系統狀態。

  • 設計模式:應用特定於微服務的經過驗證的設計模式,包括用於卸載連接任務的大使模式、用於資源隔離的隔板模式以及用於增量應用程式重構的 Strangler Fig 模式。

先決條件

在閱讀這些文章之前,請先從下列資源開始:

範例架構

顯示無人機交付工作負載架構的圖表。

下載此架構的 Visio 檔案

Scenario

Fabrikam, Inc. 創建無人機送貨服務。 該公司管理著一支無人機機隊。 企業會註冊此服務,而使用者可要求無人機收取貨物進行遞送。 當客戶安排取件時,後端系統會分配一架無人機並通知用戶預計的交貨時間。 在交付過程中,客戶可以追蹤無人機的位置,包括不斷更新的預計到達時間 (ETA)。

該解決方案適用於航空航天和飛機工業。

此案例涉及相當複雜的網域。 一些業務問題包括安排無人機、追蹤包裹、管理使用者帳戶以及儲存和分析歷史資料。 Fabrikam 也想要進入市場,然後快速迭代以新增功能和性能。 應用程式需要以雲端規模運作,並具有高服務等級目標 (SLO)。 Fabrikam 也預期系統的不同部分對資料儲存和查詢有非常不同的需求。 根據考量,Fabrikam 會為無人機傳遞應用程式選擇微服務架構。

備註

如需如何在微服務架構與其他架構樣式之間進行選擇的詳細資訊,請參閱 Azure 應用程式架構指南

此架構會搭配 AKS 使用 Kubernetes。 但許多高階架構決策和挑戰適用於任何容器協調器。

後續步驟