← Volver al Tech Radar

Cloudflare Workers + Pages

Anillo: AdoptCuadrante: Plataformas

Mi veredicto

Jurisdicción UE, coste predecible, el TTFB más bajo en nuestro tráfico europeo.

Brief de profesional

Por qué lo adoptamos

Movimos wppoland.com y cuatro sitios de clientes de Vercel a Cloudflare Pages más Workers entre el Q4 de 2025 y el Q1 de 2026. El TTFB desde Varsovia, Fráncfort, Lisboa y Oslo se asentó en una mediana de 38 ms (Pages) y 52 ms (Workers), frente a 110 ms en el edge de Vercel medido desde las mismas sondas. El suelo de cold start en Workers está por debajo de 5 ms sobre isolates de V8 (el modelo de Kenton Varda); Lambda@Edge oscila entre 200 y 900 ms en frío. El reporting de NIS2 y del artículo 28 de DORA es más limpio cuando la petición, la caché y la capa de datos (D1, KV) se quedan dentro de la UE.

Cuándo lo usamos

Estático en el edge más API serverless: Astro 5 con islas selectivas, Next.js vía OpenNext, backends cuyo camino caliente es JWT más un fan-out pequeño hacia upstream. KV / D1 / R2 / Durable Objects sustituye a Postgres más Redis más S3: KV para configuración con mucha lectura, D1 para datos relacionales por debajo de 10 GB, R2 para medios sin coste de egress, Durable Objects para consistencia con un único escritor. Fuera de Workers: módulos nativos sin build para workerd, por encima de 128 MB por petición, trabajos de larga duración.

Ruta de migración

Desde Vercel: la parte dolorosa de la migración es el adaptador del framework, no el runtime. Los equipos de Next.js usan OpenNext; los de Astro, @astrojs/cloudflare. Cuenta con reescribir el código que lee process.env en el nivel superior del módulo (Workers no tiene un proceso Node en tiempo de import; los secretos llegan vía env en la petición). Desde AWS Lambda con CloudFront: todo lo que quede fuera de la superficie stdlib de nodejs_compat va a doler. Presupuesta dos días por cada 10 endpoints y una semana para la capa JWT (jose con la JWK cacheada en KV). Los flujos de peticiones firmadas de IAM que asumen un instance role no se transfieren.

Dos cicatrices de producción

Primera, el bug de truncado silencioso de _redirects a los 100 KB nos mordió en febrero de 2026: el fichero se subió, el aviso del build pasó desapercibido y las reglas de la cola se descartaron en el deploy. 52 URLs heredadas devolvieron 404 en producción. Arreglo: las reglas masivas pasaron a functions/redirect-map.ts y _redirects quedó limitado a ~1800 reglas. Segunda, Durable Objects con D1 y una clave caliente en una página de sorteo: un DO alcanzó el límite de concurrencia y bloqueó las escrituras durante 30 segundos. Arreglo: shardear la clave del DO por hash del user ID en 32 instancias, y réplicas de lectura de D1 para las lecturas. El tutorial de sharding de DO de Greg Brimble es la referencia.

Qué estamos vigilando

Cloudflare Containers entró en beta abierta en la Developer Week 2025 (anuncio de Rita Kozlov); lo estamos pilotando para una carga de trabajo con sharp y libvips, pero el suelo de cold start está más cerca del de un contenedor gestionado que del de Workers. Workflows (ejecución durable) llegó a GA en 2025 y estamos migrando a él una cadena de cron más cola (cloudflare/workers-sdk#5837). Vigilamos si R2 SQL con Iceberg se estabiliza lo suficiente como para que la analítica deje de necesitar un warehouse.

Añadido: 2026-04-26 · Última revisión: 2026-04-26

Lectura relacionada