Saiba mais sobre os componentes do .NET Aspire

Concluído

Embora seja provável que cada microsserviço em seu aplicativo seja exclusivo, eles frequentemente têm requisitos semelhantes para serviços de backup, como bancos de dados e caches. Pode ser um desafio escrever código em cada microsserviço que faz interface com esses serviços de suporte. No .NET Aspire, esse código é reduzido à medida que você adiciona um componente do .NET Aspir. Há componentes internos para muitos requisitos de suporte comuns que você provavelmente precisará em microsserviços.

Imagine que você trabalha para uma empresa de roupas e equipamentos para atividades ao ar livre. Suas equipes de desenvolvimento começaram a projetar seus microsserviços para o novo aplicativo Web eShop. Cada microsserviço pode precisar de serviços como bancos de dados, serviços de mensagens e caches. Você deseja avaliar como o .NET Aspire pode ajudar a interagir com esses serviços.

Nesta unidade, você aprenderá sobre os componentes incluídos no .NET Aspire prontos para uso e como escolher o melhor componente para seu microsserviço.

Usar componentes do .NET Aspire

Cada componente do .NET Aspire é um pacote NuGet, e você pode adicioná-lo ao seu projeto usando o gerenciador de pacotes NuGet. No Visual Studio, há um novo item de menu do componente Add > .NET Aspire . Esta ação exibe o gerenciador de pacotes com um filtro aplicado para exibir apenas componentes do .NET Aspire :

Captura de tela mostrando o gerenciador de pacotes NuGet no Visual Studio exibindo componentes do .NET Aspire .

Nota

Você verá como usar essas ferramentas de componente no exercício mais adiante neste módulo.

O Visual Studio Code com a extensão C# Dev Kit também oferece suporte à adição de componentes do .NET Aspire .

Captura de tela mostrando a paleta de comandos do Visual Studio Code listando tipos de projeto do .NET Aspire .

Como alternativa, a CLI do .NET pode adicionar componentes do .NET. Por exemplo:

dotnet add package Aspire.StackExchange.Redis --prerelease

No projeto AppHost, você deve registrar o componente e consumi-lo nos projetos que o chamam:

var cache = builder.AddRedis("cache");

builder.AddProject<Projects.AspireSample_Web>("webfrontend")
    .WithReference(cache);

Em seguida, você pode usar a injeção de dependência para adicioná-lo ao projeto de consumo:

build.AddRedisClient("cache");

Outro código de uso varia dependendo do componente que você está usando.

Nota

Cada tipo de componente .NET Aspire geralmente tem um pacote de hospedagem equivalente. Os pacotes de hospedagem configuram os recursos e dependências que o aplicativo requer e você os instala no projeto AppHost , não no projeto consumidor.

Componentes da base de dados

Em aplicativos nativos da nuvem, cada microsserviço é responsável por armazenar seus próprios dados e pode precisar de um banco de dados estruturados ou semiestruturados para ler e gravar. Como cada microsserviço é desenvolvido de forma independente, você pode descobrir que vários sistemas de banco de dados diferentes estão em uso por diferentes partes do seu aplicativo completo.

O .NET Aspire inclui componentes para os seguintes servidores de banco de dados relacional:

  • PostgreSQL: Um popular servidor de banco de dados de código aberto com uma implementação da Structured Query Language (SQL).
  • MySQL: Outro servidor de banco de dados SQL de código aberto.
  • Banco de dados SQL: sistema de banco de dados SQL da Microsoft.

Nota

O componente Banco de Dados SQL do .NET Aspire pode funcionar com o Microsoft SQL Server ou o Banco de Dados SQL do Azure, que é uma implementação do SQL Server na nuvem do Azure. Da mesma forma, o Azure inclui implementações de Plataforma como Serviço (PaaS) do PostgreSQL e do MySQL. O local onde você executa um banco de dados é uma decisão para cada equipe de arquitetura de microsserviços, mas os componentes do .NET Aspire podem oferecer suporte a muitos locais na nuvem e não impõem nenhum serviço de hospedagem específico.

