對於許多開發者來說,建構雲端原生應用程式最痛苦的不是寫程式碼,而是處理基礎設施的配置。你可能得面對複雜的 YAML 檔案、管理多個容器的網路連線,或是為了在本地模擬雲端環境而掙扎。.NET Aspire 正是為了解決這些痛點而生的雲端原生應用程式框架,旨在簡化分散式應用程式的開發、部署與可觀測性。
在最新的 13.3 版本中,Microsoft 針對部署流程與前端整合進行了大幅度強化,讓開發者能以更接近程式碼的方式來定義基礎設施。
簡化資源管理與部署流程
在以往的雲端開發流程中,部署資源相對容易,但清理資源往往被忽視,導致雲端帳單意外增加。Aspire 13.3 引入了 aspire destroy 命令,這讓開發者可以快速移除先前透過 aspire deploy 建立的資源。無論你的環境是 Azure、Kubernetes 還是 Docker Compose,都能統一清理,這對於需要頻繁建立與銷毀環境的持續整合(CI)流程尤其重要。
此外,Aspire CLI 現在支援 NativeAOT(原生提前編譯)。這是一項關鍵的效能優化技術,它將 .NET 程式碼直接編譯成機器碼,不再需要依賴運行時環境(Runtime)來即時編譯。對開發者而言,這意味著 CLI 工具的啟動速度大幅提升,操作反應更即時。
邁向 Kubernetes 的無 YAML 化
對於許多 Junior 工程師來說,Kubernetes 的 YAML 設定檔常被視為進入雲端原生的門檻。Aspire 13.3 推出的 Kubernetes 原生部署預覽功能,試圖實現 Kubernetes without the YAML 的目標。
開發者現在可以直接在 AppHost(Aspire 用於定義應用程式結構的主機專案)中宣告 Kubernetes 環境,Aspire 會自動生成 Helm Chart(一種 Kubernetes 的套件管理工具,用於定義、安裝和升級複雜的 Kubernetes 應用)並執行部署管線。同時,新加入的 Ingress(外部流量入口)與 Gateway API 路由資源,讓流量配置能直接在程式碼層級定義,而不需要手動編輯繁瑣的設定檔。
前端生態系的深度整合
過去 Aspire 的重心較偏向後端微服務,但 13.3 版本將 JavaScript 應用程式提升到了第一等級的支援。透過一套統一的 PublishAs 方法,開發者可以輕鬆處理靜態網站、Node.js 伺服器以及基於 npm 腳本的部署。
這次更新新增了 AddNextJsApp 輔助方法,並完整支援 Bun、Yarn 與 pnpm 等現代化套件管理工具。這意味著前端開發者不再需要脫離 Aspire 的管理體系去單獨配置部署流程,而是能與後端服務一起在同一個 AppHost 中定義依賴關係與啟動順序。
強化可觀測性與開發體驗
可觀測性(Observability)是指透過監控數據來理解系統內部狀態的能力。Aspire 13.3 引入了 Aspire.Hosting.Browsers 整合,能直接將瀏覽器的主控台日誌(Console Logs)、網路請求與截圖捕捉到 Aspire Dashboard 中。開發者不再需要頻繁切換瀏覽器開發者工具與後端日誌,所有端到端的調試資訊都能在同一個介面看到。
另外,Container Tunnel(容器隧道)現在預設開啟,這解決了在不同容器執行環境(如 Docker Desktop, Docker Engine 或 Podman)之間連線不一致的問題,確保開發者在本地開發時,網路連通性具有高度的一致性。
升級注意事項
在更新至 13.3 之前,開發者需要注意一些破壞性變更(Breaking Changes)。例如,指令參數 --log-level 已更名為 --pipeline-log-level。此外,為了推動 Agentic Development(代理人開發模式),Dashboard 內建的 GitHub Copilot UI 已被移除,轉而透過 CLI 形式提供更強大的 AI 代理能力。
來源:infoq.com
本文由 Agent Donma | 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。