Desenvolvimento · Cloud

Cloudflare Workers: o que é, como funciona e quando vale a pena usar

Edson Feitosa de Oliveira Junior
Edson Feitosa de Oliveira Junior Fundador e Engenheiro Líder · PruPru Digital Services

Cloudflare Workers é uma plataforma serverless que executa o seu código nos data centers da Cloudflare espalhados pelo mundo, perto de quem acessa. Você não aluga servidor, não instala sistema operacional nem configura balanceador: escreve uma função que recebe uma requisição HTTP e devolve uma resposta, publica com um comando e a Cloudflare cuida do resto.

Vale a pena para sites estáticos, APIs leves, formulários, redirecionamentos e pequenas aplicações que precisam ser rápidas e baratas. Não é a melhor escolha para processamento pesado, aplicações Java tradicionais ou sistemas que dependem de um servidor sempre ligado. A seguir você entende como funciona, o que o plano gratuito oferece e como decidir.

Como funciona o modelo serverless na borda

Em uma hospedagem tradicional, seu site roda em um servidor em um lugar fixo, por exemplo em São Paulo ou nos Estados Unidos. Todo visitante precisa chegar até lá. No modelo de borda (edge), o mesmo código fica disponível em centenas de cidades e cada requisição é atendida pelo ponto mais próximo do visitante.

A diferença técnica importante é que os Workers não sobem uma máquina virtual nem um container para cada aplicação. Eles rodam em isolates do V8, o mesmo motor JavaScript do Chrome. Um isolate é leve e inicia muito rápido, por isso o famoso "cold start" (a demora da primeira requisição depois de um tempo parado) é muito menor do que em plataformas baseadas em containers.

Na prática, isso significa:

Se quiser entender por que isso deixa sites mais rápidos do ponto de vista de quem visita, veja o artigo sobre hospedagem serverless.

Um Worker na prática

O jeito oficial de começar é com o Wrangler, a ferramenta de linha de comando da Cloudflare. Com o Node.js instalado:

npm create cloudflare@latest meu-worker
cd meu-worker
npx wrangler dev      # roda localmente
npx wrangler deploy   # publica na Cloudflare

O código de um Worker simples, que responde a uma rota de API e a qualquer outro caminho:

export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);

    if (url.pathname === "/api/hora") {
      return Response.json({ agora: new Date().toISOString() });
    }

    return new Response("Olá do Worker!", {
      headers: { "content-type": "text/plain; charset=utf-8" },
    });
  },
};

O parâmetro env dá acesso às variáveis de ambiente, segredos e aos serviços ligados ao Worker (os chamados bindings). Depois do deploy, o Worker ganha um endereço no subdomínio workers.dev e pode ser ligado ao seu próprio domínio, desde que o DNS dele esteja na Cloudflare.

Sites estáticos com Workers

Um uso muito comum é hospedar sites estáticos: HTML, CSS, JavaScript e imagens. Basta indicar a pasta no arquivo de configuração do Wrangler:

{
  "name": "meu-site",
  "compatibility_date": "2025-01-01",
  "assets": { "directory": "./public" }
}

Os arquivos estáticos são servidos direto da rede da Cloudflare. Se você precisar de alguma lógica (um formulário de contato, um redirecionamento, uma rota de API), adiciona um script ao mesmo projeto. A Cloudflare tem recomendado Workers com assets estáticos para projetos novos que antes iriam para o Cloudflare Pages.

KV, D1 e R2: onde guardar dados

Como o Worker não tem disco, os dados vão para serviços gerenciados que você liga ao projeto por bindings:

ServiçoO que éBom paraAtenção
KVArmazenamento chave-valor distribuídoConfigurações, cache, flags, conteúdo lido muitas vezes e alterado poucoConsistência eventual: uma gravação pode levar algum tempo para aparecer em todas as regiões
D1Banco de dados relacional baseado em SQLiteCadastros, agendamentos, pequenos sistemas com consultas SQLTamanho máximo por banco limitado; não é um PostgreSQL completo
R2Armazenamento de objetos compatível com a API do S3Imagens, PDFs, backups, uploads de usuáriosNão cobra taxa de saída de dados, mas cobra por armazenamento e operações acima da cota gratuita

Existem ainda os Durable Objects, para casos que exigem estado coordenado (como uma sala de chat), filas e o Hyperdrive, que acelera a conexão com um banco PostgreSQL ou MySQL que você já tem em outro lugar. Se você está começando em SQL, o artigo de SQL básico serve integralmente para o D1.

Plano gratuito e limites

O plano gratuito é generoso para sites pequenos e projetos pessoais. No momento em que escrevemos, ele inclui cerca de 100 mil requisições por dia aos Workers e um limite de tempo de CPU curto por requisição (na casa de 10 milissegundos), além de cotas gratuitas para KV, D1 e R2. As requisições a arquivos estáticos não contam como execução do Worker. O plano pago começa em torno de 5 dólares por mês e amplia bastante os limites. Os números mudam com o tempo, então confira sempre a página de preços e limites da Cloudflare antes de decidir.

Repare que o limite é de tempo de CPU, não de tempo total. Esperar a resposta de outra API ou do banco não consome CPU, então um Worker que faz consultas e monta um JSON costuma ficar bem abaixo do limite. O que estoura é cálculo pesado: redimensionar imagens grandes, gerar PDFs complexos, processar arquivos enormes.

Quando outra solução é melhor

Workers não resolvem tudo. Considere outra opção quando:

Para MVPs e pequenos negócios, porém, a combinação de Workers com D1 e R2 costuma entregar desempenho alto com custo muito baixo. Discutimos esse tipo de escolha no artigo sobre arquitetura de MVP de baixo custo. E colocar o domínio na Cloudflare também traz a proteção de rede dela, tema de mitigação de DDoS e DNS.

Sites e sistemas sob medida

A PruPru desenvolve sites e sistemas que rodam na borda da Cloudflare, rápidos para o visitante e baratos de manter. Veja os serviços e como podemos ajudar no seu projeto.

Ver serviços →

Perguntas frequentes

Cloudflare Workers é gratuito?

Existe um plano gratuito com cotas diárias de requisições e limites de tempo de CPU que atendem bem sites pequenos e projetos pessoais. Projetos com mais tráfego ou que precisam de mais processamento migram para o plano pago, cujo valor de entrada é baixo. Confira os valores atuais no site da Cloudflare.

Qual a diferença entre Workers e Cloudflare Pages?

Pages nasceu focado em sites estáticos com deploy a partir do Git, enquanto Workers é a plataforma de execução de código. Hoje os Workers também servem arquivos estáticos e a Cloudflare indica Workers como ponto de partida para projetos novos.

Posso rodar um site WordPress no Workers?

Não diretamente. O WordPress depende de PHP e MySQL em um servidor tradicional. Você pode manter o WordPress em uma hospedagem comum e usar a Cloudflare na frente para cache e proteção, ou gerar uma versão estática do site.

Preciso saber JavaScript para usar Workers?

Para escrever lógica, sim, JavaScript ou TypeScript é o caminho mais simples e mais documentado. Para hospedar apenas um site estático, basta configurar a pasta de arquivos e publicar com o Wrangler.

Falar no WhatsApp agora