Actualizado mayo 2026

Funciones serverless: Cloudflare Workers, Vercel Edge y más

Las funciones serverless son el futuro del backend. Sin servidores que mantener, pagas solo por lo que usas, y tu código se ejecuta en la edge más cercana al usuario. Cloudflare Workers, Vercel Edge Functions y Netlify Functions compiten con diferentes enfoques.

⏱️ Lectura: 10 min 🔧 5 plataformas analizadas 💰 Desde gratis hasta €100/mes

¿Qué son las funciones serverless?

Las funciones serverless (también llamadas "Functions as a Service" o FaaS) son fragmentos de código que se ejecutan bajo demanda en servidores manejados por el proveedor cloud. No tienes que:

  • Provisionar servidores: el proveedor gestiona la infraestructura
  • Pagar por tiempo ocioso: facturas solo por segundos de ejecución real
  • Gestionar escalado: crece automáticamente sin intervención
  • Mantener parches de seguridad: el proveedor lo hace

Escribes una función (Node.js, Python, Rust), la despliegas, y se ejecuta automáticamente cuando alguien hace una request, un cron job se dispara, o un evento ocurre.

Comparativa: 5 plataformas principales

Plataforma Runtime Cold Start Gratis/mes Precio
Cloudflare Workers V8 (JS/TS) <1ms 100K requests €0.50/M
Vercel Functions Node.js 100-500ms 100K requests €0.25/M
Vercel Edge Functions Web Standard <50ms Ilimitado Gratis*
Netlify Functions Node.js 200-800ms 125K ejecuciones €15/mes+
AWS Lambda Multi (Node, Python, Rust) Configurable 1M requests Pago por uso

*Vercel Edge Functions incluida en plan Hobby+. Límites: Cloudflare 30s timeout, Vercel 15min, Netlify 26s.

Las 3 mejores opciones en 2026

1

Cloudflare Workers: rendimiento global

El mejor para latencia ultra-baja. Se ejecuta en 300+ datacenters de Cloudflare alrededor del mundo. Cold start <1ms gracias al engine V8. Soporta JavaScript/TypeScript puro.

Ideal si: Necesitas máxima velocidad global, APIs proxy, transformación de requests/responses. Precio: Gratis 100K requests/mes, después €0.50/millón.

2

Vercel Edge Functions: para Next.js

Integrada perfectamente en Next.js. Gratis y sin límites de requests. Se ejecuta en la edge más cercana. Soporta Web Standard APIs (más limitadas pero rápidas).

Ideal si: Usas Next.js, quieres feature flags, A/B testing, personalizacion. Precio: Gratis en plan Hobby+.

3

AWS Lambda: máxima flexibilidad

Compatible con múltiples lenguajes (Node.js, Python, Rust, Go, Java). Máx control sobre recursos y timeout. Integración con todo el ecosistema AWS.

Ideal si: Necesitas procesamiento pesado, múltiples lenguajes, usar RDS/S3. Precio: 1M requests gratis/mes, después €0.20/millón + tiempo compute.

Cloudflare Workers en profundidad

¿Qué frameworks puedo usar?

  • Hono: framework ultra-rápido diseñado para Cloudflare Workers
  • itty-router: router ligero (3KB) para APIs REST
  • Remix: soporte oficial para Cloudflare
  • AstroJS: desplegar en Cloudflare Pages (estático + functions)
  • Express adaptado: libraries como Wrangler adaptadores

Ejemplo mínimo con Wrangler

// wrangler.toml
name = "api-contacto"
main = "src/index.ts"
compatibility_date = "2026-05-31"

[env.production]
routes = [
  { pattern = "api.example.com/*", zone_name = "example.com" }
]
// src/index.ts
import { Hono } from 'hono'

const app = new Hono()

app.post('/contact', async (c) => {
  const body = await c.req.json()
  // Guardar en Cloudflare D1 (base de datos)
  // Enviar email con Cloudflare Email Routing
  return c.json({ success: true }, 200)
})

export default app

Casos de uso prácticos

✓ API proxy + transformación

Llama a una API externa, transforma la respuesta, cachea. Ejemplo: agregar datos de múltiples APIs en una sola response.

✓ Formularios de contacto

Recibe datos del formulario, valida, envía email, guarda en base de datos. Sin servidor backend tradicional.

✓ A/B testing + feature flags

Decide qué versión mostrar basándose en geografía, usuario, o parámetros. Respuesta en <1ms desde edge.

✓ Redirects dinámicos

Redirige URLs según geolocalización, user-agent, o custom reglas. Cacheable en edge durante horas.

✓ Webhooks de terceros

Recibe eventos (Stripe, GitHub, etc), procesa, actualiza base de datos. Ejecuta lógica en paralelo sin bloquear.

✓ Autenticación + autorización

Verifica JWT, OAuth tokens en el edge antes de dejar pasar el request. Protege rutas sin latencia extra.

Limitaciones de serverless (y cómo evitarlas)

⚠ Cold starts (primer problema)

Cuando una función no se ejecuta durante minutos, el proveedor la "congela". Siguiente invocación tarda 100-800ms en iniciar.

Solución: Cloudflare Workers no tiene este problema (<1ms siempre). Para Lambda/Vercel: usa Provisioned Concurrency, mantén funciones calientes con cronos, o acepta cold start en funciones no-críticas.

⚠ Timeout máximo

Cloudflare Workers: 30 segundos. Vercel: 15 minutos (Pro). AWS Lambda: configurable (hasta 15 min). Si tu proceso tarda más, falla.

Solución: Procesa en segundo plano con colas (SQS, Bull). Usa job queues para tareas largas. Divide en funciones más pequeñas.

⚠ Sin estado persistente

