Share via


Dapr

O Distributed Application Runtime (Dapr) oferece APIs que ajudam a escrever e implementar microsserviços simples, portáteis, resilientes e seguros. As APIs do Dapr são executadas como um processo paralelo em conjunto com seus aplicativos e abstraem complexidades comuns que você pode encontrar ao criar aplicativos distribuídos, como:

  • Deteção de serviço
  • Integração com o agente de mensagens
  • Encriptação
  • Observabilidade
  • Gestão de segredos

Dapr é gradualmente adotável. Você pode usar qualquer um dos blocos de construção da API conforme necessário. Conheça o nível de suporte que a Microsoft oferece para cada API e componente do Dapr.

Capacidades e funcionalidades

Usar a extensão Dapr para provisionar Dapr em seu cluster Kubernetes habilitado para AKS ou Arc elimina a sobrecarga de:

  • Download de ferramentas Dapr
  • Instalando e gerenciando manualmente o tempo de execução do Dapr em seu cluster AKS

Você pode instalar, implantar e configurar a extensão Dapr em seu cluster usando a CLI do Azure ou um modelo Bicep.

Além disso, a extensão oferece suporte para todos os recursos de configuração nativos do Dapr por meio de argumentos de linha de comando simples.

O Dapr fornece o seguinte conjunto de recursos para ajudar no desenvolvimento de microsserviços no AKS:

  • Fácil provisionamento de Dapr no AKS através de extensões de cluster.
  • Portabilidade habilitada por meio de APIs HTTP e gRPC que abstraem as opções de tecnologias subjacentes
  • Chamadas de serviço a serviço confiáveis, seguras e resilientes por meio de APIs HTTP e gRPC
  • Publique e assine mensagens com suporte para filtragem CloudEvent e semântica "pelo menos uma vez" para entrega de mensagens
  • Observabilidade e monitoramento conectáveis por meio do coletor de API de Telemetria Aberta
  • Funciona independentemente da linguagem, ao mesmo tempo que oferece kits de desenvolvimento de software (SDKs) específicos da linguagem
  • Integração com Visual Studio Code através da extensão Dapr
  • Mais APIs para resolver desafios de aplicativos distribuídos

Atualmente suportado

A extensão Dapr é a única opção suportada pela Microsoft para Dapr no AKS.

Tratamento de problemas

A Microsoft categoriza os problemas levantados contra a extensão Dapr em duas partes:

  • Operações de extensão
  • Tempo de execução do Dapr (incluindo APIs e componentes)

A tabela a seguir detalha os níveis de prioridade de suporte para cada uma dessas categorias.

Description Riscos de segurança/regressões Questões funcionais
Operações de extensão Problemas encontrados durante as operações de extensão, como instalar/desinstalar ou atualizar a extensão Dapr. A Microsoft prioriza a resolução imediata. A Microsoft investiga e aborda conforme necessário.
Tempo de execução do Dapr Problemas encontrados ao usar o tempo de execução, APIs e componentes do Dapr por meio da extensão. A Microsoft trabalha com a comunidade de código aberto para investigar problemas de alta prioridade. Dependendo da prioridade, gravidade e tamanho do problema, a Microsoft os resolve diretamente na extensão ou trabalha com o projeto de código aberto Dapr para resolver em um hotfix ou futura versão de código aberto do Dapr. Uma vez que as correções são lançadas no código aberto do Dapr, elas são disponibilizadas na extensão Dapr. A Microsoft investiga novos problemas funcionais juntamente com o projeto de código aberto Dapr e colabora com eles para resolver em um hotfix ou futura versão de código aberto do Dapr. Problemas funcionais de código aberto conhecidos não serão investigados pela Microsoft no momento.

Versões Dapr

A Microsoft fornece suporte de melhor esforço para a versão mais recente do Dapr e duas versões anteriores (N-2). A versão mais recente do patch é a única versão suportada de cada versão secundária. Atualmente, a extensão Dapr para AKS ou Kubernetes habilitado para Arc suporta as seguintes versões do Dapr:

  • 1.13.x
  • 1.12.x
  • 1.11.x

O suporte à extensão Dapr varia dependendo de como você gerencia o tempo de execução.

Autogerido

O tempo de execução autogerenciado requer atualização manual para permanecer na janela de suporte. Para atualizar o Dapr por meio da extensão, siga as instruções da instância da extensão Update.

