《.NET 微服務:適用於容器化 .NET 應用的體系結構》關鍵結論

 

做爲總結和要點,如下是本指南中最重要的結論。
1 使用容器的好處:數據庫

基於容器的解決方案有節約成本的好處,由於容器是針對生產環境中缺乏依賴而致使的部署問題提出的解決方案。容器可以顯著改善devops和生產操做。windows


2 容器將無處不在安全

基於Docker的容器正在成爲容器領域的事實標準,而被windows和Linux生態系統中最重要的供應商的支持,包括微軟、亞馬遜AWS、谷歌和IBM。在不久的未來,Docker可能會在雲和按需數據中心中無處不在。服務器


3 容器做爲部署單元網絡

一個Docker容器正在成爲任何基於服務器的應用程序或服務的標準部署單元。架構


4 Microservices框架

microservices體系架構正在成爲分佈式和大型或複雜任務關鍵型應用程序的首選方法,這些程序基於由自治服務形式構成的多個獨立子系統。在基於microservice的體系結構中,應用程序是做爲能夠開發、測試、版本控制、部署和獨立擴展的服務集合而構建的;這能夠包括任何相關的自治數據庫。編輯器


5 領域驅動的設計和SOA分佈式

microservices體系架構模式源於面向服務的體系結構( SOA )和領域驅動設計( DDD)。當您爲具有不斷進化的業務規則並逐漸造成特定領域的環境設計和開發microservices時,必須考慮DDD方法和模式。工具

6 Microservices挑戰

Microservices提供了許多強大的功能,如獨立部署、強子系統邊界和技術多樣性。然而,它們還引起了與分佈式應用程序開發相關的許多新的挑戰,如分散和獨立的數據模型、microservices之間的彈性通訊、最終的一致性,以及從多個microservices聚合日誌和監控信息致使的操做複雜性。這些方面比傳統的總體應用程序引入更高的複雜性。所以,只有特定的場景適合基於microservice的應用程序。這些包括具備多個演化子系統的大型和複雜的應用程序;在這些狀況下,值得投資於更復雜的軟件體系結構,由於它將提供更好的長期敏捷性和應用程序維護。

7 任何應用程序的容器

容器對microservices很方便,但並不專爲它們。容器還能夠與總體應用程序一塊兒使用,包括基於傳統的net框架遺留應用程序和經過windows容器實現現代化。使用Docker的好處,例如解決許多部署到生產環境的問題,提供完美的開發和測試環境,以及適用於許多不一樣類型的應用程序。
8 CLI與IDE

使用Microsoft工具,您可使用您的首選方法開發集裝箱化.NET應用程序。您可使用Docker CLI和Visual Studio Code開發基於CLI和基於編輯器的環境。或者您可使用visual studio及其獨特的功能來使用基於IDE的方法,例如可以調試多容器應用程序。

9 實現具備恢復能力的雲應用程序

在基於雲的系統和分佈式系統中,老是存在部分故障的風險。因爲客戶端和服務是單獨的流程(容器),服務可能沒法及時響應客戶的請求。例如,因爲部分故障或維護,服務可能會關閉;該服務可能會超載,並對請求做出極其緩慢的反應;或者,因爲網絡問題,短期內可能沒法訪問。所以,基於雲的應用程序必須包含這些故障,並制定應對這些故障的策略。這些策略能夠包括重試策略(從新發送消息或重試請求)和實現斷路器模式,以免重複請求的指數負載。基本上,基於雲的應用程序必須具備健壯機制——定製的機制,或者基於雲基礎架構的機制,如來自調度器或服務總線的高級框架。
10 安全

咱們的容器和microservices的現代世界可能會暴露新的漏洞。基本的應用程序安全性是基於身份驗證和受權的;有多種方法來實現這些。然而,容器安全包括額外的關鍵組件,從而致使本質上更安全的應用程序。構建更安全的應用程序的一個關鍵要素是有一種安全的方式與其餘應用程序和系統進行通訊,這一般須要憑據、令牌、密碼和其餘類型的機密信息—一般稱爲應用程序機密。任何安全解決方案都必須遵循安全最佳作法,例如在傳輸過程當中加密密鑰;其餘時候解密密鑰;並防止在最終應用程序使用時無心泄漏的密碼。這些密鑰須要存儲,並在某個地方保持安全。爲了幫助安全性,您能夠利用您選擇的調度器的基礎架構,或者像Azure Key Vault這樣的雲基礎架構,以及它爲應用程序代碼提供的方式。
11 調度器

基於容器的調度器,如在Azure Container服務( kubernetes、Mesos DC /OS、Docker Swarm)和Azure服務結構中提供的那樣,對於任何基於microservice的應用程序和具備顯著複雜性、可擴展性需求和不斷演化的任何多容器應用程序來講都是不可或缺的。本指南介紹了調度器及其在基於microservice和基於容器的解決方案中的做用。若是您的應用程序需求正在遷移到複雜的集裝箱化應用程序中,您須要進一步瞭解協調器的用法。

相關文章
相關標籤/搜索