Escolha seu modelo de hospedagem do Durable Task

Este artigo ajuda você a decidir entre os dois modelos de hospedagem da Tarefa Durável – Durable Functions (Azure Functions) e os SDKs de Tarefa Durável padrão (auto-hospedados) – com base em sua plataforma de hospedagem, necessidades de dimensionamento e requisitos operacionais.

Dica

Já conhece sua plataforma de hospedagem? Vá para a tabela de pesquisa da plataforma para obter uma resposta rápida.

Conforme descrito em O que é Tarefa Durável?, a Tarefa Durável dá suporte a dois modelos de hospedagem:

Ambos os modelos de hospedagem fornecem os mesmos principais recursos de execução duráveis (orquestrações, atividades, temporizadores, eventos externos e muito mais), mas diferem em como seu aplicativo é hospedado, dimensionado e implantado.

Em geral, onde seu aplicativo é executado determina qual modelo de hospedagem você usa. Se você estiver desenvolvendo na plataforma Azure Functions, você usa as Funções Duráveis. Se você estiver desenvolvendo em qualquer outra plataforma de computação, utilize os SDKs independentes das Tarefas Duráveis.

Escolher com base na plataforma de hospedagem

Se você já conhece a plataforma de hospedagem do aplicativo, a tabela a seguir pode ajudá-lo a determinar qual modelo de hospedagem usar:

Plataforma de hospedagem Modelo de hospedagem
Azure Functions (Consumo, Consumo Flexível, Premium) Durable Functions
Aplicativos de Contêiner do Azure (com execução do Azure Functions) Ou
Serviço de Aplicativo do Azure (com ambiente de execução do Azure Functions) Ou
AKS (Serviço de Kubernetes do Azure) SDKs de tarefas duráveis autônomas
Máquinas virtuais ou locais SDKs de tarefas duráveis autônomas

Observação

O Serviço de Aplicativos do Azure e o Aplicativos de Contêiner do Azure podem hospedar o ambiente de execução do Azure Functions, seja por meio de uma integração totalmente gerenciada do Azure Functions ou implantando o ambiente de execução do Functions diretamente. Assim, ambas as plataformas dão suporte a um modelo de hospedagem. Para obter mais informações sobre Azure Functions modelos de hospedagem, consulte Azure Functions planos de hospedagem.

Comparar os modelos de hospedagem

A tabela a seguir resume as principais diferenças entre os dois modelos de hospedagem:

