Compartilhar via


Dapr

O Distributed Application Runtime (Dapr) oferece APIs que ajudam você a escrever e implementar microsserviços simples, portáteis, resilientes e protegidos. As APIs do Dapr são executadas como um tipo de "sidecar", em paralelo com seus aplicativos e se abstraem das complexidades comuns que podem ser encontradas durante a compilação de aplicativos distribuídos, como, por exemplo:

  • Descoberta de serviço
  • Integração do agente de mensagens
  • Criptografia
  • Observabilidade
  • Gerenciamento de segredos

O Dapr é adotável incrementalmente. Você pode usar qualquer um dos blocos de compilação de APIs, conforme necessário. Saiba o nível de suporte que a Microsoft oferece para cada API e componente do Dapr.

Funcionalidades e recursos

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

  • Baixar ferramentas do Dapr
  • Instalar e gerenciar manualmente o runtime do Dapr em seu cluster do 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 do Dapr nativos por meio de argumentos de linha de comando simples.

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

  • Fácil provisionamento de Dapr no AKS por meio 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 para serviço confiáveis, seguras e resilientes por meio de APIs HTTP e gRPC
  • Simplificação de publicação e assinatura de mensagens com suporte para filtragem de CloudEvent e semântica "pelo menos uma vez" para entrega de mensagens
  • Observação e monitoramento conectável por meio do coletor de API de Telemetria Aberta
  • Funciona independentemente da linguagem, ao mesmo tempo em que oferece os SDKs (kits de desenvolvimento de software) específicos da linguagem
  • Integração com o Visual Studio Code por meio da extensão do Dapr
  • Mais APIs para solucionar desafios de aplicativos distribuídos

Com suporte no momento

A extensão do Dapr é a única opção com suporte da Microsoft para Dapr no AKS.

Solução de problemas

A Microsoft categoriza os problemas gerados na extensão do Dapr em duas partes:

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

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

Descrição Riscos/regressões de segurança Problemas funcionais
Operações de extensão Problemas encontrados durante operações de extensão, como instalar/desinstalar ou atualizar a extensão do Dapr. A Microsoft prioriza a resolução imediata. A Microsoft investiga e aborda conforme necessário.
Runtime do Dapr Problemas encontrados ao usar o runtime do Dapr, APIs e componentes por meio da extensão. A Microsoft trabalha com a comunidade de software livre 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 software livre do Dapr, para resolver em um hotfix ou futura versão de software livre do Dapr. Depois que as correções são lançadas no software livre do Dapr, elas são disponibilizadas na extensão do Dapr. A Microsoft investiga novos problemas funcionais junto com o projeto de software livre do Dapr e colabora com eles para resolver em um hotfix ou futura versão de software livre do Dapr. Problemas funcionais conhecidos de software livre não serão investigados pela Microsoft no momento.

Versões do Dapr

A Microsoft oferece 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 com suporte de cada versão secundária. Atualmente, a extensão do Dapr para AKS ou Kubernetes habilitado para Arc dá suporte às seguintes versões do Dapr:

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

Você pode executar comandos da CLI do Azure para recuperar uma lista de versões disponíveis em um cluster ou um local.

Para exibir uma lista das versões de Dapr estáveis disponíveis para o cluster do AKS gerenciado, execute o seguinte comando:

az k8s-extension extension-types list-versions-by-cluster --resource-group myResourceGroup --cluster-name myCluster --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable

Para ver a versão do Dapr estável mais recente disponível para o cluster do AKS gerenciado, execute o seguinte:

az k8s-extension extension-types list-versions-by-cluster --resource-group myResourceGroup --cluster-name myCluster --cluster-type managedClusters --extension-type microsoft.dapr  --release-train stable --show-latest

Para exibir uma lista das versões de Dapr estáveis disponíveis por local:

  1. Verifique se você registrou o recurso ExtenstionTypes em sua assinatura do Azure.
  2. Execute o comando a seguir.
az k8s-extension extension-types list-versions-by-location --location westus --extension-type microsoft.dapr

Suporte de runtime

O suporte à extensão Dapr varia dependendo de como você gerencia o runtime.

Autogerenciado

O runtime autogerenciado requer atualização manual para permanecer na janela de suporte. Para atualizar o Dapr por meio da extensão, siga as Instruções em Atualizar instância da extensão.

Após uma versão de runtime do Dapr atingir o fim do suporte da Microsoft, seus aplicativos continuarão sendo 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 runtime. Se o aplicativo encontrar problemas após a data de fim do suporte dessa versão, é recomendável atualizar para uma versão com suporte para receber as últimas atualizações e recursos de segurança.

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 do Dapr atualizada para a versão secundária mais recente, você poderá experimentar alterações significativas entre as atualizações. A Microsoft não é responsável por nenhum tempo de inatividade causado devido a alterações interruptivas entre atualizações automáticas.

Componentes e APIs

Use todos os componentes e APIs do Dapr por meio da extensão do Dapr, inclusive aqueles no 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 de Dapr estáveis

