EDITION v7.0 - 已更新為 ASP.NET Core 7.0
請參閱 變更記錄,以獲取書籍更新和社群貢獻資訊。
本指南是開發微服務型應用程式的簡介,並使用容器加以管理。 它會討論使用 .NET 和 Docker 容器的架構設計和實作方法。
為了讓您更輕鬆地開始使用,本指南著重於您可以探索的參考容器化和微服務型應用程式。 參考應用程式可在 eShopOnContainers GitHub 存放庫取得。
動作連結
簡介
企業越來越多地實現節省成本、解決部署問題,以及使用容器改善DevOps和生產作業。 Microsoft已藉由建立 Azure Kubernetes Service 和 Azure Service Fabric 等產品,並與 Docker、Mesosphere 和 Kubernetes 等產業領導者合作,為 Windows 和 Linux 發行容器創新。 這些產品提供容器解決方案,可協助公司以雲端速度和規模建置和部署應用程式,無論其選擇的平臺或工具為何。
Docker 正成為容器產業中事實上的標準,受到 Windows 和 Linux 生態系統中最重要的廠商所支援。 (Microsoft是支援 Docker 的主要雲端廠商之一)。 未來,Docker 可能無處不在於雲端或內部部署的任何數據中心。
此外, 微服務 架構正在成為分散式任務關鍵性應用程式的重要方法。 在微服務架構中,應用程式是以可獨立開發、測試、部署和版本設定的服務集合為基礎。
關於本指南
本指南是開發微服務型應用程式的簡介,並使用容器加以管理。 它會討論使用 .NET 和 Docker 容器的架構設計和實作方法。 為了讓您更輕鬆地開始使用容器和微服務,本指南著重於您可以探索的參考容器化和微服務型應用程式。 範例應用程式可在 eShopOnContainers GitHub 存放庫取得。
本指南主要在開發環境層級提供基礎開發和架構指引,著重於兩種技術:Docker 和 .NET。 我們打算在考慮應用程式設計時閱讀本指南,而不需專注於生產環境的基礎結構(雲端或內部部署)。 當您建立生產就緒的應用程式時,稍後會決定基礎結構。 因此,本指南旨在以基礎結構為中心,且以開發環境為主。
在學習本指南之後,下一個步驟是瞭解 Microsoft azure 上的生產環境就緒微服務。
版本
本指南已經過修訂,以涵蓋 .NET 7 版本,以及許多與相同技術(也就是 Azure 和其他第三方技術)相關的額外更新,與 .NET 7 版本相吻合。
備註
為 .NET 8 和新的 eShop 範例建立新版的電子書。
本指南未涵蓋的內容
本指南不會著重於應用程式生命週期、DevOps、CI/CD 管線或小組工作。 具有Microsoft平臺和工具的容器化 Docker 應用程式生命周期補充指南著重於該主題。 目前的指南也不會提供 Azure 基礎結構的實作詳細數據,例如特定協調器的相關信息。
其他資源
-
具有 Microsoft 平臺和工具的容器化 Docker 應用程式生命週期 (可下載的電子書)
https://aka.ms/dockerlifecycleebook
誰應該使用本指南
我們為開發人員和解決方案架構設計人員撰寫本指南,他們不熟悉 Docker 應用程式開發,以及微服務架構。 如果您想要瞭解如何使用Microsoft開發技術來建構、設計及實作概念證明應用程式,請參閱本指南(特別著重於 .NET),以及使用 Docker 容器。
如果您是技術決策者,例如想要架構和技術概觀的企業架構設計人員,在您決定要為新式和現代化分散式應用程式選取何種方法之前,您也會發現本指南很有用。
如何使用本指南
本指南的第一個部分介紹 Docker 容器、討論如何選擇 .NET 7 和 .NET Framework 作為開發架構,並提供微服務的概觀。 此內容適用於想要概觀但不需要專注於程式碼實作詳細數據的架構設計人員和技術決策者。
本指南的第二個部分是從 Docker 應用程式開發程式 一節開始。 其著重於使用 .NET 和 Docker 實作應用程式的開發和微服務模式。 本節對想要專注於程序代碼和模式和實作詳細數據的開發人員和架構設計人員來說,最感興趣。
相關微服務和容器型參考應用程式:eShopOnContainers
eShopOnContainers 應用程式是適用於 .NET 的開放原始碼參考應用程式,以及設計為使用 Docker 容器部署的微服務。 應用程式包含多個子系統,包括數個電子商店 UI 前端(Web MVC 應用程式、Web SPA 和原生行動應用程式)。 它也包含所有必要伺服器端作業的後端微服務和容器。
應用程式的目的是展示架構模式。 這不是啟動真實世界應用程式的 PRODUCTION-READY 範本。 事實上,應用程式處於永久的 Beta 狀態,因為它也用來在應用程式出現時測試新的潛在有趣技術。
傳送意見反應
這本書和相關範例不斷演進,因此您的意見反應受到歡迎。 如果您對這本書有改進的建議,並且您正在 <learn.microsoft.com>閱讀本書,請使用頁面底部的 [反饋] 區段:
如上述螢幕擷取中所醒目提示,意見反應區段可讓您提交下列專案的意見反應:
- 本產品:使用 .NET 產品意見反應表單。
- 此頁面:使用 GitHub 問題範本搭配頁面詳細數據。
如果您是以 PDF 形式閱讀這本書,您可以建立新的 .NET Docs:GitHub 問題 或使用 .NET 架構電子書:GitHub 問題範本來提交意見反應。
學分
共同作者:
Cesar de la Torre, Sr. PM, .NET product team, Microsoft Corp.
Bill Wagner,Sr. Content Developer, C+E, Microsoft Corp.
首席軟體工程師Mike Rousos,DevDiv CAT小組,Microsoft
編輯:
邁克·波普
史蒂夫·霍格
參與者和檢閱者:
Jeffrey Richter、Partner Software Eng、Azure 小組、Microsoft
吉米·博加德,頭槌首席建築師
Udi Dahan,創始人和首席執行官,特定軟體
吉米·尼爾森,Factor10 聯合創始人兼首席執行官
葛籣·康得隆,ASP.NET 團隊的資深項目經理
Mark Fussell,主要 PM 負責人,Azure Service Fabric 小組,Microsoft
迭戈·維加,PM 主管,Entity Framework 小組,Microsoft
巴里·多蘭斯,安全性項目經理
羅文·米勒,Sr. Program Manager,Microsoft
Ankit Asthana,主要 PM 經理,.NET 小組,Microsoft
Scott Hunter,合作夥伴主管 PM,.NET 小組,Microsoft
Nish Anil,Sr. Program Manager,.NET 小組,Microsoft
波莉的迪倫·賴森伯格,建築師和開發主管
Steve “ardalis” Smith - 軟體架構師和教練 - Ardalis.com
Ian Cooper,Brighter 的編碼架構師
Unai Zorrilla,一般概念的架構師和開發主管
Eduard Tomas,一般概念的開發主管
Ramon Tomas,一般概念的開發人員
David Sanz,一般概念的開發人員
哈威爾·瓦列羅,格魯波索魯蒂奧首席運營官
皮埃爾·米勒特,Microsoft
Michael Friis,產品經理,Docker Inc
Charles Lowell,軟體工程師,VS CAT 小組,Microsoft
一般概念的軟體開發工程師 Miguel Veloso
蘇米特·戈什,Neudesic 首席顧問
著作權
發行者
Microsoft開發人員部門、.NET 和 Visual Studio 產品小組
Microsoft公司的一個部門
一Microsoft方式
雷德蒙德, 華盛頓 98052-6399
Microsoft公司著作權 © 2023
保留所有權利。 未經出版商書面許可,本書的內容不得以任何形式或以任何方式轉載或傳輸。
這本書提供了“as-is”,表達了作者的觀點和意見。 本書所表達的觀點、意見和資訊,包括 URL 和其他互聯網網站參考,可能未經通知而變更。
此處描述的一些範例僅供說明,而且是虛構的。 不存在任何實際關聯或連結的意圖,也不應該推測這一點。
Microsoft和“商標”網頁上 https://www.microsoft.com 所列商標是Microsoft集團公司的商標。
Mac 和 macOS 是 Apple Inc 的商標。
Docker whale 標誌是 Docker, Inc. 的註冊商標,由許可權使用。
所有其他標記和標誌都是其各自擁有者的屬性。