Deploy para decisão executiva · Capítulo 9 de 20 · 75 min
O número que decide a escolha de fornecedor
Para o nosso perfil de carga, a diferença entre as plataformas é de quinze dólares por mês ou de uma ordem de grandeza?
Este capítulo faz parte do curso gratuito Deploy para decisão executiva.
Preencher a comparação de fornecedor com o volume real da empresa e calcular o ponto de virada em gigabytes de saída por mês.
- Separar as cinco linhas que realmente movem a comparação entre plataformas.
- Calcular o volume mensal a partir do qual a diferença deixa de ser percentual.
- Escrever o critério de desempate antes de ver o resultado financeiro.
Em linguagem simples
Comparar fornecedor de publicação não é comparar mensalidade. As duas plataformas cobram uma taxa pequena e previsível, e depois cobram por consumo em linhas diferentes: o dado que sai em direção ao cliente, o número de requisições atendidas, o tempo de processador que o código queima, o tempo de montagem do site e os serviços gerenciados que vêm embutidos. Duas empresas com a mesma assinatura recebem contas que diferem em dez vezes, porque consomem coisas diferentes.
Existe uma única linha em que a diferença entre os dois fornecedores muda de ordem de grandeza, e ela é o egresso, o dado que sai da plataforma. Em uma delas o egresso é cobrado por gigabyte; na outra ele é gratuito por política declarada. Enquanto o volume for pequeno, isso não decide nada. Passado o volume incluído no plano, decide tudo.
- 01A assinatura é o menor número da conta. Cinco dólares por mês de um lado, vinte do outro, verificado em 24 de julho de 2026. Essa diferença de quinze dólares nunca sustentou uma decisão de arquitetura e não deve aparecer como argumento em comitê.
- 02O consumo é medido em linhas independentes. Saída de dados, requisições atendidas, tempo de processador, memória mantida viva e minutos de montagem. Cada linha cresce por um comportamento diferente do produto e tem um dono diferente dentro da empresa.
- 03Egresso é a única linha com diferença de ordem de grandeza. Cinco terabytes de saída por mês custam cerca de seiscentos dólares em Washington, cerca de oitocentos e oitenta em São Paulo e zero na plataforma que não cobra transferência. Nenhuma outra linha produz essa distância.
- 04O ponto de virada se calcula, não se opina. É o volume mensal de saída em que as duas contas se cruzam. Abaixo dele, decide-se por produtividade do time. Acima dele, decide-se por estrutura de preço.
Glossário rápido
Egresso
O dado que sai da plataforma em direção ao cliente. Medido em gigabytes por mês, cobrado por gigabyte em um fornecedor e não cobrado no outro.
Franquia incluída
O volume que já vem no plano e não acumula de um mês para o outro. Enquanto a empresa fica dentro dela, a comparação de preço não mede nada.
Ponto de virada
O volume mensal em que a conta de um fornecedor ultrapassa a do outro. É um número, tem data de cálculo e precisa ser recalculado quando a tabela muda.
Confusão mais comum: Confundir o preço da assinatura com o custo da plataforma. A assinatura é a menor parcela da conta em qualquer cenário com tráfego real, e é justamente a parcela que aparece nos slides de comparação que circulam em comitê.
Explique em voz alta: Aponte, sem consultar tabela, qual linha da conta da sua empresa cresce quando o marketing publica um vídeo pesado na página inicial e qual linha cresce quando o time publica um código que consome mais processador.
A escolha costuma estar feita antes de a reunião começar
A pergunta chega à mesa com aparência técnica e resposta pronta. O time prefere a plataforma que já conhece, e a justificativa que sobe para o comitê é sempre a mesma família de frase: é feita pelo mesmo grupo que criou o framework, a integração é natural, a produtividade é maior. Nada disso é mentira. Nada disso é um número.
O curso anterior a este material resolvia a escolha exatamente assim, por afinidade, e chegava a recomendar uma arquitetura dividida, com a interface em um fornecedor e as rotas de programação no outro. Esse desenho foi superado pela ponte técnica que hoje roda o framework inteiro dentro de um único ambiente da segunda plataforma, e que este próprio repositório usa em produção. A comparação corrente é entre duas plataformas completas, não entre uma plataforma e um complemento.
Comparar com número exige três coisas que raramente estão na sala: o volume real de consumo da empresa, as tabelas de preço com data de verificação e o critério de desempate escrito antes de ver o resultado. Sem as três, o comitê decide por quem fala mais alto, e depois chama isso de análise.
Modelo operacional
As cinco linhas que decidem a comparação
Preencha as cinco com o número da sua empresa, tirado da fatura do último ciclo. Linha sem número não entra na comparação e não vira argumento de reunião.
- Egresso: O dado que sai da plataforma em direção ao cliente, medido em gigabytes por mês. É a única linha em que a diferença entre os dois fornecedores é de ordem de grandeza, e ela é movida por marketing e por produto, não por engenharia. Exemplo: Um fornecedor cobra US$ 0,15 por GB em Washington e US$ 0,22 por GB em São Paulo depois do primeiro terabyte incluído no plano. O outro declara em documentação que não cobra transferência. Preços verificados em 24/07/2026.
- Requisições atendidas: O número de chamadas que a borda responde no mês. Cresce com audiência e com o desenho da página, porque cada recurso pedido pelo navegador é uma requisição. Exemplo: Dez milhões inclusos nos dois planos. Acima disso, US$ 2,00 por milhão em Washington e US$ 3,20 em São Paulo de um lado, US$ 0,30 por milhão do outro, com requisições a arquivos estáticos declaradas gratuitas e ilimitadas nessa segunda plataforma. Verificado em 24/07/2026.
- Processador e memória: O trabalho de execução do seu código. Um fornecedor cobra processador ativo e memória provisionada em linhas separadas; o outro cobra milissegundos de processador e declara que a espera por entrada e saída não é faturada. Exemplo: US$ 0,128 por hora de processador ativo em Washington e US$ 0,221 em São Paulo, mais memória à parte, contra trinta milhões de milissegundos de processador inclusos na assinatura de cinco dólares do outro lado. Verificado em 24/07/2026.
- Montagem: O tempo de máquina consumido para montar o site a cada publicação. Cresce com a frequência de publicação do time, que é uma métrica que costuma ser celebrada sem contrapartida orçamentária. Exemplo: Cobrado por minuto de processador a partir de US$ 0,0035 em um fornecedor, contra 6.000 minutos mensais inclusos no plano pago do outro, com excedente a US$ 0,005 por minuto. Verificado em 24/07/2026.
- Serviços gerenciados: O que vem embutido e que a empresa deixaria de ter do outro lado: cache incremental, fila de revalidação, otimização de imagem, observabilidade, banco e armazenamento. Não aparece na comparação de preço e aparece inteiro na conta de engenharia. Exemplo: Armazenamento de objetos a US$ 0,015 por GB-mês com saída gratuita de um lado; do outro, otimização de imagem e cache incremental já embutidos. A escolha troca linha de fatura por trabalho de time.
Preencher as cinco linhas leva menos de uma hora, porque os números já existem na fatura. O que costuma faltar é alguém com autoridade para pedir a fatura aberta.
O galpão barato com pedágio na cancela de saída
Duas transportadoras alugam galpão na mesma região. O primeiro contrato cobra aluguel baixo e um valor por tonelada que sai pela cancela. O segundo cobra aluguel um pouco maior e não cobra nada na saída. Enquanto as duas empresas movimentam pouco, a diferença cabe no cafezinho e o gestor escolhe pelo galpão mais bonito. No mês em que uma delas ganha um contrato de distribuição, o pedágio de saída passa a valer mais do que o aluguel do ano inteiro, e a planilha que comparava aluguéis nunca chegou a olhar para a cancela.
Comparar assinatura é comparar aluguel. A conta de uma plataforma de publicação é decidida na cancela de saída, e a cancela só aparece na fatura depois que o volume chega.
Preço de tabela das duas plataformas, verificado em 24 de julho de 2026
Valores lidos na documentação primária de cada fornecedor. Tabela de preço muda sem aviso prévio contratual: confirme cada linha na fonte antes de levar a números para um comitê.
| Linha da conta | Cloudflare Workers Paid | Vercel Pro em iad1 (Washington) | Vercel Pro em gru1 (São Paulo) |
|---|---|---|---|
| Taxa fixa do plano | US$ 5,00 por mês | US$ 20,00 de taxa de plataforma, com 1 assento de publicação e US$ 20,00 de crédito mensal | Mesma taxa de plataforma; o crédito e as franquias expiram no fim do mês |
| Saída de dados | Sem cobrança de transferência, por política declarada em documentação | 1 TB incluído; acima disso, US$ 0,15 por GB | 1 TB incluído; acima disso, US$ 0,22 por GB |
| Requisições | 10 milhões inclusas; excedente a US$ 0,30 por milhão; requisições a arquivos estáticos gratuitas e ilimitadas | 10 milhões inclusas; excedente a US$ 2,00 por milhão | 10 milhões inclusas; excedente a US$ 3,20 por milhão |
| Execução do código | 30 milhões de milissegundos de processador inclusos; espera por entrada e saída não faturada | US$ 0,128 por hora de processador ativo, mais US$ 0,0106 por GB-hora de memória provisionada | US$ 0,221 por hora de processador ativo, mais US$ 0,0183 por GB-hora de memória provisionada |
| Montagem | 6.000 minutos por mês inclusos; excedente a US$ 0,005 por minuto | A partir de US$ 0,0035 por minuto de processador, sem franquia mensal declarada | Mesma cobrança por minuto de processador |
| Armazenamento de objetos | US$ 0,015 por GB-mês, com saída gratuita pelas interfaces de programação | Serviço próprio, contratado à parte | Serviço próprio, contratado à parte |
O que a saída mensal faz com a conta
Quatro cenários de volume, com a mesma aplicação e o mesmo time. Um terabyte é tratado como 1.000 GB, que é a base usada pelas faturas dos dois fornecedores. A coluna da direita é a única que interessa ao comitê: o que a diferença de fato decide.
| Saída mensal | Cloudflare | Vercel em iad1 | Vercel em gru1 | O que a diferença decide |
|---|---|---|---|---|
| 340 GB (dentro da franquia) | US$ 5,00 de assinatura | US$ 20,00 de taxa, com crédito não consumido | US$ 20,00 de taxa, com crédito não consumido | Nada. Quinze dólares por mês não sustentam decisão de arquitetura, e usar esse número em comitê queima credibilidade. |
| 2 TB | Sem cobrança de transferência | Cerca de US$ 150 de egresso acima da franquia | Cerca de US$ 220 de egresso acima da franquia | A conversa começa. A diferença anual já paga algumas semanas de engenharia, e a decisão passa a ter dois lados defensáveis. |
| 3,8 TB (a Nortis hoje) | Sem cobrança de transferência | Cerca de US$ 420 de egresso | Cerca de US$ 616 de egresso, que é a linha de US$ 610 da fatura do módulo 5 | A decisão está atrasada. A empresa já paga a diferença há pelo menos dois ciclos, sem que nenhum documento registre a escolha. |
| 5 TB | Sem cobrança de transferência | Cerca de US$ 600 de egresso | Cerca de US$ 880 de egresso | A diferença vira ordem de grandeza. A escolha deixa de ser preferência do time e passa a ser estrutura de preço, com efeito direto na margem do produto. |
Evidência pública
Caso documentado: a ponte técnica que apagou a arquitetura dividida
Projeto @opennextjs/cloudflare
O adaptador que roda o framework inteiro dentro de um único ambiente da Cloudflare chegou à versão 1.20.2 em 21 de julho de 2026, exigindo Next.js 16.2.11 ou superior na linha ativa e 15.5.21 ou superior na linha de manutenção. São pisos mínimos, elevados em resposta ao boletim de segurança de 20 de julho de 2026. O desenho que separava interface em um fornecedor e rotas de programação no outro deixou de ser necessário.
- A versão 1.20.2 foi publicada em 21/07/2026, um dia depois do boletim de segurança do framework, e declara no registro npm a dependência de par >=15.5.21 <16 || >=16.2.11, lida em 24/07/2026.
- O adaptador exige o runtime Node.js e ainda não suporta o middleware Node introduzido no Next.js 15.2.
- O Windows não é ambiente garantido pelo projeto, que recomenda Linux ou subsistema Linux para a montagem.
- Desde março de 2026, o produto de execução com arquivos estáticos da Cloudflare alcançou paridade com o produto anterior de páginas para conteúdo estático, renderização no servidor e domínio próprio, e todo recurso novo sai primeiro para ele.
O risco de fornecedor mudou de natureza. Deixou de ser não roda e passou a ser roda com alguns dias de defasagem a cada lançamento do framework, e nesta versão a defasagem foi de um dia sobre uma correção de segurança. Isso é gerenciável com política escrita de não adotar versão menor no dia do lançamento, e deixa de ser argumento para uma arquitetura partida entre dois contratos.
A defasagem de dias é comportamento observado nas últimas versões, e não compromisso contratual do projeto.
Conexão com o portal
Do FinOps de modelos para a mesa de fornecedor: custo unitário antes de preço de tabela
Comparar fornecedores pelo preço da unidade que aparece no anúncio produz decisões erradas quando o consumo real se concentra em uma unidade diferente da anunciada.
Tradução executiva: Em plataforma de publicação, o preço anunciado é a assinatura e o consumo real se concentra em saída de dados e em tempo de processador. Comparar assinaturas é o equivalente a escolher fornecedor de modelo pelo preço do primeiro milhão de palavras e descobrir a conta na linha de contexto.
Use quando: alguém apresentar uma comparação de plataformas em que a primeira linha do slide é o valor da mensalidade.
Fronteira: A analogia para no fato de que a fatura de publicação tem uma linha sem equivalente: o egresso, que é movido por audiência e por decisão de marketing, e não por decisão de engenharia. Quem controla essa linha costuma não estar na reunião de arquitetura.
Guardrail
Como não fabricar uma comparação que confirma o que já foi decidido
Comparação de fornecedor é o documento mais fácil de enviesar de toda a pauta de tecnologia, porque quem a monta costuma ter preferência anterior e sabe qual cenário produz o resultado desejado. Os cinco controles abaixo custam minutos e tiram do autor a liberdade de escolher o cenário depois de conhecer o resultado.
- O volume usado na comparação veio da fatura do último ciclo, com data, e não de estimativa de quem defende uma das opções.
- Os três cenários de tráfego foram escritos antes de qualquer cálculo: o de hoje, o do plano de crescimento e o do mês de campanha.
- Cada preço citado traz a data de verificação e o endereço da documentação primária do fornecedor, e nenhum número veio de comparativo publicado por um dos concorrentes.
- O critério de desempate para quando a diferença financeira for irrelevante está escrito antes do resultado aparecer.
- O custo de engenharia da migração está declarado em semanas de time, mesmo que aproximado, ao lado do ganho mensal em dólares.
- A decisão tem gatilho numérico de revisão: o volume mensal que, se ultrapassado por dois meses seguidos, obriga reabrir o assunto.
Calcular o ponto de virada com o número da própria empresa
Para quem decide
Camada de execução · Para quem monta a planilha ou o script de comparação. Quem decide pode pular: o resultado que importa já está nas duas tabelas acima. · opcional para quem só decide
O ponto de virada é o único número da comparação que resiste a mudança de opinião, porque ele não depende de quem apresenta. Calculado uma vez, ele vira gatilho de revisão e dispensa a próxima rodada de discussão sobre preferência de plataforma.
Para quem executa
- 01Extraia da fatura do último ciclo três números: gigabytes de saída, requisições atendidas e horas de processador ativo, com a região de execução declarada ao lado.
- 02Rode o cálculo nos três cenários combinados antes: volume de hoje, volume do plano de crescimento e volume do mês de campanha.
- 03Some à conta do fornecedor alternativo o custo dos serviços gerenciados que precisariam ser reconstruídos, ainda que como faixa aproximada.
- 04Registre a data do cálculo e a data das tabelas de preço consultadas. As duas mudam, e a segunda muda sem aviso contratual.
- 05Guarde o script junto do documento de decisão. Recalcular no trimestre seguinte precisa custar minutos, não uma nova reunião.
Comparação de custo mensal com o volume real da empresa. Preços de tabela verificados em 24/07/2026; confirme na documentação primária antes de usar.
// custo-mensal.mjs — rode com: node custo-mensal.mjs
// Preços em dólares, verificados na documentação dos fornecedores em 24/07/2026.
// Um terabyte tratado como 1.000 GB, que é a base decimal usada pelas faturas
// dos dois fornecedores. Trocar por 1024 muda todos os resultados abaixo.
const GB_POR_TB = 1000;
const PLANOS = {
cloudflareWorkersPaid: {
taxaFixa: 5.0,
egressoPorGB: 0.0, // transferência não cobrada, por política declarada
requisicoesInclusas: 10_000_000,
porMilhaoExcedente: 0.30,
},
vercelProIad1: {
taxaFixa: 20.0,
egressoInclusoGB: 1 * GB_POR_TB,
egressoPorGB: 0.15,
requisicoesInclusas: 10_000_000,
porMilhaoExcedente: 2.0,
cpuPorHora: 0.128,
memoriaPorGBHora: 0.0106,
},
vercelProGru1: {
taxaFixa: 20.0,
egressoInclusoGB: 1 * GB_POR_TB,
egressoPorGB: 0.22,
requisicoesInclusas: 10_000_000,
porMilhaoExcedente: 3.20,
cpuPorHora: 0.221,
memoriaPorGBHora: 0.0183,
},
};
// Números da própria empresa, tirados da fatura do último ciclo.
// Estes são os da Nortis, derivados das sete linhas abertas no módulo 5:
// US$ 610 de transferência, US$ 430 de requisições de borda, US$ 890 de CPU
// ativa e US$ 1.520 de memória provisionada, todos com preço de gru1.
const USO = { saidaGB: 3_800, requisicoes: 144_000_000, horasCpu: 4_027, gbHoraMemoria: 83_000 };
function excedente(valor, franquia) {
return Math.max(0, valor - franquia);
}
function custoVercel(p, uso) {
return (
p.taxaFixa +
excedente(uso.saidaGB, p.egressoInclusoGB) * p.egressoPorGB +
(excedente(uso.requisicoes, p.requisicoesInclusas) / 1_000_000) * p.porMilhaoExcedente +
uso.horasCpu * p.cpuPorHora +
uso.gbHoraMemoria * p.memoriaPorGBHora
);
}
function custoCloudflare(p, uso) {
return (
p.taxaFixa +
(excedente(uso.requisicoes, p.requisicoesInclusas) / 1_000_000) * p.porMilhaoExcedente
);
}
for (const saidaGB of [340, 2 * GB_POR_TB, USO.saidaGB, 5 * GB_POR_TB]) {
const uso = { ...USO, saidaGB };
console.log(
saidaGB + " GB/mês",
"| cloudflare:", custoCloudflare(PLANOS.cloudflareWorkersPaid, uso).toFixed(2),
"| vercel iad1:", custoVercel(PLANOS.vercelProIad1, uso).toFixed(2),
"| vercel gru1:", custoVercel(PLANOS.vercelProGru1, uso).toFixed(2),
);
}
// O que este cálculo NÃO inclui, e precisa entrar no documento de decisão:
// semanas de engenharia da migração e reconstrução dos serviços gerenciados.Rodar o cálculo apenas com o volume de hoje produz a resposta de hoje e nenhuma decisão. Dentro da franquia incluída as duas contas ficam praticamente empatadas, e a comparação só ganha sentido quando os quatro cenários aparecem lado a lado, com o volume de hoje entre eles.
A ponte técnica corrigida: formato de configuração e comando de publicação
Para quem decide
Camada de execução · Para o time que operaria a migração. Quem decide precisa saber apenas que a ponte existe, é mantida e acompanha o framework com poucos dias de defasagem. · opcional para quem só decide
O curso legado ensinava o formato antigo de arquivo de configuração da Cloudflare em todos os exemplos. A recomendação corrente do fornecedor, verificada em 24 de julho de 2026, é o formato JSON com comentários para projetos novos, com o aviso de que alguns recursos novos só chegam a esse formato. O formato antigo continua funcionando e deixou de ser o padrão gerado.
Para quem executa
- 01Use wrangler.jsonc em projeto novo. O wrangler.toml segue suportado desde a versão 3.91.0 da ferramenta e não foi marcado como descontinuado, mas recursos novos podem não chegar a ele.
- 02A versão corrente da ferramenta de linha de comando da Cloudflare publicada no registro é a 4.114.0, verificada em 24/07/2026.
- 03O adaptador exige o runtime Node.js. Rota escrita para o runtime de borda precisa ser convertida antes da migração.
- 04O cache incremental do framework precisa de configuração explícita do lado da Cloudflare, com armazenamento de objetos como destino recomendado e fila de revalidação em objetos duráveis.
- 05Fixe a versão da ferramenta no arquivo de dependências do projeto. Ferramenta de publicação sem versão fixada quebra o pipeline sozinha entre uma publicação e outra.
Configuração no formato recomendado pela Cloudflare para projetos novos. Campos conferidos na documentação em 24/07/2026.
// wrangler.jsonc
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "nortis-web",
"main": ".open-next/worker.js",
"compatibility_date": "2026-07-01",
"compatibility_flags": ["nodejs_compat"],
// Arquivos estáticos: requisições a eles são gratuitas e ilimitadas.
"assets": {
"directory": ".open-next/assets",
"binding": "ASSETS"
},
// Cache incremental do framework: precisa ser declarado, não vem embutido.
"r2_buckets": [
{ "binding": "NEXT_INC_CACHE_R2_BUCKET", "bucket_name": "nortis-cache" }
],
"observability": { "enabled": true }
}Migrar sem inventariar as rotas escritas para o runtime de borda garante falha na primeira publicação. O levantamento leva minutos e devolve o tamanho real do trabalho de conversão, que é o número que faltava na estimativa apresentada ao comitê.
Guia prático · Guia de marketing 6 · Cloudflare Workers
Publique a mesma landing em Cloudflare Workers, com prévia por pull request
Caso de uso: Agência ou time interno · comparação de custo entre plataformas
No fim deste guia a landing roda em um Worker com arquivos estáticos, cada pull request ganha uma prévia com endereço estável, e o time tem os números das duas plataformas para a comparação com o volume real.
Onde fica: Cloudflare: Workers & Pages > Create > Import a repository; depois, no Worker, o seletor de ambiente ao lado do nome e Settings > Builds.
Passo a passo
Passo 1: Comece em Workers, não em Pages
A Cloudflare mantém o guia de migração de Pages para Workers (atualizado em 12 de outubro de 2026) e reserva para Workers recursos que Pages não tem, como Durable Objects, Cron Triggers e observabilidade mais completa. Landing nova entra como Worker com arquivos estáticos: requisição a arquivo estático é gratuita e ilimitada.
Passo 2: Conecte o repositório ao Workers Builds
Importe o repositório e deixe o build automático. Desde 22 de setembro de 2026, com Worker Previews, cada pull request gera uma prévia isolada com endereço estável que se atualiza a cada envio, e o link vai como comentário no pull request. Cada publicação também tem endereço imutável para comparação.
Passo 3: Configure a prévia sem tocar na produção
As variáveis e vínculos com que toda prévia nasce ficam no bloco previews do arquivo de configuração do Wrangler; segredos, pelo comando do Wrangler. Para que o formulário de prévia não grave no banco de produção, vincule a prévia a um recurso separado. Requer Wrangler 4.135.0 ou posterior.
Passo 4: Confira os limites que mudaram
Desde 4 de setembro de 2026 o limite de tamanho do Worker é de 64 MiB descompactados em todos os planos. Desde 4 de agosto, com data de compatibilidade a partir de 2026-08-04, a compatibilidade com Node.js vem ligada por padrão, e bibliotecas de formulário e de e-mail costumam funcionar sem ajuste.
Passo 5: Feche a comparação com o mesmo volume
Plano pago de Workers: US$ 5 por mês, 10 milhões de requisições e 30 milhões de milissegundos de CPU incluídos, depois US$ 0,30 por milhão de requisições e US$ 0,02 por milhão de milissegundos. Vercel Pro: US$ 20 por mês, com crédito de uso. Leve o volume do último trimestre para a tabela do módulo, não a impressão do time.
wrangler.jsonc mínimo de uma landing estática com prévias (exemplo)
{
"name": "landing-campanha",
"compatibility_date": "2026-10-01",
"assets": { "directory": "./dist", "not_found_handling": "404-page" },
"previews": {
"vars": { "AMBIENTE": "previa" }
}
}Prévia que usa o mesmo banco ou a mesma fila da produção grava lead de teste no funil real. Vincule a prévia a um recurso separado.
O Workers Builds e o Pages agora pulam builds enfileirados que já foram superados por um mais novo do mesmo ramo. Não estranhe build que some da fila em dia de muitos ajustes.
Critério de pronto e como medir
- Critério de pronto: pull request de teste gerou prévia com link no próprio pull request, a mesclagem publicou em produção e o custo estimado das duas plataformas está na tabela de comparação com o volume real.

