Qué es serverless computing
Funciones en la nube que escalan automáticamente y solo cobran cuando se ejecutan
Serverless computing permite ejecutar código sin gestionar servidores. El proveedor cloud asigna recursos automáticamente, escala según la demanda y factura solo por el tiempo de ejecución real. No hay servidores que aprovisionar, parchear o monitorizar: solo código que se ejecuta en respuesta a eventos.
Desde procesar imágenes hasta ejecutar APIs completas, serverless ha transformado cómo se construyen y despliegan aplicaciones. Esta guía cubre cómo funciona, sus beneficios reales, las limitaciones que debes conocer y cuándo tiene sentido frente a una arquitectura con servidores.
¿Cómo funciona serverless?
En serverless, escribes funciones individuales que responden a eventos: una petición HTTP, un mensaje en una cola, un archivo subido a un bucket o un cron programado. El proveedor cloud se encarga de ejecutar la función en un contenedor efímero, asignar los recursos necesarios y destruir el contenedor cuando termina.
Las plataformas principales son AWS Lambda (la pionera, lanzada en 2014), Google Cloud Functions, Azure Functions y Cloudflare Workers. Cada una soporta múltiples lenguajes (Node.js, Python, Go, Rust, Java) y se integra nativamente con el ecosistema de servicios de su proveedor.
- Funciones activadas por eventos: HTTP, colas, storage, cron, base de datos
- Contenedores efímeros: se crean al invocar y se destruyen al terminar
- Escalado automático: de 0 a miles de instancias simultáneas sin configuración
- Facturación por milisegundo de ejecución y por número de invocaciones
Beneficios de serverless
El beneficio más directo es el coste: si tu función no se ejecuta, no pagas. Una API que recibe 1.000 requests al día puede costar menos de 1$ al mes en Lambda. Para cargas de trabajo intermitentes o impredecibles, serverless es dramáticamente más económico que mantener servidores encendidos 24/7.
La eliminación de la gestión de infraestructura libera al equipo para enfocarse en lógica de negocio. No hay parches de seguridad del SO, no hay configuración de auto-scaling groups, no hay monitorización de discos ni memoria. El proveedor gestiona todo lo que está debajo de tu código.
- Coste cero en reposo: solo pagas cuando la función se ejecuta
- Escalado automático: de 0 a miles de instancias sin intervención
- Sin gestión de infraestructura: no hay SO, parches ni servidores
- Time-to-market rápido: despliega funciones en segundos
- Alta disponibilidad: el proveedor replica automáticamente en múltiples zonas
Limitaciones y cold starts
El cold start es la limitación más conocida. Cuando una función no se ha ejecutado recientemente, el proveedor necesita crear un nuevo contenedor, cargar el runtime y tu código. Este arranque en frío puede añadir entre 100ms y varios segundos de latencia, dependiendo del lenguaje y el tamaño del paquete.
Otras limitaciones incluyen el tiempo máximo de ejecución (15 minutos en Lambda, 9 minutos en Cloud Functions), el tamaño del paquete desplegado, la memoria disponible y las conexiones persistentes (bases de datos, WebSockets). Para procesos de larga duración o con requisitos de baja latencia constante, serverless puede no ser la mejor opción.
- Cold starts: latencia adicional en la primera invocación (100ms-5s)
- Tiempo máximo de ejecución: 15 min (Lambda), 9 min (Cloud Functions)
- Sin estado: cada invocación es independiente, no hay memoria compartida
- Conexiones a BD: requiere connection pooling (RDS Proxy, PgBouncer)
- Debugging más complejo: logs distribuidos, difícil reproducir localmente
Casos de uso ideales
Serverless brilla en APIs con tráfico variable, procesamiento de eventos asíncronos, tareas programadas (cron jobs) y procesamiento de datos bajo demanda. Una API de backend para una app móvil, un pipeline de procesamiento de imágenes, o un sistema de notificaciones por email son casos de uso perfectos.
También es excelente para MVPs y prototipos: puedes construir un backend funcional en horas, desplegarlo sin configurar infraestructura y pagar solo centavos mientras validas la idea. Si el proyecto escala, puedes optimizar después.
- APIs REST/GraphQL con tráfico variable o intermitente
- Procesamiento de eventos: imágenes, vídeos, archivos, webhooks
- Tareas programadas: envío de emails, generación de reportes, limpieza de datos
- MVPs y prototipos: backend funcional con coste mínimo
- Backends para apps móviles con picos de uso impredecibles
Serverless vs contenedores
Contenedores (Docker + Kubernetes) y serverless resuelven problemas diferentes. Los contenedores ofrecen control total sobre el entorno de ejecución, son portables entre proveedores y no tienen límites de tiempo de ejecución. Serverless elimina la gestión de infraestructura pero sacrifica control y portabilidad.
Para cargas de trabajo predecibles y continuas (un servidor web con tráfico constante), los contenedores suelen ser más económicos. Para cargas intermitentes con picos (una API que recibe 100 requests por hora y 10.000 durante una campaña), serverless escala mejor y cuesta menos. Muchas arquitecturas modernas combinan ambos: contenedores para servicios core y serverless para funciones auxiliares.
Frameworks y herramientas
El ecosistema serverless ha madurado con frameworks que simplifican el desarrollo y despliegue. Serverless Framework, SST (Serverless Stack) y AWS SAM son los más populares. Para edge computing, Cloudflare Workers y Vercel Edge Functions ejecutan código en puntos de presencia cercanos al usuario con cold starts de microsegundos.
Para desarrollo local, herramientas como LocalStack emulan servicios AWS, y cada framework tiene su modo de desarrollo local. La observabilidad es crítica: Datadog, Lumigo y AWS X-Ray permiten trazar invocaciones y detectar cuellos de botella en arquitecturas serverless.
- Frameworks: Serverless Framework, SST, AWS SAM, Architect
- Edge: Cloudflare Workers, Vercel Edge Functions, Deno Deploy
- Desarrollo local: LocalStack, SAM Local, SST dev mode
- Observabilidad: Datadog, Lumigo, AWS X-Ray, Powertools for Lambda
Puntos clave
- Serverless ejecuta código sin gestionar servidores, con escalado automático y pago por uso
- Ideal para APIs con tráfico variable, procesamiento de eventos y MVPs
- Cold starts y límites de ejecución son las principales limitaciones a evaluar
- Para cargas continuas y predecibles, los contenedores suelen ser más eficientes
- Frameworks como SST y Serverless Framework simplifican el desarrollo y despliegue
¿Serverless es la opción correcta para tu proyecto?
Evaluamos tu arquitectura y te ayudamos a decidir entre serverless, contenedores o un enfoque híbrido.