Escolha o seu modelo de alojamento de tarefas duradouras

Este artigo ajuda-o a decidir entre os dois modelos de alojamento de Tarefas Duráveis — Durable Functions (Funções do Azure) e os SDKs de Tarefas Duráveis independentes (auto-hospedados) — com base na sua plataforma de alojamento, necessidades de escalabilidade e requisitos operacionais.

Sugestão

Já conhece a sua plataforma de alojamento? Vai para a tabela de consulta de plataformas para uma resposta rápida.

Como descrito em O que é a Tarefa Durável?, a Tarefa Durável suporta dois modelos de alojamento:

Ambos os modelos de alojamento oferecem as mesmas capacidades de execução duradouras (orquestrações, atividades, temporizadores, eventos externos e mais), mas diferem na forma como a sua aplicação é alojada, escalada e implementada.

De um modo geral, o local onde a sua aplicação corre determina que modelo de alojamento utiliza. Se estás a construir com Funções do Azure, usas Durable Functions. Se estiver a desenvolver numa outra plataforma de computação, utilize os SDKs de Tarefas Duráveis independentes.

Escolha com base na plataforma de alojamento

Se já conhece a plataforma de alojamento da sua aplicação, a tabela seguinte pode ajudá-lo a determinar qual o modelo de alojamento a utilizar:

Plataforma de alojamento Modelo de hospedagem
Funções do Azure (Consumo, Consumo Flexível, Premium) Durable Functions
Azure Container Apps (com Funções do Azure tempo de execução) Ambas
Serviço de Aplicações do Azure (com Funções do Azure tempo de execução) Ambas
Azure Kubernetes Service (AKS) SDKs de Tarefas Duráveis Independentes
Máquinas virtuais ou on-premises SDKs de Tarefas Duráveis Independentes

Observação

Serviço de Aplicações do Azure e Azure Container Apps podem ambos hospedar o runtime do Funções do Azure, seja através da integração totalmente gerida do Funções do Azure ou implementando diretamente o runtime das Funções. Assim, ambas as plataformas suportam qualquer um dos modelos de alojamento. Para mais informações sobre modelos de alojamento Funções do Azure, consulte Funções do Azure planos de alojamento.

Compare os modelos de alojamento

A tabela seguinte resume as principais diferenças entre os dois modelos de alojamento:

