Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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 приложений".