Partilhar via


Escolhendo uma estrutura de orquestração

Neste artigo, vai aprender a:

  • Os benefícios de usar uma estrutura de orquestração.
  • Qual estrutura funciona melhor para o seu cenário.

O Azure oferece duas estruturas de orquestração orientadas para desenvolvedores que você pode usar para criar aplicativos: Funções duráveis para aplicativos hospedados no Azure Functions e SDKs de tarefas duráveis para aplicativos hospedados em outras plataformas de computação. As orquestrações, também chamadas de fluxos de trabalho, envolvem organizar e coordenar várias tarefas ou processos (de longa duração), muitas vezes envolvendo vários sistemas, para serem executados em uma determinada ordem. É importante que uma estrutura de orquestração garanta uma execução durável, ou seja, quando há interrupções ou falhas de infraestrutura, a execução pode continuar em outro processo ou máquina a partir do ponto de falha. Os SDKs de Tarefas Duráveis e as Funções Duráveis garantem que as orquestrações sejam executadas de forma durável por meio de persistência de estado interna e tentativas automáticas, para que você possa criar orquestrações sem o fardo de arquitetar a tolerância a falhas.

Cenários que exigem orquestração

A seguir estão os cenários que exigem padrões comuns de orquestração que se beneficiam dos SDKs de Tarefas Duráveis e Funções Duráveis:

  • Encadeamento de funções: Para cenários que envolvem etapas sequenciais, onde cada etapa pode depender da saída da anterior.
  • Fan-out/fan-in: Para trabalhos em lote, ETL (extração, transferência e carregamento) e qualquer cenário que exija processamento paralelo.
  • Interações humanas: Para autenticação de dois fatores, fluxos de trabalho que exigem intervenção humana.
  • APIs HTTP assíncronas: Para qualquer cenário em que um cliente não queira esperar pela conclusão de tarefas de longa execução.

Os dois cenários a seguir compartilham o padrão de encadeamento de funções .

Processamento de pedidos em um site de comércio eletrônico

Digamos que você crie um site de comércio eletrônico. Seu site provavelmente precisa de um fluxo de trabalho de processamento de pedidos para qualquer compra de cliente. O fluxo de trabalho pode incluir as seguintes etapas sequenciais:

  1. Verifique o inventário
  2. Processar pagamento
  3. Atualizar o inventário
  4. Gerar fatura
  5. Enviar confirmação da encomenda

Invocar agentes de IA para planear uma viagem

Nesse cenário, digamos que você precise criar um planejador de viagem inteligente. Há uma série de etapas conhecidas pelas quais o planejador deve passar:

  1. Sugira ideias com base nos requisitos do utilizador
  2. Obter confirmação de preferência
  3. Faça reservas obrigatórias

Você pode implementar um agente de IA para cada tarefa e, em seguida, escrever uma orquestração que invoque esses agentes em determinada ordem.

Opções de estrutura de orquestração

Tanto o Durable Functions quanto o Durable Task SDK estão disponíveis em vários idiomas, mas há algumas diferenças em como eles podem ser usados.

Saber qual a estrutura de orquestração recomendada para produção pode ajudá-lo a determinar qual é a mais adequada para o seu projeto. Embora o backend Durable Task seja totalmente gerido e suportado, a extensão Durable Functions e os SDKs Durable Task variam em estabilidade dependendo do modelo de preços e do SDK da linguagem que utiliza.

A tabela seguinte mostra qual a experiência do cliente adequada para uso em produção.

Experiência SKU dedicado Consumo SKU
Extensão das Funções Duráveis em todas as linguagens Disponível ao público em geral Preview
Durable Task .NET SDK Disponível ao público em geral Preview
SDK Python de Tarefas Duráveis Disponível ao público em geral Preview
Durable Task Java SDK Preview Preview

Durable Functions

Como um recurso do Azure Functions, o Durable Functions herda vários ativos, como:

  • Integrações com outros serviços do Azure por meio das extensões do Functions
  • Experiência de desenvolvimento local
  • Modelo de preços sem servidor
  • Hospedagem no Serviço de Aplicativo do Azure e nos Aplicativos de Contêiner do Azure

Durable Functions mantém estados num back-end de armazenamento e suporta:

Quando usar funções duráveis

Considere o uso de Funções Duráveis se precisar criar aplicativos orientados a eventos com fluxos de trabalho. As extensões do Azure Functions fornecem integrações com outros serviços do Azure, o que facilita a criação de cenários orientados a eventos. Por exemplo, com funções duráveis:

  • Você pode iniciar facilmente uma orquestração quando uma mensagem chega ao Azure Service Bus ou um arquivo é enviado para o Azure Blob Storage.
  • Você pode criar facilmente uma orquestração que é executada periodicamente ou em resposta a uma solicitação HTTP com o temporizador do Azure Functions e o gatilho HTTP, respectivamente.

