Aspire 框架預覽版發佈,使雲原生開發和運維更加簡單

隨着 .NET 8 的發佈,.NET Aspire 也隨之發佈[1],這是一個全家桶框架旨在加快基於雲的應用程序的構建。.NET Aspire 從一開始就集成了關鍵組件,例如遙測和運行狀況檢查。它還承諾提供無縫的本地開發人員體驗,該體驗可以有效擴展以滿足雲應用程序開發的需求。Microsoft 鼓勵對 .NET Aspire 預覽版(目前在 GitHub 上提供[2])提供反饋。

image

.NET Aspire提供瞭如下3個方面的能力,來幫助我們使用.NET開發分層、雲就緒的可觀測、本地與生產環境一致的分佈式雲原生應用程序:

  • 微服務的編排能力:在開發和線上環境自動處理多個微服務之間的連接和依賴,也即內置了服務發現等基礎能力。

  • 基礎服務的訪問能力:通過提供一系列Nuget包,把對一些基礎服務的訪問進行統一封裝(比如,緩存、數據庫、消息隊列等),方便微服務直接使用。

  • 工具鏈的相應配合:在VS和VSCode等工具中添加對以上編排能力的支持,並提供一系列開箱即用的模板,來方便開發人員進行開發、調試和部署雲原生應用。

Aspire 包含了 2020 年首次發佈的名爲 Project Tye 的早期實驗中首次使用的元素,儘管 Project Tye 是爲 Kubernetes 設計的,而 Aspire 沒有做出這種假設,Aspire 也是。Project Tye 在首次發佈時受到歡迎,但在最近的一年幾乎沒有活動。毫無疑問的是社區開發人員都很想知道Microsoft是否會兌現承諾, 隨着.NET 8的發佈,Aspire繼承了Tye 的最新狀態。根據 .NET 團隊的首席項目經理 Glenn Condron 的說法,它將在 2024 年春季全面上市,距離現在只有六個月的時間,昨天發佈的是第一個預覽版。

Aspire 將成爲 .NET 8 的一部分,第一個版本是v8.0.0-preview.1.23557.2[3]。完整的工具支持位於最新的 Visual Studio 預覽版 17.9 預覽版 1 中,這意味着必須使用 Windows 進行開發,儘管 Linux 和 Mac 用戶可以在沒有某些開發人員工具的情況下使用它。

當前的Aspire預覽版面向Visual Studio和Azure,很多人的第一感覺就是面向Azure搞的一個東西,不過他其實也包含了Dapr的支持,因此Aspire 可以支持Dapr 的所有平臺,而不是侷限於Azure 這樣的微軟平臺。

初學者 Aspire 應用程序示例包括 Blazor Web 應用程序、後端 API 和 Redis 緩存。解決方案中添加了兩個 Aspire 項目,一個名爲 AppHost,它作爲分佈式應用程序的一部分運行任何 .NET 項目,另一個名爲 ServiceDefaults,它提供包括服務發現、遙測和運行狀況檢查終結點在內的功能。包括一個開發人員儀表板,其中列出了服務、收集和顯示日誌,並顯示了應用程序各部分的指標和跟蹤。

遙測基於用於創建和管理遙測數據的 Open Telemetry [4]項目,然後可以將這些數據傳遞給各種工具。Open Telemetry 得到了大約 40 家供應商的支持,包括 Grafana、Splunk、New Relic、Datadog 和 Dynatrace 等熟悉的名字,以及 Jaeger 和 Prometheus 等開源項目。

Aspire 應用程序的部署旨在基於容器。Aspire 可以生成一個清單來定義應用程序中不同服務之間的關係,然後工具可以使用該清單進行部署。Microsoft 提供與 Azure 容器應用程序的集成,“在一個步驟中立即配置和部署 Azure 資源。

現有應用程序可以添加 Aspire 支持,前提是它們已升級到 .NET 8。然後,在 Visual Studio 中,開發人員可以添加 Aspire Orchestration Support,這會將 AppHost 和 ServiceDefaults 項目添加到解決方案中。

image

Aspire 支持組件,其中每個組件都必須默認提供彈性、運行狀況檢查和遙測,並與依賴項注入集成,這是一種嚮應用程序添加服務的技術,通常用於 .NET 應用程序。Condron 以 Redis 組件爲例,該組件通過一次調用 AddRedis 來添加 Redis 緩存,從而創建可以根據需要覆蓋的默認配置。

image

初始組件集包括 PostgreSQL、RabbitMQ、Redis、SQL Server、Azure Blob 存儲、Azure Cosmos DB、Azure Key Vault、Azure 服務總線和 Azure 存儲隊列。數據庫組件附帶Entity Framework和普通客戶端版本,其中Entity Framework是標準的 .NET ORM(對象關係映射)庫。

它爲雲原生應用程序提供儀表板,可用於查看日誌和指標、分佈式跟蹤、依賴項等。

image

通過儀表板,您可以列出已分發的服務並顯示日誌。 它顯示一個紅色圓圈表示有問題的服務,使人們更容易瞭解雲原生分佈式應用程序的狀態。

image

此外,“跟蹤”功能允許對一組服務如何處理用戶操作進行分佈式跟蹤。

image

相關鏈接:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章