Depois que uma versão de tempo de execução do Dapr atinge o fim do suporte da Microsoft, seus aplicativos continuam a ser executados inalterados. No entanto, a Microsoft não pode mais fornecer patches de segurança ou suporte ao cliente relacionado para essa versão de tempo de execução. Se o seu aplicativo encontrar problemas após a data de fim do suporte para essa versão, recomendamos atualizar para uma versão suportada para receber os patches e recursos de segurança mais recentes.

Atualização automática

Habilitar a atualização automática requer uma consideração cuidadosa. Embora a atualização automática mantenha sua extensão Dapr atualizada para a versão secundária mais recente, você pode enfrentar alterações significativas entre as atualizações. A Microsoft não é responsável por qualquer tempo de inatividade causado devido a alterações de quebra entre atualizações automáticas.

Componentes e APIs

Você pode usar todos os componentes e APIs do Dapr por meio da extensão Dapr, incluindo aqueles em status alfa e beta. No entanto, a Microsoft fornece suporte apenas a um subconjunto de APIs e componentes, seguindo as políticas de tratamento de problemas definidas.

APIs Dapr estáveis

A extensão Dapr suporta versões estáveis de APIs Dapr (blocos de construção).

Dapr API Status Description
Invocação de serviço a serviço Estável 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. (#limitations)
Gestão de estados Estável Fornece recursos de gerenciamento de estado para transações e operações CRUD.
Pub/sub Estável Permite que aplicativos de editor e 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.
Ligações Estável Acione seus aplicativos com base em eventos.
Intervenientes Estável 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 Estável Envie informações de rastreamento para um back-end do Application Insights.
Segredos Estável Acesse segredos do código do aplicativo ou faça referência a valores seguros nos componentes do Dapr.
Configuração Estável Recupere e assine itens de configuração do aplicativo para configuração suportada. lojas.

Componentes de nível 1 versus componentes de nível 2

Um subconjunto de componentes do Dapr é suportado para a extensão Dapr para AKS e Kubernetes habilitados para Arc. 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 Blob Storage v1
Armazenamento de Tabelas do Azure
Microsoft SQL Server
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
Componentes de nível 2
API Componente Type
Gestão de estados Azure Cosmos DB
PostgreSQL
MySQL & MariaDB
Redis
state.azure.cosmosdb
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
bindings.postgresql
bindings.redis

Nuvens/regiões

A nuvem global do Azure é suportada com suporte AKS e Arc nas seguintes regiões:

País/Região Suporte AKS Suporte ao Arc for Kubernetes
australiaeast ✔️ ✔️
australiasoutheast ✔️
brazilsouth ✔️
canadacentral ✔️ ✔️
canadaeast ✔️ ✔️
centralindia ✔️ ✔️
centralus ✔️ ✔️
eastasia ✔️ ✔️
eastus ✔️ ✔️
eastus2 ✔️ ✔️
eastus2euap ✔️
francecentral ✔️ ✔️
francesouth ✔️
germanywestcentral ✔️ ✔️
japaneast ✔️ ✔️
japanwest ✔️
koreacentral ✔️ ✔️
koreasouth ✔️
northcentralus ✔️ ✔️
northeurope ✔️ ✔️
norwayeast ✔️
southafricanorth ✔️
southcentralus ✔️ ✔️
southeastasia ✔️ ✔️
southindia ✔️
swedencentral ✔️ ✔️
switzerlandnorth ✔️ ✔️
uaenorth ✔️
uksouth ✔️ ✔️
ukwest ✔️
westcentralus ✔️ ✔️
westeurope ✔️ ✔️
westus ✔️ ✔️
westus2 ✔️ ✔️
westus3 ✔️ ✔️

Perguntas mais frequentes

Como as malhas Dapr e Service se comparam?

R: Quando uma malha de serviço é definida como uma malha de serviço de rede, o Dapr não é uma malha de serviço. Enquanto o Dapr e as malhas de serviço oferecem alguns recursos sobrepostos, uma malha de serviços é focada em preocupações de rede, enquanto o Dapr está focado em fornecer blocos de construção que tornam mais fácil para os desenvolvedores criar aplicativos como microsserviços. O Dapr é centrado no desenvolvedor, enquanto as malhas de serviço são centradas na infraestrutura.

Alguns recursos comuns que o Dapr compartilha com malhas de serviço incluem:

  • Comunicação segura de serviço a serviço com criptografia mTLS
  • Coleta de métricas de serviço a serviço
  • Rastreamento distribuído de serviço a serviço
  • Resiliência através de novas tentativas

Além disso, o Dapr fornece outros blocos de construção de nível de aplicativo para gerenciamento de estado, mensagens pub/sub, atores e muito mais. No entanto, o Dapr não fornece recursos para o comportamento do tráfego, como roteamento ou divisão de tráfego. Se sua solução se beneficiaria da divisão de tráfego que uma malha de serviço fornece, considere usar o Open Service Mesh.

Para obter mais informações sobre o Dapr e as malhas de serviço, e como elas podem ser usadas juntas, visite a documentação do Dapr.

Como a API de segredos do Dapr se compara ao driver CSI da Loja de Segredos?

Tanto a API de segredos Dapr quanto o driver CSI gerenciado do Secrets Store permitem a integração de segredos mantidos em um armazenamento externo, abstraindo a tecnologia de armazenamento secreto do código do aplicativo. O driver CSI do Repositório de Segredos monta segredos mantidos no Cofre da Chave do Azure como um volume CSI para consumo por um aplicativo. O Dapr expõe segredos por meio de uma API RESTful que pode ser:

  • Chamado pelo código do aplicativo
  • Configurado com armazenamentos secretos variados

A tabela a seguir lista os recursos de cada oferta:

API de segredos do Dapr Driver CSI da Loja de Segredos
Lojas de segredos suportadas Variáveis de ambiente local (para Desenvolvimento); Arquivo local (para Desenvolvimento); Segredos do Kubernetes; Gerente de Segredos da AWS; Armazenamento secreto do Azure Key Vault; Azure Key Vault com identidades gerenciadas no Kubernetes; Gerente Secreto do GCP; Cofre HashiCorp Armazenamento secreto do Azure Key Vault
Acessando segredos no código do aplicativo Chamar a API de segredos do Dapr Acesse o volume montado ou sincronize o conteúdo montado como um segredo do Kubernetes e defina uma variável de ambiente
Rotação secreta Novas chamadas de API obtêm os segredos atualizados Sonda segredos e atualiza a montagem em um intervalo configurável
Registo e métricas O sidecar Dapr gera logs, que podem ser configurados com coletores como o Azure Monitor, emite métricas via Prometheus e expõe um ponto de extremidade HTTP para verificações de integridade Emite métricas do driver e do provedor do Azure Key Vault por meio do Prometheus

Para obter mais informações sobre o gerenciamento secreto no Dapr, consulte a visão geral do gerenciamento de segredos.

Para obter mais informações sobre o driver CSI do Secrets Store e o provedor do Azure Key Vault, consulte a visão geral do driver CSI do Secrets Store.

Como a extensão de cluster Dapr gerenciado se compara à oferta de Dapr de código aberto?

A extensão de cluster Dapr gerenciado é o método mais fácil para provisionar Dapr em um cluster AKS. Com a extensão, você pode descarregar o gerenciamento da versão de tempo de execução do Dapr optando por atualizações automáticas. Além disso, a extensão instala o Dapr com padrões inteligentes (por exemplo, provisionando o plano de controle do Dapr no modo de alta disponibilidade).

Ao instalar o código aberto do Dapr via helm ou a CLI do Dapr, os desenvolvedores e mantenedores de cluster também são responsáveis pelas versões de tempo de execução e opções de configuração.

Por fim, a extensão Dapr é uma extensão do AKS, portanto, você pode esperar a mesma política de suporte que outros recursos do AKS.

Saiba mais sobre como migrar do código aberto Dapr para a extensão Dapr para AKS.

Como posso autenticar componentes do Dapr com o Microsoft Entra ID usando identidades gerenciadas?

Como posso mudar para usar a extensão Dapr se já instalei o Dapr através de um método, como o Helm?

A orientação recomendada é desinstalar completamente o Dapr do cluster AKS e reinstalá-lo através da extensão do cluster.

Se você instalar o Dapr através da extensão AKS, nossa recomendação é continuar usando a extensão para gerenciamento futuro do Dapr em vez da CLI do Dapr. A combinação das duas ferramentas pode causar conflitos e resultar em comportamentos indesejados.

Passos Seguintes

Depois de aprender sobre o Dapr e alguns dos desafios que ele resolve, tente Implantando um aplicativo com a extensão de cluster Dapr.