O que é a Tarefa Durável?

Durable Task é a estrutura de execução durável da Microsoft para criar fluxos de trabalho tolerantes a falhas e orquestrações como código comum. Em vez de gerenciar lógica de repetição complexa, computadores de estado ou filas de mensagens, você escreve sua lógica de negócios como funções simples : a Tarefa Durável manipula a persistência de estado, a recuperação automática e a coordenação distribuída para você.

Os fluxos de trabalho do Durable Task podem ser executados por horas, dias ou até mesmo meses, retomando de forma confiável da última etapa concluída após qualquer falha, reinicialização ou reimplantação. Os casos de uso comuns incluem transações distribuídas, orquestração de IA de vários agentes, pipelines de processamento de dados e gerenciamento de infraestrutura.

A Tarefa Durável abrange:

Observação

A execução durável é uma abordagem de todo o setor para tornar o código comum tolerante a falhas, persistindo automaticamente seu progresso. Tarefa Durável é a implementação da Microsoft de execução durável.

Principais casos de uso da Tarefa Durável

Use Tarefa Durável quando seu aplicativo exigir uma orquestração de workflows confiáveis e de longa duração entre serviços distribuídos. Cenários comuns incluem:

  • Processos de longa duração: A Tarefa Durável pode gerenciar o estado e o progresso dos processos que se executam por longos períodos de tempo, mesmo diante de interrupções ou erros. Os exemplos incluem processamento de pedidos, pipelines de dados, treinamento de modelos de aprendizado de máquina e simulações de execução prolongada.
  • Cenários paralelos e de fan-out/fan-in: a Tarefa Durável pode coordenar o trabalho que é distribuído entre vários trabalhadores executados em paralelo em computadores distintos e, depois, agregar os resultados. Exemplos incluem processamento de imagens, trabalhos de redução de mapa e fluxos de trabalho ETL.
  • Orquestrando microsserviços e APIs: a Tarefa Durável pode coordenar o trabalho entre serviços distribuídos, APIs e computadores com fluxo de controle complexo e tratamento de erros. A Tarefa Durável também permite implementar transações distribuídas usando o padrão saga, em que cada etapa tem lógica de compensação que é executada automaticamente se uma etapa posterior falhar.
  • Automação de processos de negócios: a Tarefa Durável pode automatizar processos de negócios complexos e determinísticos que envolvem várias etapas, dependências, intervenção humana no processo e tratamento de erros ao longo de longos períodos. Os exemplos incluem gerenciamento da cadeia de suprimentos, revisão de documentos, integração de clientes e verificação de identidade.
  • Automação de infraestrutura: a Tarefa Durável pode gerenciar o provisionamento, a configuração e a implantação de infraestrutura com dependências complexas e tratamento de erros. Exemplos incluem o gerenciamento de recursos de nuvem e pipelines de CI/CD.
  • Orquestração de múltiplos agentes: a Tarefa Durável pode coordenar o trabalho realizado por vários agentes de IA, garantindo adesão confiável às tarefas em longos horizontes e uso eficiente de tokens para processos complexos de múltiplas etapas de IA. Exemplos incluem agentes de IA para pesquisa profunda, codificação e suporte ao cliente.

Um tema comum nesses cenários é que eles envolvem trabalhos muito complexos, de execução muito longa ou muito distribuídos para gerenciar de forma confiável com código ad hoc. A Tarefa Durável fornece as garantias subjacentes - persistência, tolerância a falhas e coordenação com estado - para que você possa expressar esse trabalho como código simples.

Idiomas com suporte e modelos de hospedagem de Tarefas Duráveis

A Durable Task dá suporte a várias linguagens de programação em dois modelos de hospedagem: Azure Functions (por meio da extensão Durable Functions) e auto-hospedado (por meio dos SDKs de Durable Task autônomos). O modelo de hospedagem Azure Functions fornece um ambiente de computação totalmente gerenciado e sem servidor com recursos internos de dimensionamento e orquestração, enquanto o modelo -self-hosted permite executar aplicativos duráveis em qualquer plataforma de computação de sua escolha, como Azure Container Apps, Azure Kubernetes Service, Azure App Service ou máquinas virtuais.

Linguagem Azure Functions Auto-hospedado
.NET (C#/F#)
JavaScript/TypeScript
Python
Java
PowerShell

Observação

O Go também está disponível como um SDK de software livre com suporte da comunidade para cenários auto-hospedados, mas está atualmente em estágios experimentais e ainda não é recomendado para uso em produção.

Para obter diretrizes sobre como escolher entre Azure Functions e auto-hospedados, consulte Conseque seu modelo de hospedagem.

Componentes de arquitetura

A Tarefa Durável tem duas camadas principais: um SDK que você usa no código do aplicativo e um back-end de armazenamento de estado que gerencia o estado.

SDK de tarefa durável

Você usa o SDK de Tarefa Durável para criar orquestrações, atividades e entidades no código do aplicativo. Ele trata internamente a mecânica da execução durável, reproduzindo funções de orquestrador, gerenciando o contexto de execução local e comunicando-se com o back-end de armazenamento de estado. A Tarefa Durável oferece várias opções de SDK para os diferentes idiomas e modelos de hospedagem mencionados anteriormente.

Para obter diretrizes sobre como escolher entre essas opções, consulte Escolher seu modelo de hospedagem.

Back-end de armazenamento de estado

O back-end de armazenamento de estado é responsável por persistir o estado de orquestração, manter o histórico de execução e coordenar a expansão distribuída entre instâncias de computação.

A opção de armazenamento de estado recomendada é o Durable Task Scheduler - um serviço de Azure totalmente gerenciado criado e altamente otimizado para cargas de trabalho da Tarefa Durável. Ele funciona tanto com o Durable Functions quanto com os SDKs de Tarefa Durável autônomos e fornece o conjunto mais rico de recursos sem necessidade de infraestrutura de armazenamento para gerenciar.

Como alternativa, o Durable Functions oferece suporte a várias opções de armazenamento traga-o-seu-próprio (BYO). Elas oferecem mais controle sobre onde o estado é armazenado, mas exigem que você faça o provisionamento e gerenciamento da infraestrutura subjacente por conta própria. No momento, os back-ends de armazenamento BYO só estão disponíveis com Durable Functions.

Para obter mais informações sobre opções de armazenamento, consulte provedores de armazenamento.

Recursos adicionais da Tarefa Durável

Publicações de pesquisa

A Tarefa Durável é desenvolvida em colaboração com o Microsoft Research. Como resultado, a equipe produz ativamente artigos de pesquisa e artefatos, incluindo:

Visão geral em vídeo

O vídeo a seguir destaca os benefícios do Azure Durable Functions:

Próximas Etapas