API de microservicios con tecnología de Dapr
Azure Container Apps proporciona API con tecnología de Distributed Application Runtime (Dapr) que le ayudan a escribir e implementar microservicios sencillos, portátiles, resistentes y protegidos. Dapr trabaja junto con Azure Container Apps como una capa de abstracción para proporcionar una plataforma escalable y de bajo mantenimiento. Azure Container Apps ofrece una selección de API, componentes y características de Dapr totalmente administrados, que se adaptan específicamente a escenarios de microservicios. Solo tiene que habilitar y configurar Dapr como de costumbre en el entorno de la aplicación contenedora.
Funcionamiento de las API de microservicios con la aplicación de contenedor
Configure Dapr para su entorno de aplicaciones contenedoras con una aplicación contenedora habilitada para Dapr, un componente de Dapr configurado para su solución y un sidecar de Dapr que invoque la comunicación entre ambos. En el diagrama siguiente se muestran estos conceptos básicos, mediante la API pub/sub como ejemplo.
Etiqueta | Configuración de Dapr | Descripción |
---|---|---|
1 | Container Apps con Dapr habilitado | Dapr está habilitado en el nivel de aplicación de contenedor mediante la configuración de un conjunto de argumentos de Dapr. Estos valores se aplican a todas las revisiones de una aplicación de contenedor determinada cuando se ejecutan en modo de varias revisiones. |
2 | Dapr | Las API de Dapr totalmente administradas se exponen a cada aplicación de contenedor mediante un sidecar de Dapr. Las API de Dapr se pueden invocar desde la aplicación de contenedor mediante HTTP o gRPC. El sidecar de Dapr se ejecuta en el puerto HTTP 3500 y el puerto gRPC 50001. |
3 | Configuración de componentes de Dapr | Dapr usa un diseño modular en el que la funcionalidad se entrega como componente. Los componentes de Dapr se pueden compartir entre varias aplicaciones de contenedor. Los identificadores de aplicación de Dapr proporcionados en la matriz de ámbitos dictan qué aplicaciones de contenedor habilitadas para Dapr cargan un componente determinado en tiempo de ejecución. |
API, componentes y herramientas de Dapr compatibles
API administradas
Azure Container Apps ofrece API de Dapr administradas disponibles con carácter general (bloques de creación). Estas API están totalmente administradas y se admiten para su uso en entornos de producción.
Para obtener más información sobre el uso de las API y característica de alfa Dapr, consulte las Preguntas frecuentes sobre Dapr.
API | Estado | Descripción |
---|---|---|
Invocación de servicio a servicio | GA | Descubra los servicios y realice llamadas de servicio a servicio confiables y directas con autenticación y cifrado automáticos de mTLS. Consulte las limitaciones conocidas de la invocación del servicio Dapr en Azure Container Apps. |
Administración de estados | GA | Proporciona funcionalidades de administración de estado para transacciones y operaciones CRUD. |
Pub/sub | GA | Permite que las aplicaciones de contenedor de publicadores y suscriptores se comuniquen entre ellos a través de un agente de mensajes intermediario. También puede crear suscripciones declarativas a un tema mediante un archivo JSON de componente externo. Obtenga más información sobre la API pub/sub declarativa. |
Enlaces | GA | Desencadene las aplicaciones en función de eventos |
Actores | GA | Los actores de Dapr son unidades de trabajo orientadas a mensajes, de un solo subproceso y diseñadas para escalar rápidamente. Por ejemplo, en situaciones de carga de trabajo en ráfaga intensivas. |
Observabilidad | GA | Envíe información de seguimiento a un back-end de Application Insights. |
Secretos | GA | Acceda a secretos desde el código de la aplicación o haga referencia a valores seguros en los componentes de Dapr. |
Configuración | GA | Recupere los elementos de configuración de la aplicación y suscríbase a ellos para los almacenes de configuración admitidos. |
SDK compatibles
Los paquetes de SDK de cliente más recientes de Dapr son compatibles con Azure Container Apps. Puede usar cualquiera de las API de Dapr de GA compatibles con las siguientes versiones del SDK de cliente de Dapr:
Lenguaje | Versión del SDK |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
Nota:
Actualmente, las extensiones de servidor de Dapr, el actor y los paquetes del SDK de flujo de trabajo no son compatibles con Azure Container Apps. Obtenga más información sobre todos los paquetes del SDK de Dapr.
Componentes de nivel 1 frente a componentes de nivel 2
Se admite un subconjunto de componentes de Dapr. Dentro de ese subconjunto, los componentes de Dapr se dividen en dos categorías de soporte técnico: nivel 1 o nivel 2.
- Componentes de nivel 1: componentes estables que reciben investigación inmediata en escenarios críticos (seguridad o regresión grave). De lo contrario, Microsoft colabora con código abierto para abordar el problema en una revisión o en la próxima versión normal.
- Componentes de nivel 2: componentes que se investigan con una prioridad menor, ya que no tienen un estado estable o están con un proveedor externo.
Componentes de nivel 1
API | Componente | Tipo |
---|---|---|
Administración de estados | Azure Cosmos DB Azure Blob Storage v1 Azure Table Storage Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publicación y suscripción | Azure Service Bus Queues Azure Service Bus Topics Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Enlace | Colas de Azure Storage Azure Service Bus Queues Azure Blob Storage Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Administración de secretos | Azure Key Vault | secretstores.azure.keyvault |
Componentes de nivel 2
API | Componente | Tipo |
---|---|---|
Administración de estados | PostgreSQL MySQL y MariaDB Redis |
state.postgresql state.mysql state.redis |
Publicación y suscripción | Apache Kafka Secuencias de Redis |
pubsub.kafka pubsub.redis |
Enlace | Azure Event Grid Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Configuración | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Herramientas
Azure Container Apps garantiza la compatibilidad con las herramientas de código abierto de Dapr, como los SDK y la CLI.
Limitaciones
- Especificación de configuración de Dapr: cualquier funcionalidad que requiera el uso de la especificación de configuración de Dapr.
- Anotaciones de sidecar de Dapr que no aparecen en la guía de habilitación de Dapr
- API y componentes admiten: solo se admiten las API y componentes de Dapr enumerados como disponibilidad general, nivel 1, o nivel 2 en este artículo se admiten en Azure Container Apps.
- Recordatorios de actor: requiere un minReplicas de 1+ para asegurarse de que los avisos siempre estarán activos y se activarán correctamente.
- Trabajos: Dapr no se admite para trabajos.