Se pretender trabalhar com dados semi-estruturados, o .NET Aspire inclui suportes para estes sistemas NoSQL:

  • MongoDB: Um servidor de banco de dados NoSQL multiplataforma, orientado a documentos.
  • Azure Cosmos DB: sistema de banco de dados NoSQL flexível da Microsoft, hospedado no Azure.

Componentes de armazenamento

No .NET Aspire, os componentes de armazenamento são fornecidos para microsserviços que precisam armazenar arquivos, dados ou mensagens em contas de Armazenamento do Azure. Há um componente para cada um dos três serviços no Armazenamento do Azure. Escolha seu componente de acordo com o que você deseja fazer com o Armazenamento do Azure:

  • Armazenamento de Blobs do Azure: use este serviço para armazenar e recuperar arquivos de blob, como imagens e vídeos.
  • Armazenamento de Tabela do Azure: use este serviço para armazenar e recuperar linhas em tabelas de dados de semiestrutura.
  • Armazenamento de Filas do Azure: use este serviço para adicionar mensagens a filas para distribuição a outros microsserviços de assinatura.

Componentes de mensagens

Uma maneira de melhorar a confiabilidade e a flexibilidade das comunicações entre microsserviços em um aplicativo nativo da nuvem é usar soluções de mensagens que forneçam filas, tópicos e assinaturas em vez de comunicações diretas. O .NET Aspire inclui componentes para os três serviços de mensagens a seguir. Escolha o componente com base no agente de mensagens que seu desenvolvedor deseja usar:

  • RabbitMQ: Este agente de mensagens é amplamente utilizado, de código aberto e suporta vários protocolos de mensagens para fornecer, filas, tópicos e assinaturas.
  • Apache Kafka: Este serviço processa fluxos de eventos, que podem incluir mensagens, e inclui a API Kafka Connect para importar e exportar dados de e para outros sistemas.
  • Barramento de Serviço do Azure: este agente de mensagens está hospedado no Azure e fornece filas e distribuição de mensagens baseada em assinatura.

Componentes de cache

Quando um microsserviço recebe uma solicitação de um usuário ou outro microsserviço, talvez seja necessário construir uma resposta usando dados de vários locais ou operações complexas. Esta operação pode levar tempo. Ao armazenar em cache partes dessas respostas, você pode economizar tempo mais tarde quando solicitações semelhantes ou idênticas chegarem. Dessa forma, o cache otimiza o desempenho.

Um serviço de cache popular é o Redis. Ele tem agente de mensagens e funcionalidade de banco de dados na memória, mas é mais comumente usado para armazenar respostas em cache em aplicativos e serviços da Web. O .NET Aspire tem três componentes diferentes que funcionam com o Redis. Escolha um componente com base na tarefa de cache que você deseja realizar em seu microsserviço:

  • Componente Redis: use este componente quando quiser usar o Redis como um banco de dados na memória.
  • Componente Cache de Saída Redis: use este componente quando quiser armazenar em cache respostas HTTP completas, como páginas da Web inteiras.
  • Componente Cache Distribuído Redis: use este componente quando quiser criar um único cache para vários microsserviços em seu aplicativo.

Segurança

Em um aplicativo nativo da nuvem, a segurança de dados geralmente é um tópico crítico para os negócios. Como seus clientes podem estar confiando em você dados pessoais e confidenciais, você deve garantir que eles sejam criptografados e protegidos contra intercetação ou adulteração. As assinaturas digitais e a encriptação exigem que armazene chaves privadas e recupere-as para desencriptação. O Cofre de Chaves do Azure é um local onde você pode armazenar chaves e outros segredos com segurança, como senhas e certificados.

O .NET Aspire inclui o componente Azure Key Vault para que possa armazenar e recuperar segredos facilmente no Azure Key Vault.

Mais informações