Software · Computação em Nuvem & DevOps
Azure Functions a Fundo: Planos, Durable Functions e Cold vs Warm Start
Como projetar funções serverless com alto desempenho: as diferenças entre os planos Consumption, Flex e Premium, orquestração de estado com Durable Functions e técnicas de mitigação de cold start.
A arquitetura serverless permite que desenvolvedores foquem estritamente no código de negócio sem provisionar ou gerenciar servidores virtuais. No entanto, o paradigma FaaS (Function as a Service) impõe desafios específicos de latência de inicialização fria (cold start) e limitações na execução de processos que exigem orquestração de longa duração.
No Azure Functions, mitigar esses desafios depende de selecionar o plano de hospedagem correto e utilizar o framework de Durable Functions para fluxos coordenados com estado.
flowchart TD
subgraph FanOutPattern["Padrão Fan-Out / Fan-In com Durable Functions"]
Orchestrator["Função Orquestradora"] -->|Dispara em Paralelo| F1["Atividade 1 (Item A)"]
Orchestrator -->|Dispara em Paralelo| F2["Atividade 2 (Item B)"]
Orchestrator -->|Dispara em Paralelo| F3["Atividade 3 (Item C)"]
F1 --> Aggregator["Aguardar Todas as Tarefas e Consolidar"]
F2 --> Aggregator
F3 --> Aggregator
end
Planos de Execução do Azure Functions
| Plano de Hospedagem | Escalabilidade | Mitigação de Cold Start | Limite Máximo de Execução |
|---|---|---|---|
| Consumption | Escala automática instantânea de 0 a 200 instâncias | Sujeito a Cold Start (instâncias são descarregadas após ociosidade) | Padrão de 5 minutos (máximo configurável de 10 minutos) |
| Flex Consumption | Escala orientada a concorrência por instância e VNet nativa | Inicialização rápida e memória dimensionada por função | Até 30 minutos |
| Premium | Escala elástica contínua sobre nós pré-aquecidos | Zero Cold Start (instâncias sempre aquecidas) | Ilimitado |
Com Durable Functions, o runtime utiliza o Azure Storage em segundo plano para persistir o histórico de execução (Event Sourcing automático). Quando uma função pausa esperando uma resposta externa ou aprovação humana, ela é descarregada da memória sem cobrar pelo tempo ocioso, retomando do mesmo ponto quando a resposta chega.