Serverless
Código que corre solo cuando alguien lo llama; el servidor no lo ves nunca.
Serverless es una forma de correr código en la nube donde subís una función y el proveedor la ejecuta solo cuando algo la dispara: un pedido HTTP, un archivo nuevo en Amazon S3, un reloj. Servidores hay, claro, pero nunca los ves, ni los dimensionás, ni los actualizás. AWS Lambda es el ejemplo más conocido, y la palabra también describe servicios como Amazon DynamoDB que escalan solos sin máquinas que administrar.
Se cobra por ejecución. Si tu función corre 10 veces por día durante 200 milisegundos, pagás 2 segundos de cómputo. Si un posteo viral manda un millón de pedidos, el proveedor levanta miles de copias en paralelo y cobra esas. Tráfico cero cuesta cero, o casi.
Le queda bien a cargas chicas o con picos: generar miniaturas, recibir webhooks, reportes nocturnos, pegamento entre servicios. Le queda peor a trabajos largos, porque una función suele tener un límite de tiempo (15 minutos en Lambda), y la primera llamada después de un rato quieta puede ser lenta mientras el proveedor la levanta (el "cold start").
Para quedarse
- Pagás por invocación y por milisegundo, no por hora de máquina prendida.
- Escala de cero a miles de copias sin configurar nada.
- Las funciones son cortas y sin estado: lo que importa se guarda en una base de datos o en almacenamiento.
- Los cold starts y la dependencia del proveedor son las quejas de siempre.
Para seguir leyendo
- Serverless en AWS
- ¿Qué es AWS Lambda? (documentación oficial)
- Serverless computing (Wikipedia, en inglés)