A extensão do Dapr dá suporte a versões estáveis de APIs de Dapr (blocos de construção).

API do Dapr Status Descrição
Invocação de serviço a serviço Estável Descubra serviços e execute chamadas de serviço a serviço confiáveis e diretas com autenticação e criptografia mTLS automáticas.(#limitações)
Gerenciamento de estado Estável Fornece recursos de gerenciamento de estado para transações e operações CRUD.
Pub/sub Estável Permite que aplicativos de editores e assinantes interajam 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.
Associações Estável Disparar seus aplicativos com base em eventos
Atores Estável 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 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 referencie valores seguros em seus componentes do Dapr.
Configuration Estável Recupere e assine itens de configuração de aplicativos para configuração com suporte. repositórios de dados.

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 Armazenamento de Blobs do Azure v1
Armazenamento de Tabelas do Azure
Microsoft SQL Server
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 secrets.azure.keyvault
Componentes da camada 2
API Componente Tipo
Gerenciamento de estado Azure Cosmos DB
PostgreSQL
MySQL e MariaDB
Redis
state.azure.cosmosdb
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

Nuvens/regiões

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

Region Suporte ao AKS Suporte do Arc para 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 frequentes

Como as malhas de serviço e Dapr são comparadas?

R: onde uma malha de serviço é definida como uma malha de serviço de rede, o Dapr não é uma malha de serviço. Embora as malhas de serviço e Dapr ofereçam alguns recursos sobrepostos, uma malha de serviço concentra-se em questões de rede, enquanto o Dapr se concentra em fornecer blocos de construção que ajudam os desenvolvedores na criação de aplicativos como microsserviços. O Dapr é centrado no desenvolvedor, enquanto as malhas de serviço são centradas em infraestrutura.

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

  • Proteger a comunicação de serviço a serviço com a criptografia de mTLS
  • Coleção de métrica de serviço a serviço
  • Rastreamento distribuído serviço a serviço
  • Resiliência por meio 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 de tráfego, como roteamento ou divisão de tráfego. Se sua solução se beneficiar da divisão de tráfego fornecida por uma malha de serviço, considere usar a Malha de Serviço Aberta.

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

Como a API de segredos do Dapr se compara com o driver do CSI do repositório de segredos?

Tanto a API de segredos do Dapr quanto o driver CSI do Repositório de Segredos gerenciado permitem a integração de segredos mantidos em um repositório externo, abstraindo a tecnologia do repositório de segredos no código do aplicativo. O driver CSI do repositório de segredos monta os segredos guardados no Azure Key Vault 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 repositórios de segredos variados

A tabela a seguir lista os recursos de cada oferta:

API de segredos do Dapr Driver CSI do repositório de segredos
Repositórios de segredos compatíveis Variáveis de ambiente local (para Desenvolvimento); Arquivo local (para Desenvolvimento); Segredos do kubernetes; Gerenciador de Segredos da AWS; Repositório de segredos do Azure Key Vault; Azure Key Vault com identidades gerenciadas no Kubernetes; Gerenciador de segredos do GCP; Cofre do HashiCorp Repositório de segredos do Azure Key Vault
Acessando segredos no código do aplicativo Chamar a API de segredos do Dapr Acessar o volume montado ou sincronizar o conteúdo montado como um segredo Kubernetes e definir uma variável de ambiente
Rotação de segredos Novas chamadas à API obtêm os segredos atualizados Pesquisa segredos e atualiza a montagem em um intervalo configurável
Registrar em log e métricas O Dapr sidecar gera logs, que podem ser configurados com coletores, como Azure Monitor, emite métricas via Prometheus e expõe um ponto de extremidade HTTP para verificações de integridade Emite as métricas do driver e do provedor de Azure Key Vault via Prometheus

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

Para obter mais informações sobre o driver do CSI do Repositório de Segredos e o provedor do Azure Key Vault, confira a visão geral do driver CSI do Repositório de Segredos.

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

A extensão gerenciada de cluster Dapr é o método mais fácil de provisionar o Dapr em um cluster AKS. Com a extensão, você é capaz de 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 Dapr no modo de alta disponibilidade).

Ao instalar o software livre do Dapr por meio do helm ou da CLI do Dapr, os desenvolvedores e mantenedores de cluster também são responsáveis pelas versões de runtime e opções de configuração.

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

Saiba mais sobre como migrar do software livre do Dapr para a extensão do Dapr para o AKS.

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

Como posso passar a usar a extensão Dapr se já tiver instalado o Dapr por meio de um método, como Helm?

Diretrizes recomendadas para desinstalar completamente o Dapr do cluster AKS e reinstalá-lo por meio da extensão de cluster.

Se você instalar o Dapr por meio da extensão do AKS, é recomendável continuar usando a extensão para o gerenciamento futuro do Dapr em vez da CLI do Dapr. A combinação das duas ferramentas pode causar conflitos e resultar em um comportamento indesejado.

Próximas etapas

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