Como adicionar orquestração a um aplicativo .NET existente
O .NET Aspire pode ser dividido em soluções para três problemas que enfrentam aplicativos nativos da nuvem modernos. São as seguintes:
- Gerir a complexidade da orquestração entre microsserviços.
- Simplificando como seus microsserviços usam componentes por meio de pacotes NuGet.
- Suporte à velocidade do desenvolvedor por meio de ferramentas e modelos.
Nesta unidade, veja como o uso da orquestração do .NET Aspire traz benefícios para seus aplicativos nativos da nuvem existentes. Em seguida, veja como inscrever seu aplicativo na orquestração do .NET Aspire e examine as alterações feitas em sua solução.
Benefícios da orquestração do .NET Aspire
Orquestração é a coordenação e gerenciamento dos vários serviços dentro de um aplicativo nativo da nuvem. O .NET Aspire fornece abstrações para gerenciar a descoberta de serviços, variáveis de ambiente e configurações de contêiner da sua solução. Essas abstrações também fornecem padrões de configuração consistentes entre aplicativos com muitos componentes e serviços.
O .NET Aspire tem três tipos de computação base que suporta com orquestração:
- ProjectResource: Um projeto .NET, como aplicativos Web ASP.NET Core.
- ContainerResource: uma imagem de contêiner, como uma imagem do Docker contendo Redis.
- ExecutableResource: Um arquivo executável.
Compare o .NET Aspire com a forma como gere a deteção de serviços utilizando o Docker Compose. O Docker Compose é excelente, mas começa a se tornar improdutivo quando tudo o que você precisa fazer é executar vários projetos ou executáveis. Você precisa criar imagens de contêiner, compor o YAML para conectá-las e, em seguida, executar aplicativos dentro de contêineres. Além disso, há substituições de variáveis de ambiente (e inclui) e nenhum IntelliSense, e é difícil determinar o que exatamente está sendo executado e por quê. A depuração também pode ser difícil.
A configuração através de código declarativo é melhor. Usando o .NET Aspire, você não precisa aprender nada além do que já sabe. O .NET Aspire é uma experiência melhor que é fácil de começar e pode ser dimensionada para um orquestrador como o Docker Compose usando uma linguagem de programação real.
A orquestração do .NET Aspire também suporta o seu desenvolvimento das seguintes formas:
- Composição do aplicativo: o .NET Aspire especifica os projetos, contêineres, executáveis e recursos de nuvem do .NET que compõem o aplicativo.
- Descoberta de serviço e gerenciamento de cadeia de conexão: o host do aplicativo gerencia injetando as cadeias de conexão corretas e informações de descoberta de serviço para simplificar a experiência do desenvolvedor.
Inscrever um aplicativo existente na orquestração do .NET Aspire
O Visual Studio fornece menus para inscrever um projeto existente na orquestração do .NET Aspire .
Na primeira vez que você adiciona orquestração à sua solução, uma caixa de diálogo solicita o prefixo do nome do projeto e explica que os projetos .NET, Aspire AppHost e ServiceDefaults são adicionados. Quando você adiciona mais projetos a uma solução já orquestrada, a caixa de diálogo notifica que o projeto AppHost foi atualizado para incluir esses projetos.
Se você estiver criando um novo projeto, durante o novo fluxo de trabalho do projeto, o Visual Studio perguntará se você deseja se alistar na orquestração do .NET Aspire .
Alterações que a Aspire faz a uma solução existente
Quando você adiciona a orquestração do .NET Aspire à sua solução, as seguintes alterações acontecem:
- Um projeto AppHost é adicionado. O projeto contém o código de orquestração. Ele se torna o ponto de entrada para seu aplicativo e é responsável por iniciar e parar seu aplicativo. Ele também gerencia a descoberta de serviços e o gerenciamento da cadeia de conexão.
- Um projeto ServiceDefaults é adicionado. O projeto configura o OpenTelemetry, adiciona pontos de extremidade de verificação de integridade padrão e permite a descoberta de serviços por meio do
HttpClient
. - O projeto de inicialização padrão da solução é alterado para AppHost.
- As dependências dos projetos inscritos na orquestração são adicionadas ao projeto AppHost .
- O Painel do .NET Aspire é adicionado à sua solução, o que permite que os atalhos acessem todos os pontos de extremidade do projeto em sua solução.
- O painel adiciona logs, rastreamentos e métricas para os projetos em sua solução.
Se você adicionar orquestração a um projeto de aplicativo Web, o .NET Aspire adicionará automaticamente uma referência ao projeto ServiceDefaults . Em seguida, ele faz as seguintes alterações no código em Program.cs:
- Adiciona uma chamada que
AddServiceDefaults
habilita a descoberta padrão OpenTelemetry, medidores e serviço. - Adiciona uma chamada que
MapDefaultEndpoints
habilita os pontos de extremidade padrão, como/health
e/alive
.