Поделиться через


Aspire обзор

Aspire предоставляет средства, шаблоны и пакеты для создания наблюдаемых, готовых к работе распределенных приложений. В центре — модель приложенияпервый код, единственный источник истины, определяющий службы, ресурсы и подключения приложения.

Aspire предоставляет единую цепочку инструментов: запуск и отладка всего приложения локально с помощью одной команды, а затем развертывание в любом месте— Kubernetesоблако или собственные серверы с использованием той же композиции.

Расширяемость — это основной фокус. AspireAPI-интерфейсы предназначены для адаптации платформы к инфраструктуре, службам и рабочим процессам.

Ключевые возможности

  • Оркестрация AppHost: Определение служб, зависимостей и конфигурации в коде.
  • Широкие возможности интеграции: Пакеты NuGet для популярных служб со стандартными интерфейсами.
  • Согласованные инструменты: Шаблоны и интерфейсы проектов для Visual Studio, VS Code и CLI.

Сведения о официальной поддержке см. в политикеAspire поддержки.

The AppHost

Aspire"AppHost — это место, в котором вы определяете службы и зависимости приложения в коде — сложные файлы конфигурации не требуются. AppHost предоставляет оркестрацию для локальной среды разработки, упрощая управление обнаружением служб, переменными среды и конфигурациями контейнеров.

Рисунок обычной трехуровневой архитектуры: интерфейс, который зависит от API, который подключается к базе данных. В Aspireэтом примере топология представлена в AppHost, как показано в следующем коде:

var builder = DistributedApplication.CreateBuilder(args);

// Add database service
var postgres = builder.AddPostgres("db")
    .AddDatabase("appdata")
    .WithDataVolume();

// Add API service and reference dependencies
var api = builder.AddProject<Projects.ApiService>("api")
    .WithReference(postgres)
    .WaitFor(postgres);

// Add frontend service and reference the API
var frontend = builder.AddProject<Projects.Frontend>("frontend")
    .WithReference(api);

builder.Build().Run();

AppHost помогает в следующих проблемах:

  • Состав приложения: укажите проекты, контейнеры, исполняемые файлы и облачные ресурсы, составляющие приложение.
  • Обнаружение служб и управление строками подключения. Автоматически внедряйте правильные строки подключения и конфигурации сети.

Важно отметить, что Aspireоркестрация фокусируется на повышении локального опыта разработки . Он не предназначен для замены рабочих систем, таких как Kubernetes, а предоставляет абстракции, которые устраняют низкоуровневые сведения о реализации во время разработки.

Дополнительные сведения см. в обзореAspire оркестрации.

интеграции Aspire

Aspire упрощает определение всего, что нужно вашему приложению, с помощью интеграций — пакетов NuGet, предназначенных для упрощения подключений к популярным службам и платформам. Каждая интеграция обрабатывает настройку облачных ресурсов и предоставляет стандартные шаблоны для проверок работоспособности, телеметрии и конфигурации.

Ресурсы, которые можно интегрировать, включают:

  • Службы ИИ: крупные языковые модели, конечные точки ИИ и когнитивные службы.
  • Кэши: Redisкэши в памяти и распределенные решения кэширования.
  • Контейнеры: Docker контейнеры для баз данных, брокеров сообщений и других служб.
  • Базы данных: SQL Server, , PostgreSQLMySQLи MongoDBдругие хранилища данных.
  • Исполняемые файлы: консольные приложения, скрипты и фоновые службы.
  • Платформы: веб-приложения, API и микрослужбы, созданные с помощью различных платформ.
  • Службы обмена сообщениями: Azure Service Bus, RabbitMQKafka и другие системы обмена сообщениями.
  • Проекты: .NET проекты, приложения, Node.jsPython службы и многое другое.
  • Хранилище: хранилище BLOB-объектов, файловые системы и облачные службы хранилища.

Интеграции являются двухсторонними: интеграции "хостинг" представляют собой службы, к которым вы подключаетесь, а "клиентские" интеграции представляют потребителя этой службы.

Tip

Интеграция хостинга может представлять контейнер, исполняемый файл или даже просто код на C#, который настраивает ресурсы без запуска отдельного процесса. В AppHost можно добавить любой образ контейнера, базу кода, скрипт или облачный ресурс. Создание повторно используемых Aspire интеграций аналогично созданию повторно используемых компонентов для приложений.

Мониторинг и устранение неполадок с помощью Aspire панели управления

Aspire включает мощную панель управления для разработчиков, которая позволяет видеть распределенное приложение в режиме реального времени. Панель мониторинга позволяет проверять ресурсы, просматривать журналы, трассировки и метрики и управлять службами приложения— все из одного пользовательского интерфейса.

При запуске Aspire приложения панель мониторинга запускается автоматически. Вы можете:

  • Просмотрите все ресурсы приложения и их состояние.
  • Изучение журналов, трассировок и метрик для любого сервиса.
  • Запуск, остановка или перезапуск ресурсов непосредственно с панели мониторинга.
  • Визуализируйте зависимости и быстрее устраняйте неполадки.

Панель мониторинга доступна как в составе решения, так и в качестве Aspire средства для любого приложения, которое выдает OpenTelemetry данные.

Дополнительные сведения см. в обзоре панели мониторинга или более подробной информации о функциях и использовании панелей мониторинга.

От разработки до развертывания

При создании распределенного приложения в AspireAppHost вы не просто определяете службы для локальной разработки— вы настраиваете основу для развертывания. Та же композиция, используемая для локального запуска и отладки, становится схемой развертывания в рабочей среде, обеспечивая согласованность от разработки до рабочей среды.

Aspire предоставляет шаблоны проектов и интерфейсы инструментов для любимых сред разработки. Эти шаблоны включают предопределённые стандартные значения с шаблонным кодом для проверок работоспособности, ведения журнала и телеметрии. Шаблоны также включают службы по умолчанию, обрабатывающие общие конфигурации:

builder.AddServiceDefaults();

При добавлении в код C# этот метод настраивает:

  • OpenTelemetry: Форматированное ведение журнала, метрики выполнения и трассировка для ASPCore, gRPC и HTTP.
  • Проверки работоспособности: конечные точки по умолчанию, которые средства могут запрашивать для мониторинга приложения.
  • Обнаружение служб: включает обнаружение служб и настраивает HttpClient их соответствующим образом.

Дополнительные сведения см. в параметрах службы по умолчаниюAspire.

Рассмотрим, как можно развернуть трехуровневый пример архитектуры в разных средах:

Resource Локальная разработка Azure AWS
Frontend npm run Azure Container Apps Amazon Elastic Container Service
Служба API dotnet run Azure Container Apps AWS Лямбда
Database docker.io/library/postgres Azure База данных для PostgreSQL Служба реляционной базы данных Amazon

Tip

Это лишь несколько примеров того, как можно развертывать Aspire приложения.

AspireВозможности развертывания являются гибкими и не влияют на существующие рабочие процессы. Вы можете продолжать использовать предпочитаемые инструменты и службы, используя согласованную топологию приложений, определенную в AppHost.

Дополнительные сведения см. в разделе "Развертывание Aspire приложений".

Дальнейшие шаги