Funções Duráveis (Azure Functions) SDKs de tarefa duráveis autônomos (auto-hospedados)
Hosting Azure Functions (Consumo, Consumo Flexível, Premium), Aplicativos de Serviço, e Aplicativos de Contêiner (com tempo de execução do Functions) Qualquer plataforma: Aplicativos de Contêiner do Azure, AKS, Serviço de Aplicativo, VMs, local
Dimensionamento Automático, gerenciado pela infraestrutura de escala gerenciada Azure Functions Você gerencia o dimensionamento por conta própria ou usa o dimensionamento automático nativo da plataforma (por exemplo, KEDA no Kubernetes)
Gatilhos Suporte integrado para HTTP, Fila, Temporizador, Grade de Eventos e outros gatilhos do Azure Functions Você define seus próprios pontos de entrada (por exemplo, endpoints HTTP, consumidores de mensagens etc.)
Armazenamento de estado Durable Task Scheduler (recomendado), Armazenamento do Azure, MSSQL, Netherite Agendador de tarefas duráveis
Idiomas .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell .NET (C#/F#), JavaScript/TypeScript, Python, Java
Monitorização Integração interna com Azure portal, Application Insights Você configura sua própria solução de monitoramento (por exemplo, Azure Monitor, Prometheus ou Grafana)

Observação

Partida a frio ocorre quando um aplicativo de função é iniciado após estar inativo. Os planos de hospedagem Premium e Dedicado mantêm as instâncias aquecidas para reduzir a latência de inicialização a frio.

O plano de hospedagem Flex Consumption oferece o conceito de instâncias sempre prontas como mitigação do problema de inicialização a frio.

Saiba mais sobre Azure Functions modelos de hospedagem.

APIs HTTP integradas

O Azure Functions fornece endpoints HTTP para seu aplicativo de funções, que a extensão Funções Duráveis aproveita para fornecer suporte integrado ao gerenciamento de instâncias via HTTP.

Ao usar os SDKs de Tarefas Duráveis, você precisa implementar seus próprios endpoints HTTP, dependendo da capacidade de computação do seu servidor.

Característica Durable Functions SDKs para tarefas duráveis
APIs HTTP de gerenciamento ✅ Integrado ❌ Implemente o seu próprio
URLs automáticas de status ✅ Integrado ❌ Implemente o seu próprio

Funcionalidades HTTP do Durable Functions

Durable Functions expõe automaticamente pontos de extremidade HTTP para iniciar orquestrações, consultar o status, gerar eventos e encerrar instâncias. Essas APIs seguem o padrão de sondagem HTTP assíncrono, facilitando a integração com sistemas externos.

Observação

Durable Functions dá suporte ao uso da classe DurableTaskClient diretamente, se você preferir isso em vez das APIs HTTP internas.

Saiba mais: recursos HTTP no Durable Functions | referência da API HTTP

Gerenciamento de SDKs de Tarefas Duráveis

Com os SDKs de Tarefa Durável, você usa a DurableTaskClient classe diretamente para gerenciar instâncias de orquestração. Se você precisar de endpoints HTTP, implemente-os você mesmo usando seu framework da web preferido.

Saiba mais: Gerenciar instâncias de orquestração

Back-end de armazenamento

Ambos os modelos de hospedagem usam o Durable Task Scheduler — um serviço de Azure totalmente gerenciado para persistência e execução do estado de orquestração (pricing). Durable Functions também oferece suporte a trazer seu próprio back-end de armazenamento (Armazenamento do Azure, MSSQL e Netherite). Os SDKs de Tarefa Durável usam exclusivamente o Agendador de Tarefas Duráveis.

Saiba mais: Provedores de armazenamento

Configuração do hub de tarefas

Durable Functions configura hubs de tarefas no arquivo host.json. Os SDKs de Tarefas Duráveis configuram hubs de tarefas em código e variáveis ​​de ambiente (cadeia de conexão/ponto de extremidade).

Saiba mais: Hubs de tarefas

Diagnóstico e controle de versão

Característica Durable Functions SDKs para tarefas duráveis
Painel do Agendador de Tarefas Durável ✅ Sim ✅ Sim
Application Insights ✅ Integrado Instalação manual
Implantação sem tempo de inatividade ✅ Slots de funções Específico da plataforma

Saiba mais: Diagnóstico | Controle de versão

Quando escolher cada modelo

Ao escolher entre os dois modelos de hospedagem, considere os seguintes fatores:

Escolha Durable Functions se... Escolha os SDKs autônomos de Tarefas Duráveis se...
Você deseja gatilhos incorporados do Azure Functions (HTTP, Fila, Temporizador, etc.). Você deseja ter controle total sobre o contêiner e seus pontos de entrada.
Você já está familiarizado com o modelo de hospedagem Azure Functions. Você prefere um SDK leve sem a sobrecarga do tempo de execução do Azure Functions.
Você deseja integração do portal do Azure para o gerenciamento de funções. Você deseja que o mesmo código seja portátil em plataformas de contêiner (AKS, Serviço de Aplicativo etc.).
Você precisa escolher entre vários back-ends de armazenamento. Você já possui código de aplicativo que não utiliza o Functions e precisa integrá-lo.
Você precisa de aplicativos controlados por eventos sem servidor que sejam dimensionados para zero. Você precisa de cargas de trabalho sempre ativas e de baixa latência sem atrasos de inicialização a frio.
Você deseja preços de pagamento por execução com o plano de consumo. Você precisa de cenários de alta taxa de transferência otimizados para processamento em lote.
Você precisa de protótipos rápidos com gatilhos declarativos e associações. Você tem aplicativos containerizados ou em Kubernetes existentes.

Migração

Se você já estiver usando Durable Functions e quiser mudar para uma implantação baseada em contêiner ou aproveitar a flexibilidade de hospedagem dos SDKs de Tarefa Durável, a migração é simples. O código de orquestração é muito semelhante entre ambas as estruturas.

Para obter diretrizes de migração detalhadas, consulte Migrar de Durable Functions para os SDKs de Durable Task.

Observação

Durable Task Framework (DTFx): O Durable Task Framework é uma biblioteca de .NET de software livre e mantida pela comunidade para orquestração durável. Ele é usado internamente como uma dependência de Durable Functions, mas não vem com suporte oficial Microsoft. Se você estiver iniciando um novo projeto, use os SDKs de Tarefa Durável modernos ou as Funções Duráveis em vez disso.

Próximas Etapas 

Introdução à estrutura que você escolheu:

Em seguida, saiba mais sobre o provedor de back-end do Agendador de Tarefas Duráveis.