APIs de microsserviço da plataforma Dapr
Os Aplicativos de Contêiner do Azure fornecem APIs com tecnologia Distributed Application Runtime (Dapr) 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 escalonável e de baixa manutenção. Os Aplicativos de Contêiner do Azure oferecem uma seleção de APIs, componentes e recursos totalmente gerenciados de Dapr, 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 as APIs de microsserviços para o seu ambiente de aplicativos em contêineres com um aplicativo de contêiner habilitado para Dapr, um componente Dapr configurado para a sua solução e um sidecar Dapr que invoca a comunicação entre eles. O diagrama a seguir demonstra esses conceitos básicos, usando a API pub/sub como exemplo.
Rótulo | Configurações do Dapr | Descrição |
---|---|---|
1 | Aplicativos de Contêiner com o Dapr habilitado | O Dapr está habilitado no nível do aplicativo de contêiner definindo um conjunto de argumentos do Dapr. Esses valores se aplicam a todas as revisões de um determinado aplicativo de contêiner durante a execução 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 do seu aplicativo de contêiner por meio de HTTP ou gRPC. O sidecar do Dapr é executado na porta HTTP 3500 e na porta gRPC 50001. |
3 | Configuração dos componentes do Dapr | O Dapr usa um design modular em que a funcionalidade é entregue como um componente. Os componentes do Dapr podem ser compartilhados por vários aplicativos de contêiner. Os identificadores de aplicativo Dapr fornecidos na matriz de escopos determinam quais aplicativos de contêiner habilitados para Dapr carregam um determinado componente em runtime. |
APIs, componentes e ferramentas Dapr compatíveis
APIs gerenciadas
Os Aplicativos de Contêiner do Azure oferecem APIs Dapr (blocos de construção) geralmente disponíveis e gerenciadas. Essas APIs são totalmente gerenciadas e suportadas para uso em ambientes de produção.
Para saber mais sobre o uso de APIs e recursos alfa do Dapr, veja as Perguntas frequentes do Dapr.
API | Status | Descrição |
---|---|---|
Invocação de serviço a serviço | GA | Descubra serviços e execute chamadas de serviço a serviço confiáveis e diretas com autenticação e criptografia mTLS automáticas. Veja as limitações conhecidas para a invocação do serviço Dapr nos Aplicativos de Contêiner do Azure. |
Gerenciamento de estado | GA | Fornece recursos de gerenciamento de estado para transações e operações CRUD. |
Pub/sub | GA | Permite que aplicativos de contêineres de editores e assinantes intercomunem por meio de um agente de mensagens intermediário. Também é possível criar assinaturas declarativas para um tópico usando um arquivo JSON de componente externo. Saiba mais sobre a API de pub/sub declarativa. |
Associações | GA | Disparar seus aplicativos com base em eventos |
Atores | GA | Os atores Dapr são unidades de trabalho controladas por mensagens, de thread único, projetadas para dimensionar 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 referencie valores seguros em seus componentes do Dapr. |
Configuration | GA | Recupere e assine itens de configuração de aplicativos para armazenamentos de configuração com suporte. |
SDKs Compatíveis
Os pacotes de SDK de cliente mais recentes da Dapr são compatíveis com os Aplicativos de Contêiner do Azure. Você pode usar qualquer uma das APIs GA Dapr suportadas 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 |
Observação
Atualmente, os pacotes de extensões de servidor, ator e 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 Camada 1 versus Camada 2
Há suporte para um subconjunto de componentes Dapr. Dentro desse subconjunto, os componentes do Dapr são divididos em duas categorias de suporte: Camada 1 ou Camada 2.
- Componentes de camada 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 software livre para resolver em um hotfix ou na próxima versão regular.
- Componentes de camada 2: componentes que são investigados com prioridade menor, pois não estão em estado estável ou estão com um provedor de terceiros.
Componentes da camada 1
API | Componente | Tipo |
---|---|---|
Gerenciamento de estado | Azure Cosmos DB Armazenamento de Blobs do Azure v1 Armazenamento de Tabelas do Azure Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publicar e assinar | Filas do Barramento de Serviço do Azure Tópicos do Barramento de Serviço do Azure Hubs de eventos do Azure |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Associação | Filas de Armazenamento do Azure Filas do Barramento de Serviço do Azure Armazenamento do Blobs do Azure Hubs de eventos do Azure |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Gerenciamento de segredos | Cofre de Chave do Azure | secretstores.azure.keyvault |
Componentes da camada 2
API | Componente | Tipo |
---|---|---|
Gerenciamento de estado | PostgreSQL MySQL e MariaDB Redis |
state.postgresql state.mysql state.redis |
Publicar e assinar | Apache Kafka Redis Streams |
pubsub.kafka pubsub.redis |
Associação | Grade 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 compatibilidade com ferramentas de código aberto Dapr, como SDKs e CLI.
Limitações
- Especificação de configuração do Dapr: todos os recursos que exigem o uso da especificação de configuração do Dapr.
- Quaisquer anotações de sidecar do Dapr não listadas no guia de habilitação do Dapr
- Suporte a APIs e componentes: somente as APIs e os componentes do Dapr listados como GA, Camada 1 ou Camada 2 nesse artigo têm suporte nos Aplicativos de Contêiner do Azure.
- Lembretes de ator: exija um minReplicas de 1+ para garantir que os lembretes sempre estarão ativos e sejam disparados corretamente.
- Trabalhos: não há suporte para trabalhos no Dapr.