APIs de microsserviço com tecnologia Dapr
Os Aplicativos de Contêiner do Azure fornecem APIs com tecnologia Dapr (Distributed Application Runtime) que ajudam você a escrever e implementar microsserviços simples, portáteis, resilientes e seguros. O Dapr trabalha em conjunto com os Aplicativos de Contêiner do Azure como uma camada de abstração para fornecer uma plataforma escalável e de baixa manutenção. Os Aplicativos de Contêiner do Azure oferecem uma seleção de APIs, componentes e recursos de Dapr totalmente gerenciados, voltados especificamente para cenários de microsserviços. Basta habilitar e configurar o Dapr como de costume em seu ambiente de aplicativo de contêiner.
Como as APIs de microsserviços funcionam com seu aplicativo de contêiner
Configure APIs de microsserviços para seu ambiente de aplicativos de contêiner com um aplicativo de contêiner habilitado para Dapr, um componente Dapr configurado para sua solução e um sidecar Dapr invocando comunicação entre eles. O diagrama a seguir demonstra esses conceitos principais, usando a API pub/sub como exemplo.
Etiqueta | Configurações do Dapr | Description |
---|---|---|
5 | Aplicativos de contêiner com Dapr habilitado | O Dapr é habilitado no nível do aplicativo de contêiner configurando um conjunto de argumentos do Dapr. Esses valores se aplicam a todas as revisões de um determinado aplicativo de contêiner quando executado no modo de várias revisões. |
2 | Dapr | As APIs do Dapr totalmente gerenciadas são expostas a cada aplicativo de contêiner por meio de um sidecar do Dapr. As APIs do Dapr podem ser invocadas a partir do seu aplicativo de contêiner via HTTP ou gRPC. O sidecar Dapr é executado na porta HTTP 3500 e na porta gRPC 50001. |
3 | Configuração do componente Dapr | O Dapr usa um design modular onde a funcionalidade é entregue como um componente. Os componentes do Dapr podem ser compartilhados entre vários aplicativos de contêiner. Os identificadores de aplicativo Dapr fornecidos na matriz scopes ditam quais aplicativos de contêiner habilitados para dapr carregam um determinado componente em tempo de execução. |
APIs, componentes e ferramentas Dapr suportados
APIs gerenciadas
Os Aplicativos de Contêiner do Azure oferecem APIs de Dapr gerenciadas geralmente disponíveis (blocos de construção). Essas APIs são totalmente gerenciadas e suportadas para uso em ambientes de produção.
Para saber mais sobre como usar APIs e recursos do Dapr alfa , consulte as Perguntas frequentes do Dapr.
API | Status | Description |
---|---|---|
Invocação de serviço a serviço | GA | Descubra serviços e realize chamadas diretas e confiáveis de serviço a serviço com autenticação e criptografia automáticas de mTLS. Consulte as limitações conhecidas para a invocação do serviço Dapr em Aplicativos de Contêiner do Azure. |
Gestão de estados | GA | Fornece recursos de gerenciamento de estado para transações e operações CRUD. |
Pub/sub | GA | Permite que os aplicativos de contêiner do editor e do assinante se intercomuniquem por meio de um agente de mensagens intermediário. Você também pode criar assinaturas declarativas para um tópico usando um arquivo JSON de componente externo. Saiba mais sobre a API declarativa pub/sub. |
Ligações | GA | Acione seus aplicativos com base em eventos |
Intervenientes | GA | Os atores do Dapr são unidades de trabalho orientadas por mensagens e de thread único, projetadas para escalar rapidamente. Por exemplo, em situações de carga de trabalho intensa. |
Observabilidade | GA | Envie informações de rastreamento para um back-end do Application Insights. |
Segredos | GA | Acesse segredos do código do aplicativo ou faça referência a valores seguros nos componentes do Dapr. |
Configuração | GA | Recupere e assine itens de configuração de aplicativos para armazenamentos de configuração suportados. |
SDKs compatíveis
Os pacotes SDK de cliente mais recentes do Dapr são compatíveis com os Aplicativos de Contêiner do Azure. Você pode usar qualquer uma das APIs suportadas do Dapr do GA com as seguintes versões do SDK do cliente Dapr:
Idioma | Versão do 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
Atualmente, as extensões de servidor, ator e pacotes SDK de fluxo de trabalho do Dapr não são compatíveis com os Aplicativos de Contêiner do Azure. Saiba mais sobre todos os pacotes do Dapr SDK.
Componentes de nível 1 versus componentes de nível 2
Um subconjunto de componentes Dapr é suportado. Dentro desse subconjunto, os componentes do Dapr são divididos em duas categorias de suporte: Nível 1 ou Nível 2.
- Componentes de nível 1: componentes estáveis que recebem investigação imediata em cenários críticos (segurança ou regressão grave). Caso contrário, a Microsoft colabora com o código aberto para resolver em um hotfix ou na próxima versão regular.
- Componentes de nível 2: componentes que são investigados em uma prioridade menor, pois não estão em estado estável ou estão com um provedor de terceiros.
Componentes de nível 1
API | Componente | Type |
---|---|---|
Gestão de estados | Azure Cosmos DB Azure Blob Storage v1 Armazenamento de Tabelas do Azure Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publicar e subscrever | Filas do Azure Service Bus Tópicos do Azure Service Bus Hubs de Eventos do Azure |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Enlace | Filas de Armazenamento do Azure Filas do Azure Service Bus Armazenamento de Blobs do Azure Hubs de Eventos do Azure |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Gestão de segredos | Azure Key Vault | secretstores.azure.keyvault |
Componentes de nível 2
API | Componente | Type |
---|---|---|
Gestão de estados | PostgreSQL MySQL & MariaDB Redis |
state.postgresql state.mysql state.redis |
Publicar e subscrever | Apache Kafka Fluxos Redis |
pubsub.kafka pubsub.redis |
Enlace | Grelha de Eventos do Azure Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Configuração | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Ferramentas
Os Aplicativos de Contêiner do Azure garantem a compatibilidade com as ferramentas de código aberto do Dapr, como SDKs e a CLI.
Limitações
- Especificação de configuração do Dapr: quaisquer recursos que exijam o uso da especificação de configuração do Dapr.
- Todas as anotações do sidecar Dapr não listadas no guia de ativação do Dapr
- Suporte a APIs e componentes: somente as APIs do Dapr e os componentes listados como GA, Camada 1 ou Camada 2 neste artigo têm suporte nos Aplicativos de Contêiner do Azure.
- Lembretes do ator: exija um minReplicas de 1+ para garantir que os lembretes estejam sempre ativos e sejam acionados corretamente.
- Empregos: O Dapr não é suportado para empregos.