Funções Duráveis do Azure (Funções do Azure) SDKs de Tarefas Duráveis Autónomas (auto-hospedados)
Hospedagem Funções do Azure (Consumption, Flex Consumption, Premium), App Service e Container Apps (com runtime de Functions) Qualquer plataforma: Azure Container Apps, AKS, App Service, VMs, nas instalações
Dimensionamento Automático, gerido pela infraestrutura de escala gerida da Funções do Azure Geres tu próprio a escalabilidade, ou usas o autoscaling nativo da plataforma (por exemplo, KEDA no Kubernetes)
Acionadores Suporte incorporado para HTTP, Fila, Temporizador, Grelha de Eventos e outros gatilhos das Funções do Azure Define os seus próprios pontos de entrada (por exemplo, interfaces HTTP, consumidores de mensagens, etc.)
Armazenamento de estado Durable Task Scheduler (recomendado), Armazenamento do Azure, MSSQL, Netherite Agendador de tarefas durável
Idiomas .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell .NET (C#/F#), JavaScript/TypeScript, Python, Java
Monitorização Integração integrada com o portal Azure, Application Insights Configuras a tua própria solução de monitorização (por exemplo, Azure Monitor, Prometheus ou Grafana)

Observação

O arranque a frio ocorre quando uma aplicação de funções começa depois de estar inativa. Os planos de alojamento premium e dedicado mantêm as instâncias quentes para reduzir a latência de arranque a frio.

O plano de alojamento Flex Consumption oferece um conceito de "instâncias sempre prontas" como mitigação do arranque a frio.

Saiba mais sobre modelos de alojamento Funções do Azure.

APIs HTTP integradas

O Funções do Azure fornece endpoints HTTP para a sua aplicação functions, que a extensão Durable Functions aproveita para fornecer suporte incorporado para gestão de instâncias via HTTP.

Ao usar os Durable Task SDKs, precisa de implementar os seus próprios endpoints HTTP dependendo do seu ambiente de hospedagem.

Feature Durable Functions SDKs de Tarefas Duráveis
APIs HTTP de Gestão ✅ Integrado ❌ Implementa o teu próprio
URLs de estado automáticos ✅ Integrado ❌ Implementa o teu próprio

Durable Functions Recursos HTTP

O Durable Functions expõe automaticamente os endpoints HTTP para iniciar orquestrações, consultar status, levantar eventos e terminar instâncias. Estas APIs seguem o padrão de polling HTTP assíncrono, facilitando a integração com sistemas externos.

Observação

Durable Functions suporta usar a classe DurableTaskClient diretamente, se preferires do que usar as APIs HTTP integradas.

Saiba mais: Funcionalidades HTTP nas Durable Functions | Referência da API HTTP

Gestão de SDKs de Tarefas Duráveis

Com os Durable Task SDKs, usas a DurableTaskClient classe diretamente para gerir instâncias de orquestração. Se precisar de endpoints HTTP, você próprio os implementa usando o framework web que preferido.

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

Backends de armazenamento

Ambos os modelos de alojamento utilizam o Durable Task Scheduler — um serviço de Azure totalmente gerido para persistência e execução do estado de orquestração (preço). O Durable Functions suporta adicionalmente backends de armazenamento personalizados (Armazenamento do Azure, MSSQL e Netherite). Os SDKs de Tarefas Duráveis utilizam exclusivamente o Agendador de Tarefas Duráveis.

Saiba mais: Fornecedores de armazenamento

Configuração do hub de tarefas

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

Saiba mais: Centros de tarefas

Diagnóstico e versionamento

Feature Durable Functions SDKs de Tarefas Duráveis
Painel do Agendador de Tarefas Durable ✅ Sim ✅ Sim
Informações sobre aplicativos ✅ Integrado Configuração manual
Implantação sem tempo de inatividade ✅ Espaços de funções Específico da plataforma

Saiba mais: Diagnósticos | Versionamento

Quando escolher cada modelo

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

Escolhe Durable Functions se... Escolha SDKs de Tarefas Duráveis independentes se...
Queres triggers incorporados no Funções do Azure (HTTP, Queue, Timer, etc.). Deseja ter controlo total sobre o seu contentor e os respetivos pontos de entrada.
Já conheces o modelo de alojamento do Funções do Azure. Preferes um SDK leve sem a sobrecarga de runtime do Funções do Azure.
Queres integração com o portal Azure para gestão de funções. Quer que o mesmo código seja portátil entre plataformas de contentores (AKS, App Service, etc.).
Tens de escolher entre múltiplos backends de armazenamento. Já tens código de aplicação não-Functions para integrar.
Precisas de aplicações serverless e orientadas a eventos que escalem até zero. Precisas de cargas de trabalho de baixa latência sempre ligadas, sem atrasos de arranque a frio.
Pretende preços por execução com o plano de consumo. Precisas de cenários de alto rendimento otimizados para processamento em lote.
Precisas de prototipagem rápida com gatilhos declarativos e bindings. Tem aplicações containerizadas ou Kubernetes existentes.

Migração

Se já estiver a usar Durable Functions e quiser migrar para uma implementação baseada em contentores ou aproveitar a flexibilidade de alojamento dos SDKs Durable Task, a migração é simples. O código de orquestração é muito semelhante entre ambos os frameworks.

Para orientações detalhadas sobre migração, consulte Migrar de Durable Functions para os SDKs de Tarefas Duradouras.

Observação

Durable Task Framework (DTFx): O Durable Task Framework é uma biblioteca de .NET open-source mantida pela comunidade para orquestração duradoura. É usado internamente como uma dependência do Durable Functions, mas não vem com suporte oficial da Microsoft. Se estiver a começar um novo projeto, use os modernos Durable Task SDKs ou Durable Functions em vez disso.

Passos seguintes

Comece com a estrutura que escolheu:

Depois, saiba mais sobre o fornecedor de backend do Durable Task Scheduler.