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

2023-11-16 09:00:14

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

image

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。完整的工具支援位於最新的 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 專案,然後可以將這些資料傳遞給各種工具。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