Outro motivo para considerar as Funções Duráveis é se você já estiver escrevendo aplicativos do Azure Function e perceber que precisa de fluxo de trabalho. Como o modelo de programação Durable Functions é semelhante ao do Function, você pode acelerar seu desenvolvimento.

Experimente

Percorra um dos seguintes guias de início rápido ou exemplos para saber mais sobre as Funções Duráveis.

Inícios rápidos
Início Rápido Descrição
Agendador de tarefas durável Criar um aplicativo Durable Functions com o Durable Task Scheduler Crie um aplicativo de Funções Duráveis "hello world" que use o Agendador de Tarefas Duráveis como back-end, teste localmente e publique no Azure.
Armazenamento do Azure Crie uma aplicação do Durable Functions com armazenamento do Azure como suporte:
- .NET
- Píton
- JavaScript/TypeScript
- Java
- PowerShell
Crie uma aplicação de Funções Duráveis "hello world" que utilize Azure Storage como backend, teste-a localmente e publique no Azure.
MSSQL Criar um aplicativo Durable Functions com MSSQL Crie um aplicativo de Funções Duráveis "hello world" que use MSSQL como back-end, teste localmente e publique no Azure.
Exemplos
Exemplo Descrição
Fluxo de trabalho de processamento de pedidos Crie um fluxo de trabalho de processamento de pedidos com funções duráveis:
- .NET
- Píton
Este exemplo implementa um fluxo de trabalho de processamento de pedidos que inclui a verificação de estoque, processamento de pagamento, atualização de estoque e notificação do cliente.
Resumidor de PDF inteligente Crie um aplicativo que processe PDFs com funções duráveis:
- .NET
- Píton
Este exemplo demonstra o uso de Funções Duráveis para coordenar as etapas de processamento e resumo de PDFs usando os Serviços Cognitivos do Azure e o Azure OpenAI.

SDKs de Tarefas Duráveis com Agendador de Tarefas Duráveis

Os SDKs de Tarefa Durável são SDKs de cliente que devem ser usados com o Agendador de Tarefas Duráveis. Os SDKs de Tarefa Durável conectam as orquestrações que você escreve ao mecanismo de orquestração do Agendador de Tarefas Duráveis no Azure. Os aplicativos que usam os SDKs de tarefas duráveis podem ser executados em qualquer plataforma de computação, incluindo:

  • Azure Kubernetes Service
  • Azure Container Apps
  • Serviço de Aplicações do Azure
  • Máquinas virtuais (VMs) locais

O Durable Task Scheduler (SDK Java atualmente em pré-visualização) desempenha o papel tanto do motor de orquestração como do backend de armazenamento para a persistência do estado de orquestração. O Agendador de Tarefas Durável:

  • É totalmente gerenciado pelo Azure, removendo assim a sobrecarga de gerenciamento
  • Fornece elevada capacidade de orquestração
  • Oferece um painel pronto para uso para a monitorização e depuração da orquestração
  • Inclui um emulador local

Quando usar SDKs de tarefas duráveis

Se você não quiser usar o modelo de programação do Azure Functions, os SDKs de Tarefa Durável fornecem um modelo de programação leve e relativamente pouco opinativo para a criação de fluxos de trabalho.

Quando precisar executar aplicativos nos Serviços Kubernetes do Azure ou VMs locais com suporte oficial da Microsoft, considere usar os SDKs de Tarefa Durável. Embora as funções duráveis também possam ser executadas nessas plataformas, não há suporte oficial.

Experimente

Percorra um dos seguintes guias de início rápido para configurar os seus aplicativos para usar o Agendador de Tarefas Duráveis com os SDKs de Tarefas Duráveis.

Início Rápido Descrição
Guia de início rápido do desenvolvimento local Crie um aplicativo com SDKs de Tarefas Duráveis e Agendador de Tarefas Duráveis usando os SDKs .NET, Python ou Java. Realize uma orquestração de fan-in/fan-out localmente usando o emulador do Durable Task Scheduler e revise o histórico de orquestração usando o painel de controle.
Hospedagem em aplicativos de contêiner do Azure Implantar um aplicativo SDK de Tarefa Durável em Aplicativos de Contêiner do Azure Publique rapidamente uma aplicação "hello world" com o SDK de Tarefas Duráveis nos Azure Container Apps usando o Azure Developer CLI.

Observação

O DTFx (Durable Task Framework) é uma estrutura de orquestração .NET de código aberto semelhante ao SDK do .NET Durable Task. Embora possa ser usado para criar aplicativos executados em plataformas como os Serviços Kubernetes do Azure, o DTFx não recebe suporte oficial da Microsoft.

Próximos passos