Imagem: Documentação da Cloudflare.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Laboratório de migração: preservar a campanha ao trocar Pages por Workers
A agência da Nortis quer mover uma landing estática de campanha para Workers. A página inicial abre, mas um endereço inexistente pode responder como se fosse conteúdo válido, e o formulário pode perder a configuração. Faça o ensaio em uma cópia do projeto: o domínio e a campanha ativos só mudam depois da comparação. A revisão oficial de migração de 12/10/2026 exige declarar o comportamento de rota ausente; não dependa da detecção automática que havia em Pages.
Executar uma migração verificável
Passo 1: Registrar o ponto de partida
Anote a URL da landing em Pages, o diretório de saída do build e três rotas de controle: a landing, uma página existente e /oferta-que-nao-existe. Guarde também a política de canonical e o destino de teste do formulário.
Deu certo quando: Você consegue comparar as mesmas rotas e o mesmo envio nas duas plataformas.
Erro comum: Migrar DNS primeiro e descobrir diferenças só depois de comprar tráfego.
Passo 2: Configurar a saída e o comportamento de rota
No wrangler.jsonc da cópia, substitua pages_build_output_dir por assets.directory. Para a landing estática com 404.html, use not_found_handling: 404-page. Use single-page-application somente se o projeto tiver roteamento de SPA no navegador.
Deu certo quando: A pasta publicada corresponde à saída real; uma rota inexistente recebe a resposta prevista.
Erro comum: Usar fallback de SPA em qualquer site: uma URL inexistente pode devolver a página inicial com HTTP 200 e parecer válida ao buscador.
Passo 3: Separar build de execução
No Worker, Settings > Build contém Build variables and secrets, disponíveis durante a montagem. Settings > Variables & Secrets configura valores de execução. Peça ao técnico que declare onde LEADS_ENDPOINT é lido e cadastre o destino fictício no ambiente correspondente.
Deu certo quando: O build termina e o envio de teste chega ao coletor separado.
Erro comum: Cadastrar variável apenas no build e esperar que o Worker a encontre durante uma requisição.
Passo 4: Comparar a prévia com o site de origem
Na URL de teste do Worker, abra as três rotas diretamente e recarregue a página interna. Em Network, confira status, redirects e formulário. Revise canonical, noindex da prévia e referências de imagens. Registre resultados antes de qualquer troca de domínio.
Deu certo quando: Landing e página válida funcionam; rota inexistente retorna 404 no exemplo estático; formulário mantém a origem da campanha.
Erro comum: Considerar apenas a página inicial ou contar uma resposta 200 como prova de que todas as rotas funcionam.
No fim você tem: Quem decide recebe um relatório de equivalência, uma lista de diferenças e o caminho de retorno. Quem executa resolve essas diferenças na cópia antes de solicitar a troca.
| Configuração | Onde é usada | Critério do exercício |
|---|---|---|
| assets.directory | Arquivos que serão servidos | Pasta real gerada pelo build, com index.html e 404.html. |
| not_found_handling: 404-page | Landing estática com página de erro | URL inventada retorna status 404. |
| not_found_handling: single-page-application | Aplicação com roteador no navegador | Rota interna abre diretamente; tela de rota inválida tem comportamento planejado. |
| Variável de build | Montagem do pacote | Valor necessário para gerar o site; segredo não vai para o pacote público. |
| Variável de execução | Atendimento de cada requisição no Worker | Formulário lê o destino de teste durante a requisição. |
{
"name": "nortis-campanha-lab",
"compatibility_date": "2026-10-17",
"assets": {
"directory": "./dist",
"not_found_handling": "404-page"
}
}O exemplo configura somente arquivos estáticos e supõe que o build gere ./dist/404.html. Não implementa o formulário. Se houver Functions de Pages, código SSR ou Next.js, inclua a migração do código ou do adaptador no plano; trocar a pasta de saída não converte essas funções em um Worker.
Concluir o ensaio de migração
Evidências de conclusão
0/4Copiar o relatório de equivalência
Documento montado
Origem: [URL DE ORIGEM] Destino de teste: [URL DE TESTE] Responsável: [RESPONSÁVEL TÉCNICO] [ ] Landing abre com o conteúdo esperado [ ] Rota interna abre por acesso direto [ ] Rota inexistente tem o status definido [ ] Formulário chega ao coletor fictício [ ] Build e execução usam as variáveis corretas [ ] Canonical e indexação conferidos Diferenças, decisão e caminho de retorno: preencher antes da troca de domínio.
O que você digitar fica salvo neste navegador. Nada é enviado para servidor algum.
Caso Nortis · Semana 5
O comitê de arquitetura se divide. Metade defende manter tudo onde está pela produtividade do time. A outra metade quer migrar por causa do egresso. Ninguém trouxe o volume real de saída mensal da Nortis.
Em tráfego pequeno a diferença entre os dois fornecedores é de cerca de US$ 15 por mês e não decide nada. Em 5 TB de saída por mês, a mesma comparação vira US$ 600, US$ 880 ou zero, conforme a região e o fornecedor.
Preencher a comparação com o volume real da empresa, calcular o ponto de virada em gigabytes por mês e escrever o critério de desempate para quando a diferença financeira for irrelevante.
Exemplo trabalhado
A comparação que o comitê de arquitetura da Nortis não tinha feito
Marina, CEO, com o CTO e o controller na mesma sala
Metade do comitê defende manter a plataforma atual pela produtividade do time. A outra metade quer migrar por causa do egresso. Ninguém trouxe o volume real de saída mensal da Nortis, e a discussão já está no terceiro encontro.
Passo a passo do exemplo
Passo 1: Buscar o volume real antes de qualquer opinião
O controller extrai da fatura do último ciclo três números: gigabytes de saída, requisições atendidas e horas de processador ativo. São três linhas que já existem na conta e que ninguém tinha lido separadamente. Da fatura aberta no módulo 5 saem US$ 610 de transferência, US$ 430 de requisições de borda e US$ 890 de processador ativo, o que corresponde a cerca de 3.800 GB de saída no mês, cerca de 144 milhões de requisições de borda e 4.027 horas de processador ativo. O pico de campanha chegou a 5.200 GB.
Passo 2: Colocar os três números nas duas tabelas de preço
Com 3.800 GB, a Nortis passa em quase quatro vezes a franquia de um terabyte incluída no plano atual. Os 2.800 GB excedentes custam US$ 616 por mês em São Paulo e custariam US$ 420 em Washington. Na plataforma que não cobra transferência, essa linha é zero. A diferença de quinze dólares na assinatura é ruído diante de seiscentos dólares mensais em uma única linha de consumo, verificado nas duas tabelas em 24 de julho de 2026.
Passo 3: Calcular a partir de quanto a resposta muda
Cada terabyte de saída acima da franquia custa cerca de cento e cinquenta dólares em Washington e cerca de duzentos e vinte em São Paulo, contra zero na outra plataforma. O ponto de virada da Nortis está em um terabyte por mês, que é a fronteira da franquia, e foi atravessado há pelo menos dois ciclos sem que ninguém registrasse a data. A pergunta deixa de ser se a diferença existe e passa a ser quanto custa capturá-la.
Passo 4: Escrever o critério de desempate antes de decidir
O comitê registra, por escrito, que a diferença de egresso já é de ordem de grandeza e que a decisão passou a depender do único número que ninguém tem: quantas semanas de time a migração da carga intensiva em mídia consumiria. Fica aprovado um piloto restrito a essa carga, com prazo, dono e custo de engenharia declarado em semanas, e a decisão de plataforma completa reagendada para a entrega do piloto.
Resultado: A discussão de três reuniões termina em quarenta minutos. A Nortis sai com um piloto aprovado para a carga que gera o egresso e com custo de engenharia a declarar em semanas, e o time de produto passa a saber que publicar mídia pesada na página inicial tem consequência de fornecedor medida em centenas de dólares por mês.
Continua sob responsabilidade humana: O cálculo compara preço de tabela e ignora o custo de engenharia da migração, que não aparece em nenhuma fatura. O comparativo publicado pelo fornecedor incumbente em 16 de julho de 2026 lista serviços que precisariam ser reconstruídos do outro lado, e é fonte interessada: serve como lista a validar item a item, jamais como conclusão. Quem assina a decisão precisa dizer, no mesmo documento, quantas semanas de time a migração consumiria.
Exercício: a comparação com o volume da sua empresa
Exercício · 25 min
Passo 1: Peça ao financeiro a fatura aberta do último ciclo e destaque três números: gigabytes de saída, requisições atendidas e horas de processador ativo.
Passo 2: Escreva os três cenários antes de calcular qualquer coisa: volume de hoje, volume do plano de crescimento aprovado e volume do maior mês de campanha dos últimos doze meses.
Passo 3: Preencha as cinco linhas do quadro para as duas plataformas, anotando a data de verificação ao lado de cada preço.
Passo 4: Calcule o volume de saída mensal em que as duas contas se cruzam e escreva esse número em negrito no documento.
Passo 5: Escreva o critério de desempate para o caso de a diferença ser irrelevante, e o gatilho numérico que obriga reabrir a decisão.
No fim você tem: Entregável: Uma matriz de decisão de uma página com os três cenários preenchidos, o ponto de virada calculado em gigabytes por mês, o critério de desempate escrito e a recomendação assinada com data de revisão.
Laboratório de decisão
O comitê de arquitetura precisa fechar hoje
A Nortis serve cerca de 3.800 GB de saída por mês, com pico de 5.200 GB no mês de campanha, e pagou US$ 610 de transferência no ciclo que fechou. O plano de crescimento aprovado prevê dobrar a base de clientes em doze meses, e o produto vai passar a entregar relatórios em vídeo, o que empurra a saída para cima. O time conhece a plataforma atual e produz bem nela.
Migrar tudo, manter com gatilho, migrar só a carga que gera o egresso, ou dividir a arquitetura em definitivo?
- A. Aprovar a migração completa da plataforma agora.: Captura os cerca de seiscentos dólares mensais de egresso e mais o prêmio de região, e move de uma vez seis serviços gerenciados e todas as rotas de borda, sem que nenhuma semana de time esteja estimada em documento. É decisão de ganho conhecido e custo desconhecido.
- B. Manter a plataforma atual e registrar um gatilho numérico de revisão.: Custa uma linha no documento. Só que o gatilho já disparou: a saída passou de um terabyte e a diferença de egresso é de centenas de dólares por mês há pelo menos dois ciclos. Registrar gatilho para número já atravessado é adiar a decisão com aparência de método.
- C. Aprovar um piloto que migre apenas a carga intensiva em mídia.: Ataca a linha que responde por quase toda a diferença sem mover os seis serviços gerenciados de uma vez, e devolve em semanas o número que falta no comparativo: quanto custa capturar a economia. O piloto tem prazo, dono e critério de aceite escritos antes de começar.
- D. Dividir em definitivo: interface em um fornecedor e rotas de programação no outro.: Herda a complexidade dos dois contratos, dois formatos de configuração, dois modelos de faturamento e dois planos de reversão, em regime permanente. É o desenho que a ponte técnica atual tornou desnecessário, e transforma em estrutura o que deveria ser um piloto com data de encerramento.
Recomendação: A terceira opção: piloto restrito à carga intensiva em mídia, com prazo, dono e custo de engenharia declarado em semanas, e a decisão de plataforma completa reagendada para a entrega do piloto. O inventário de rotas de borda entra junto, desde já.
O volume medido já eliminou duas opções. Manter com gatilho perdeu sentido no momento em que a saída passou de um terabyte, e insistir nisso é escolher pagar a diferença sem assinar essa escolha. Dividir em definitivo multiplica superfície operacional permanente para resolver um problema que tem solução localizada. Sobram migrar tudo e migrar a parte que importa, e a diferença entre as duas é a única variável que ninguém trouxe: o custo de engenharia. O piloto compra esse número pelo menor preço possível, mantém a operação de pé enquanto isso e produz, ao fim, uma comparação em que os dois lados têm valor medido. O inventário de rotas de borda entra junto porque é o único item cujo custo não cai com o tempo: quanto mais tarde o levantamento, maior o refactor.
Entregável do módulo: Matriz de decisão de fornecedor preenchida com o volume real da empresa em três cenários de tráfego, com o ponto de virada calculado em gigabytes de saída por mês, o critério de desempate escrito para quando a diferença financeira for irrelevante e a recomendação assinada com data de revisão.
- Eu consigo dizer, com o número da minha fatura, se a diferença entre os fornecedores é de quinze dólares por mês ou de ordem de grandeza.
- Eu tenho o ponto de virada da minha empresa calculado em gigabytes de saída por mês, com a data do cálculo ao lado.
- Eu escrevi o critério de desempate antes de conhecer o resultado financeiro da comparação.
Escolhido o fornecedor com número, falta ler o que o contrato dele efetivamente devolve quando o serviço falha.
Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Veja o que estudar antes e para onde seguir depois, explore os conceitos e compare abordagens em outros cursos. Sugestões marcadas como “sugerido pelo grafo” vêm dos assuntos em comum, não do índice do curso.
Estude antes
- Frontend vs Backendsugerido pelo grafoApresenta o conceito “Node.js”, usado em “O número que decide a escolha de fornecedor”.
- Conceitos fundamentaissugerido pelo grafoApresenta o conceito “PR (Pull Request)”, usado em “O número que decide a escolha de fornecedor”.
- CursoNode.js: JavaScript no Servidorsugerido pelo grafo4 capítulos de “Deploy para decisão executiva” usam conceitos apresentados em “Node.js: JavaScript no Servidor”.
- CursoGitHub: Controle de Versão do Zerosugerido pelo grafo3 capítulos de “Deploy para decisão executiva” usam conceitos apresentados em “GitHub: Controle de Versão do Zero”.
Depois, siga para
Conceitos deste capítulo
O mesmo assunto em outros cursos
- Software e IA para executivosCalcular quanto cada publicação custa na fatura do mêsExaminar conexões de Calcular quanto cada publicação custa na fatura do mês
- LLM FinOps: o custo da IA para quem assina o orçamentoComo o fornecedor cobra: tabela, assento e créditoExaminar conexões de Como o fornecedor cobra: tabela, assento e crédito
- GEO e Knowledge GraphQuanto custa de verdade, e o que comprar, construir ou contratarExaminar conexões de Quanto custa de verdade, e o que comprar, construir ou contratar
- GEO Intent MappingQuanto vale aparecer na respostaExaminar conexões de Quanto vale aparecer na resposta
Voltar ao capítulo anterior: Não existe teto: quando o ataque chega como fatura
Leve uma ideia para a prática
Escolha uma atividade no painel e volte a este curso quando quiser.
Atividades e evolução ficam reunidas no painel da sua conta.
Capítulos vizinhos em Deploy para decisão executiva
- 07As linhas que ninguém orça: build, medição e log
- 08Não existe teto: quando o ataque chega como fatura
- 09O número que decide a escolha de fornecedor
- 10Traduzir disponibilidade em minutos e em dinheiro
- 11O calendário que o fornecedor controla e a dívida com prazo