Como adicionar orquestração a um aplicativo .NET existente
O .NET Aspire pode ser dividido em soluções para três problemas enfrentados pelos aplicativos modernos nativos da nuvem. Estes são:
- Gerenciando a complexidade da orquestração entre microsserviços.
- Simplificando como seus microsserviços usam componentes por meio de pacotes NuGet.
- Apoiar a velocidade do desenvolvedor por meio de ferramentas e modelos.
Nessa 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 de vários serviços em 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 em aplicativos com muitos componentes e serviços.
O .NET Aspire tem três tipos básicos de computação que suporta com orquestração:
- ProjectResource: Um projeto .NET, como aplicativos Web ASP.NET Core.
- ContainerResource: Uma imagem de contêiner, como uma imagem Docker contendo Redis.
- ExecutableResource: Um arquivo executável.
Compare o .NET Aspire com a maneira como você gerencia a descoberta de serviços usando o Docker Compose. 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 construir 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 inclusões) e nenhum IntelliSense, e é difícil determinar exatamente o que está sendo executado e por quê. A depuração também pode ser difícil.
A configuração por meio 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, fácil de começar e que pode ser ampliada para um orquestrador como o Docker Compose usando uma linguagem de programação real.
A orquestração do .NET Aspire também oferece suporte ao seu desenvolvimento das seguintes maneiras:
- Composição do aplicativo: o .NET Aspire especifica os projetos .NET, contêineres, executáveis e recursos de nuvem que compõem o aplicativo.
- Descoberta de serviço e gerenciamento de cadeia de conexão: O host do aplicativo gerencia a injeção das cadeias de conexão corretas e das 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ê adicionar orquestração à sua solução, uma caixa de diálogo solicitará o prefixo do nome do projeto e explicará que os projetos .NET Aspire AppHost e ServiceDefaults foram adicionados. Ao adicionar 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 inscrever na orquestração do .NET Aspire.
Alterações que o Aspire faz em uma solução existente
Quando você adiciona a orquestração do .NET Aspire à sua solução, ocorrem as seguintes alterações:
- Um projeto AppHost é adicionado. O projeto contém o código de orquestração. Ele se torna o ponto de entrada do seu aplicativo e é responsável por iniciar e interrompê-lo. Ele também gerencia a descoberta de serviços e o gerenciamento de cadeias de conexão.
- Um projeto ServiceDefaults é adicionado. O projeto configura o OpenTelemetry, adiciona endpoints de verificação de integridade padrão e permite a descoberta de serviços por meio de
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 .NET Aspire Dashboard é adicionado à sua solução, o que permite atalhos para acessar todos os pontos finais do projeto na sua solução.
- O painel adiciona logs, rastreamentos e métricas para os projetos na 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 a
AddServiceDefaults
que habilita o OpenTelemetry padrão, medidores e descoberta de serviço. - Adiciona uma chamada a
MapDefaultEndpoints
que habilita os ponto de extremidade padrão, como/health
e/alive
.