近年来,应用开发领域发生了巨大变化。越来越多的组织正在向云原生设计迁移,开发者现在面临着构建、部署和管理这些分布式系统的艰巨任务。对于许多开发者来说,这种转变将涉及一系列挑战,包括整合技术栈、管理配置、服务发现、可观察性、部署以及许多其他最佳实践。底层架构的复杂性也可能看起来势不可挡。
这就是 .NET Aspire 发挥作用的地方。.NET Aspire 可以被描述为一个有主见的、为云而生的技术栈,用于构建可观察的、生产就绪的分布式应用程序。.NET Aspire 将介绍一系列对于构建云应用程序的开发者来说常见的主题和功能。
.NET Aspire 旨在简化开发者本地机器上分布式应用的编排工作。Aspire 允许您在本地开发环境中编排多个服务,包括多个 .NET 项目、依赖的数据库和 Docker 容器――所有这些都可以通过一条命令完成。此外,Aspire 为本地开发提供了观察工具,包括日志记录、跟踪和指标仪表板,这些工具与用于预生产或生产环境的工具解耦。这大大改善了开发者在构建、调整和调试任何系统的可观察性方面的开发体验。
当我们开始计划写一本关于 .NET Aspire 的书时,我们的动机来自于我们经历过(并继续经历)开发者在构建分布式应用程序时面临的挑战(配置、服务发现、可观察性、部署等)。这本书是我们从 .NET Aspire 诞生之初就积累的经验的结晶。这本书不仅仅是解释 .NET Aspire 所提供的一切,它还提供了使用 .NET Aspire 可以实现的示例,并解释了替代实现的方式和权衡,如果你决定在自己的实现中追求一个或多个替代方案。
这本书为 .NET Aspire 的学习者提供了一种实用的方法。它也涵盖了一些实时的行业示例。这本书分为8个章节。它们将涵盖 .NET Aspire 的基础知识,一直到实现一个真实世界的解决方案,以及部署和监控。我们还确保涵盖了 .NET Aspire 9.3 版本(AI)的一些最新功能发布。因此,学习者可以更有兴趣地学习 .NET Aspire 并保持最新。详情如下。
第1章:.NET Aspire 简介 - 本章介绍了分布式应用程序开发的挑战以及 .NET Aspire 从 Project Tye 的演变。然后通过介绍构建真实世界应用程序的架构来探讨 .NET Aspire 的功能。
第2章:.NET Aspire 集成 - 本章介绍了 .NET Aspire 如何通过演示将 .NET 服务连接到使用数据 API 构建器(DAB)的数据库的实际步骤,从而实现与数据库和外部服务的无缝集成。
第3章:.NET Aspire 与其他语言 - 本章通过演示如何将用不同编程语言(Go、Node.js、Python)编写的服务与 .NET 组件集成,将你的视野扩展到一个更广阔的集成世界,突出了跨语言边界的服务发现和可观察性。
第4章:.NET Aspire 监控 - 本章详细讨论了监控和可观察性,这对于所有生产就绪的分布式系统都至关重要。介绍了 OpenTelemetry,并演示了如何为日志、指标和跟踪检测 .NET Aspire 应用程序,确保可靠性和性能。
第5章:使用 azd 进行部署 - 本章着眼于通常会使用 Azure Developer CLI (azd) 完成的部署策略,将开发阶段与生产阶段连接起来。
第6章:与 Dapr 集成 - 本章介绍了 Dapr 集成,为你的 .NET Aspire 项目提供了高杠杆的分布式应用程序特性。解释了 Dapr 的构建块,并演示了如何利用服务调用和发布/订阅消息来增强可扩展性和弹性。
第7章:.NET Aspire 单元测试 - 本章通过测试策略和练习来确保分布式应用程序的可靠性和可维护性。本章指导读者设置测试项目,编写有效的测试,并利用 Aspire 的编排进行端到端测试。
第8章:.NET Aspire 与人工智能 - 本章探讨了如何使用 .NET Aspire 构建智能的、由人工智能驱动的应用程序。介绍了大型语言模型、编排器和代理,并演示了与 Semantic Kernel 和 Azure OpenAI 等框架的集成。
深入了解 .NET Aspire 集成,学习如何利用数据 API 构建器 (DAB) 自动生成 REST 和 GraphQL 端点,从而显著简化数据库交互。本章将通过创建一个仓库后端 API 的实战案例,引导您轻松集成 SQL Server 与 Docker,并掌握在 Visual Studio中测试和验证分布式应用的方法。
释放 .NET Aspire 的全部潜力,构建真正的多语言微服务架构。本指南详细演示了如何将用 Python (FastAPI)、Node.js (Express) 和 Go 编写的应用无缝集成到 .NET Aspire 项目中,并利用其强大的服务发现、统一编排和 OpenTelemetry 监控能力,简化跨语言开发流程。
掌握 .NET Aspire 的监控与可观测性。本指南将深入探索 .NET Aspire 仪表板,教您如何利用其内置的 OpenTelemetry 支持,实时分析结构化日志、追踪跨服务的分布式请求、监控性能指标,并实现服务健康检查,从而全面保障您的分布式应用的稳定与可靠。
掌握将 .NET Aspire 应用部署到 Azure 的终极指南。本章深入讲解了如何利用 Azure Developer CLI (azd) 与 Bicep(基础设施即代码),通过 azd up 等命令实现从资源置备到多语言微服务部署至 Azure 容器应用(Azure Container Apps)的一键式自动化流程。
探索 .NET Aspire 与 Dapr(分布式应用运行时)的强大组合,构建更具弹性与可移植性的微服务。本指南详细讲解了如何利用 .NET Aspire 为您的应用添加 Dapr sidecar,并借助其核心构建块(如发布/订阅、服务调用、状态管理)来解耦多语言服务,从而极大地简化分布式系统的开发。
掌握 .NET Aspire 应用的集成与端到端测试策略。本指南详细讲解了如何利用 Aspire.Hosting.Testing 框架,在测试代码中启动并编排整个分布式应用(AppHost),从而对跨服务、跨资源的复杂交互进行验证,确保您的微服务系统作为一个整体能正确、可靠地运行。