Добавление оркестрации в существующее приложение .NET
.NET Aspire можно разбить на решения для трех проблем, которые сталкиваются с современными облачными приложениями. К ним относятся:
- Управление сложностью оркестрации между микрослужбами.
- Упрощение использования компонентов микрослужб с помощью пакетов NuGet.
- Поддержка скорости разработчика с помощью инструментов и шаблонов.
В этом уроке вы узнаете, как использование оркестрации .NET Aspire дает преимущества существующим облачным приложениям. Затем узнайте, как зарегистрировать приложение в оркестрации .NET Aspire и проверить изменения, внесенные в решение.
Преимущества оркестрации .NET Aspire
Оркестрация — это координация и управление различными службами в облачном приложении. .NET Aspire предоставляет абстракции для управления обнаружением служб решения, переменными среды и конфигурациями контейнеров. Эти абстракции также предоставляют согласованные шаблоны установки в приложениях с множеством компонентов и служб.
.NET Aspire имеет три базовых типа вычислений, которые поддерживаются с оркестрацией:
- ProjectResource: проект .NET, например веб-приложения ASP.NET Core.
- ContainerResource: образ контейнера, например образ Docker, содержащий Redis.
- Исполняемый файлResource: исполняемый файл.
Сравните .NET Aspire с тем, как управлять обнаружением служб с помощью Docker Compose. Docker Compose отлично, но начинает становиться непродуктивным, когда все, что вам нужно сделать, — выполнение нескольких проектов или исполняемых файлов. Необходимо создать образы контейнеров, создать YAML для их подключения, а затем запустить приложения внутри контейнеров. Кроме того, существуют замены переменных среды (и включается) и нет IntelliSense, и трудно определить, что именно выполняется и почему. Отладка также может быть сложной.
Конфигурация с помощью декларативного кода лучше. Используя .NET Aspire, вам не нужно учиться ничего, кроме того, что вы уже знаете. .NET Aspire — это лучший интерфейс, который легко приступить к работе и масштабируется до оркестратора, например Docker Compose с помощью реального языка программирования.
Оркестрация .NET Aspire также поддерживает разработку следующими способами:
- Композиция приложения: .NET Aspire указывает проекты .NET, контейнеры, исполняемые файлы и облачные ресурсы, составляющие приложение.
- Обнаружение служб и управление строка подключения. Узел приложения управляет внедрением правильных строка подключения и сведений об обнаружении служб, чтобы упростить работу разработчика.
Перечисление существующего приложения в оркестрации .NET Aspire
Visual Studio предоставляет меню для включения существующего проекта в оркестрацию .NET Aspire.
При первом добавлении оркестрации в решение диалоговое окно запрашивает префикс имени проекта и объясняет, что проекты .NET Aspire AppHost и ServiceDefaults добавляются. При добавлении дополнительных проектов в уже оркестрованное решение диалоговое окно уведомляет вас о том, что проект AppHost обновляется, чтобы включить эти проекты.
Если вы создаете новый проект, во время нового рабочего процесса проекта Visual Studio спрашивает, хотите ли вы включить в оркестрацию .NET Aspire.
Изменения, внесенные в существующее решение
При добавлении оркестрации .NET Aspire в решение происходят следующие изменения:
- Добавляется проект AppHost. Проект содержит код оркестрации. Он становится точкой входа для приложения и отвечает за запуск и остановку приложения. Он также управляет обнаружением служб и управлением строка подключения.
- Добавляется проект ServiceDefaults. Проект настраивает OpenTelemetry, добавляет проверка конечные точки работоспособности по умолчанию и включает обнаружение служб.
HttpClient
- Проект запуска решения по умолчанию изменяется на AppHost.
- Зависимости от проектов, зарегистрированных в оркестрации, добавляются в проект AppHost .
- Панель мониторинга .NET Aspire добавляется в решение, что позволяет сочетаниям клавиш обращаться ко всем конечным точкам проекта в решении.
- Панель мониторинга добавляет журналы, трассировки и метрики для проектов в решении.
При добавлении оркестрации в проект веб-приложения .NET Aspire автоматически добавляет ссылку на проект ServiceDefaults . Затем он вносит следующие изменения в код в Program.cs:
- Добавляет вызов, в
AddServiceDefaults
который включается обнаружение по умолчанию OpenTelemetry, счетчиков и служб. - Добавляет вызов, который
MapDefaultEndpoints
включает конечные точки по умолчанию, например/health
и/alive
.