本文翻譯自微軟Docs, 內嵌譯者多年使用的參悟,如理解有誤,請不吝賜教。前端
微軟與社區專家合做,開發了功能齊全的雲原生微服務示例應用eShopOnContainers。
該應用旨在展現使用.NET、Docker以及可選的Azure,Kubernetes技術來構建電商平臺。
git
簡要回顧eShopOnContainers應用的業務功能和技術目標,eShopOnContainers示例應用表明一個出售各類實體產品的(例如T恤和咖啡杯)電商平臺。github
電商平臺要實現的一些基本功能:後端
示例應用還具備如下非功能性要求:安全
Web或移動客戶端經過HTTPS訪問ASP.NET Core MVC服務器程序或API網關程序
。服務器
API網關具備多種優點,例如將後端服務與各個前端客戶端解耦,並提供更好的安全性。app
該應用程序還利用了BFF模式(服務於前端的後端)
,該模式建議爲每一個前端客戶端建立單獨的API網關。微服務
上面的體系圖演示了基於請求是來自Web客戶端仍是來自移動客戶端的API網關
。翻譯
示例應用的功能被分解爲許多不一樣的微服務:設計
這些獨立的服務都有其本身的持久化存儲,沒有能夠與全部服務交互的單個主數據存儲,
服務之間的協調和通訊是經過消息總線
來完成的。
每一個微服務根據其各自的需求獨立設計。所以它們的技術堆棧是能夠不一樣的(目前服務均是.NET構建併爲雲設計)。
簡單的服務提供了基本的建立、讀取、更新、刪除訪問(CRUD),而更高級的服務則使用領域驅動設計方法
和模式來管理業務複雜性。
由於eShopOnContainers示例程序使用微服務,在其GitHub存儲庫中包含許多單獨的項目文件。
除了獨立的項目方案和可執行文件以外,各類服務還被設計爲在獨立的容器中運行。
下圖顯示了完整的Visual Studio解決方案,管理組織了各類不一樣的項目。
該代碼被組織爲支持不一樣的微服務,而且在每一個微服務中,代碼分爲領域邏輯、基礎設施以及用戶界面/服務端點。