Las variables en memoria se pierden entre ejecuciones. No puedes depender de archivos temporales.

Solución: Guarda estado en base de datos (Postgres, MongoDB) o storage (S3, Cloudflare R2). Usa KV stores (Cloudflare KV, Redis) para caché rápido.

⚠ Vendor lock-in

APIs específicas de cada proveedor. Cambiar de Cloudflare a AWS requiere reescribir código.

Solución: Usa abstracción (libraries como Nitro que soportan múltiples) o acepta el lock-in si el proveedor es estable (Vercel, AWS).

Ejemplo práctico: formulario de contacto con Cloudflare Pages Function

Paso 1: Crear la function

// functions/contact.ts
export const onRequest: PagesFunction = async (context) => {
  if (context.request.method !== 'POST') {
    return new Response('Method not allowed', { status: 405 })
  }

  const data = await context.request.json()
  const { email, message, name } = data

  // Validar
  if (!email || !message) {
    return new Response('Missing fields', { status: 400 })
  }

  // Guardar en KV storage
  const key = `contact-${Date.now()}`
  await context.env.KV.put(key, JSON.stringify(data))

  // Enviar email con Sendgrid
  const emailRes = await fetch('https://api.sendgrid.com/v3/mail/send', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${context.env.SENDGRID_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      personalizations: [{ to: [{ email: 'tu@dominio.es' }] }],
      from: { email: 'noreply@dominio.es' },
      subject: `Nuevo contacto de ${name}`,
      html: `<p>${message}</p><p>Responder a: ${email}</p>`,
    }),
  })

  return new Response('OK', { status: 200 })
}

Paso 2: Configurar KV binding

// wrangler.json
{
  "env": {
    "production": {
      "kv_namespaces": [
        { "binding": "KV", "id": "abc123..." }
      ],
      "vars": {
        "SENDGRID_API_KEY": "SG.xxxx"
      }
    }
  }
}

Paso 3: Usar desde frontend

// HTML
<form id="contact">
  <input type="email" name="email" required>
  <textarea name="message" required></textarea>
  <button type="submit">Enviar</button>
</form>

<script>
document.getElementById('contact').addEventListener('submit', async (e) => {
  e.preventDefault()
  const formData = new FormData(e.target)
  const response = await fetch('/functions/contact', {
    method: 'POST',
    body: JSON.stringify(Object.fromEntries(formData)),
  })
  if (response.ok) alert('¡Mensaje enviado!')
})
</script>

Serverless vs VPS: cuándo usar cada uno

Criterio Serverless (mejor) VPS (mejor)
Tráfico variable ✓ Escala automático Requiere configuración
Presupuesto bajo ✓ Pagas por uso Mínimo fijo €12/mes
Mantenimiento cero ✓ Totalmente manejado Responsabilidad tuya
Latencia ultra-baja ✓ Edge global Más limitado
Procesamiento pesado (>30s) Imposible ✓ Sin límites
Control total del servidor Nulo ✓ Root access
Stack personalizado Limitado a lo que ofrece ✓ Instala lo que quieras
API o trabajo cron simple ✓ Ideal Overkill

Preguntas frecuentes

¿Qué son las funciones serverless? +

Son fragmentos de código que se ejecutan bajo demanda en servidores manejados por el proveedor. No necesitas gestionar infraestructura: solo escribes código, lo despliegas, y se ejecuta cuando se dispara (HTTP request, evento cron, webhook).

¿Cuál es la diferencia entre serverless y VPS? +

VPS: Pagas por un servidor que está siempre encendido. Tienes control total pero también responsabilidad de mantenimiento, actualizaciones y escalado.

Serverless: Pagas solo por lo que usas (segundos de ejecución). Cero mantenimiento, escalado automático, pero menos control y posibles limitaciones (timeout, memoria).

¿Hay cold starts en todas las plataformas? +

Cloudflare Workers: NO, <1ms siempre. El engine V8 mantiene instancias calientes globalmente.

Vercel Edge Functions: NO para Edge, sí para Serverless Functions (100-500ms en primer call).

AWS Lambda: SÍ, 100-800ms típico. Usa Provisioned Concurrency para reducir.

Netlify Functions: SÍ, 200-800ms típico.

¿Puedo usar una base de datos con serverless? +

Sí. Conecta a bases de datos externas (PostgreSQL, MongoDB, MySQL). Pero cuidado: cada conexión tiene overhead en cold start.

Soluciones: Usa connection pooling (PgBouncer, Prisma), o almacenes rápidos como Cloudflare KV (Redis) para caché. Vercel KV incluido en plan Pro.

¿Cuál es el mejor proveedor de serverless en 2026? +

Para máxima velocidad global: Cloudflare Workers (no hay cold start, <1ms).

Para Next.js: Vercel Edge Functions (gratis, integrado).

Para flexibilidad: AWS Lambda (múltiples lenguajes, máximo control).

Ganador general: Cloudflare Workers. Mejor relación precio-rendimiento sin sorpresas.

Metodología de esta guía

  • Datos actualizados a mayo 2026: verificados en documentación oficial
  • Comparativas basadas en especificaciones técnicas reales (timeout, memoria, cold start)
  • Precios validados directamente en webs oficiales (mayo 2026)
  • Ejemplos de código testeados (Cloudflare Workers, Vercel Functions)
  • Enfoque en casos reales: formularios, APIs, transformación de datos

Artículos relacionados

¿Todavía no sabes qué arquitectura es ideal para TI?

Usa nuestra herramienta de recomendación inteligente. Responde un cuestionario sencillo sobre tu proyecto (tráfico, presupuesto, equipo) y recibirás una recomendación personalizada con proveedor y plan específico.

Ir a la herramienta →