Más información sobre los componentes de .NET Aspire

Completado

Aunque es probable que cada microservicio de la aplicación sea único, con frecuencia tienen requisitos similares para los servicios de respaldo, como las bases de datos y las memorias caché. Puede resultar difícil escribir código en cada microservicio que interactúa con estos servicios de respaldo. En .NET Aspire, ese código se reduce a medida que se agrega un componente de .NET Aspire. Hay componentes integrados para muchos requisitos de respaldo habituales que es probable que necesite en microservicios.

Imagine que trabaja para una empresa de ropa y equipos al aire libre. Los equipos de desarrollo han empezado a diseñar sus microservicios para la nueva aplicación web de eShop. Cada microservicio puede necesitar servicios como bases de datos, servicios de mensajería y memorias caché. Quiere evaluar cómo .NET Aspire puede ayudar a interactuar con estos servicios.

En esta unidad, obtendrá información sobre los componentes que se incluyen en .NET Aspire de serie y cómo elegir el mejor componente para el microservicio.

Uso de componentes de .NET Aspire

Cada componente de .NET Aspire es un paquete NuGet y puede agregarlo al proyecto mediante el administrador de paquetes NuGet. En Visual Studio, hay un nuevo elemento de menú Agregar> componente Aspire de .NET . Esta acción muestra el administrador de paquetes con un filtro aplicado para mostrar solo los componentes de .NET Aspire:

Captura de pantalla que muestra el administrador de paquetes NuGet en Visual Studio con componentes de .NET Aspire.

Nota:

Verá cómo usar estas herramientas de componentes en el ejercicio más adelante en este módulo.

Visual Studio Code con la extensión C# Dev Kit también admite la adición de componentes de .NET Aspire.

Captura de pantalla que muestra la paleta de comandos de Visual Studio Code en la que se enumeran los tipos de proyecto de .NET Aspire.

Como alternativa, la CLI de .NET puede agregar componentes de .NET. Por ejemplo:

dotnet add package Aspire.StackExchange.Redis --prerelease

En el proyecto de AppHost, debe registrar el componente y consumirlo en los proyectos que lo llaman:

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

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

A continuación, puede usar la inserción de dependencias para agregarla al proyecto de consumo:

build.AddRedisClient("cache");

Otro código de uso varía en función del componente que use.

Nota:

Cada tipo de componente de .NET Aspire normalmente tiene un paquete de hospedaje equivalente. Los paquetes de hospedaje configuran los recursos y dependencias que requiere la aplicación y los instala en el proyecto de AppHost, no en el proyecto de consumo.

Componentes de base de datos

En las aplicaciones nativas de la nube, cada microservicio es responsable de almacenar sus propios datos y puede necesitar una base de datos estructurados o semiestructurados en los que leer y escribir. Dado que cada microservicio se desarrolla de forma independiente, es posible que encuentre que varios sistemas de base de datos diferentes están en uso por diferentes partes de la aplicación completa.

.NET Aspire incluye componentes para los siguientes servidores de bases de datos relacionales:

  • PostgreSQL: Un popular servidor de bases de datos de código abierto con una implementación del lenguaje de consulta estructurado (SQL).
  • MySQL: Otro servidor de base de datos SQL de código abierto.
  • SQL Database: Sistema de base de datos SQL de Microsoft.

Nota:

El componente .NET Aspire SQL Database puede funcionar con Microsoft SQL Server o Azure SQL Database, que es una implementación de SQL Server en la nube de Azure. Del mismo modo, Azure incluye implementaciones de plataforma como servicio (PaaS) de PostgreSQL y MySQL. La ubicación en la que se ejecuta una base de datos es una decisión para cada equipo de arquitectura de microservicios, pero los componentes de .NET Aspire pueden admitir muchas ubicaciones en la nube y no aplicar ningún servicio de hospedaje determinado.

Si desea trabajar con datos semiestructurados, .NET Aspire incluye compatibilidad con estos sistemas NoSQL:

  • MongoDB: Un servidor de bases de datos NoSQL multiplataforma orientado a documentos.
  • Azure Cosmos DB: Sistema de base de datos NoSQL flexible de Microsoft hospedado en Azure.

Componentes de almacenamiento

En .NET Aspire, los componentes de almacenamiento se proporcionan para los microservicios que necesitan almacenar archivos, datos o mensajes en cuentas de Azure Storage. Hay un componente para cada uno de los tres servicios de Azure Storage. Elija el componente según lo que quiere hacer con Azure Storage:

  • Azure Blob Storage: Use este servicio para almacenar y recuperar archivos de blob, como imágenes y vídeos.
  • Azure Table Storage: Use este servicio para almacenar y recuperar filas en tablas de datos semiestructurados.
  • Azure Queue Storage: Use este servicio para agregar mensajes a colas para su distribución a otros microservicios de suscripción.

Componentes de mensajería

Una manera de mejorar la confiabilidad y flexibilidad de las comunicaciones entre microservicios en una aplicación nativa de nube es usar soluciones de mensajería que proporcionan colas, temas y suscripciones en lugar de comunicaciones directas. .NET Aspire incluye componentes para los tres servicios de mensajería siguientes. Elija el componente en función del agente de mensajería que el desarrollador quiera usar:

  • RabbitMQ: Este agente de mensajes se usa ampliamente, de código abierto y admite varios protocolos de mensajería para proporcionar, colas, temas y suscripciones.
  • Apache Kafka: Este servicio procesa flujos de eventos, que pueden incluir mensajes, e incluye la API de Kafka Connect para importar y exportar datos a y desde otros sistemas.
  • Azure Service Bus: Este agente de mensajes se hospeda en Azure y proporciona colas y distribución de mensajes basada en suscripciones.

Componentes de almacenamiento en caché

Cuando un microservicio recibe una solicitud de un usuario u otro microservicio, es posible que tenga que construir una respuesta mediante datos de varias ubicaciones o operaciones complejas. Esta operación puede tardar tiempo. Al almacenar en caché partes de estas respuestas, puede ahorrar tiempo más tarde cuando llegan solicitudes similares o idénticas. De este modo, el almacenamiento en caché optimiza el rendimiento.

Un servicio de caché popular es Redis. Tiene funcionalidad de agente de mensajes y base de datos en memoria, pero se usa normalmente para almacenar en caché las respuestas en aplicaciones web y servicios. .NET Aspire tiene tres componentes diferentes que funcionan con Redis. Elija un componente basado en la tarea de almacenamiento en caché que desea lograr en el microservicio:

  • Componente de Redis: Use este componente cuando quiera usar Redis como base de datos en memoria.
  • Componente de almacenamiento en caché de salida de Redis: Use este componente cuando desee almacenar en caché respuestas HTTP completas, como páginas web completas.
  • Componente caché distribuida de Redis: Use este componente cuando quiera crear una sola caché para varios microservicios en la aplicación.

Seguridad

En una aplicación nativa de la nube, la seguridad de datos suele ser un tema crítico para la empresa. Dado que los clientes pueden confiar en usted con datos personales y confidenciales, debe asegurarse de que está cifrado y protegido contra la interceptación o manipulación. Las firmas digitales y el cifrado requieren que almacene claves privadas y las recupere para el descifrado. Azure Key Vault es una ubicación donde puede almacenar claves de forma segura y otros secretos, como contraseñas y certificados.

.NET Aspire incluye el componente Azure Key Vault para que pueda almacenar y recuperar fácilmente secretos en Azure Key Vault.

Saber más