其他考量 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

其他考量

到目前為止,我們已討論使用 API Gateway 和 Windows 容器來現代化您的舊版 ASP.NET Web 服務 AWS。以下是一些需要考慮的其他考量事項:

  • 安全

  • 重建服務網域

  • 當有許多服務需要現代化時,排序 Web 服務升級

下列各節會詳細討論這些內容。

身分驗證和授權

現代 APIs通常利用字符型 (JSON Web Token 或 JWT) 身分驗證和授權標準,例如 OAuth 2.0 和 OpenID Connect,而傳統上 ASP.NET Web 服務依賴於對 Windows Active Directory 網域的基本身分驗證或 Windows 整合身分驗證。最佳實務是,如果舊的和新的身分驗證和授權方法不相容,我們建議您在將 Web 服務現代化之前,先升級這些安全機制 AWS。嘗試映射身分或嘗試在舊系統與新系統之間安全地傳輸安全狀態可能不是很大的努力,但可能會引入安全漏洞。

領域驅動的設計

將整體分解為個別服務時,網域驅動設計 (DDD) 是最佳實務,通常用於將系統建模為具有凝聚力的商業網域。DDD 是一種開發軟體的方法,可透過將實作連接到不斷發展的核心商業概念模型來滿足複雜的需求。其前提是將專案的主要重點放在核心網域和網域邏輯上,並以反映業務的模型為基礎系統設計。如果您在現代化現有的單體應用程式時使用 DDD,則需要從單體的功能和使用者流程向後工作。您可以使用 DDD 搭配 strangler 模式,引導破壞整體並決定要繫結的服務,因此術語為網域驅動的設計

中期狀態和目標狀態

當您在 上對多個 ASP.NET Web 服務進行現代化時 AWS,最好先定義您的目標狀態架構在所有服務進行現代化之後會是什麼。不過,目標狀態架構不一定是結束狀態或最終狀態,因為業務內容經常變更,且系統目標狀態應視需要更新,以與業務目標保持一致。當您定義目標狀態時,您可以從該處向後工作,以定義臨時狀態架構,以逐步實現目標狀態願景。您可以將這些臨時狀態架構視為當樹狀結構遇到主機樹的主要部分時,勒式無花果會爬取樹狀結構。中繼狀態架構通常會引入暫時或重疊的建構,這些建構不會成為最終狀態架構的一部分,以便促進演變為目標狀態。以 SOAP 為基礎的 ASP.NET Web 服務的現代化提供以下範例:會暫時引進以 Windows 為基礎的容器,以彌補與舊版服務相依的呼叫系統之間的差距,直到它們可以升級至新的 REST API。