Los departamentos de marketing de los proveedores de la nube nos han estado contando el mismo cuento durante años: "Olvida la infraestructura, concéntrate solo en tu código, paga solo por lo que usas." Suena genial, ¿verdad? En teoría, sí. Pero en la práctica, **Serverless** puede convertirse a veces en un agujero negro financiero sin fondo.
Seamos honestos; el modelo "Pay-as-you-go" (pago por uso) evoluciona muy rápidamente al modelo "Pay-as-you-panic" (pago por pánico) si no sabes exactamente lo que estás haciendo. Echemos un vistazo escéptico a los costos ocultos detrás de esas presentaciones brillantes y cómo sobrevivir a este caos.
1. No Existe Tal Cosa Como "Gratis": Los Asesinos Invisibles
Cuando se menciona Serverless, a todos se les viene a la mente solo el Execution Time (tiempo de ejecución). Calculan diciendo: "Mi función se ejecutó durante 100ms, pagué tantos centavos". Se equivocan. Los elementos reales que inflan la factura son generalmente estos:
- Data Transfer (Egress): La salida de datos fuera de la Nube suele ser más costosa que la función misma.
- API Gateway: Esa "puerta" con la que abres Lambda o Azure Functions al mundo, a veces genera más costos que el poder de procesamiento detrás.
- Logging & Observability: En el momento en que dices "registremos todo, podría ser útil", estás frito. Las tarifas de Log Ingestion de CloudWatch o servicios similares pueden llevarte al punto de decir "Ojalá no supiera tanto" al final del mes.
2. Cold Start: No Solo Rendimiento, Sino Pérdida de Dinero
Todos hablan del problema de latencia del Cold Start. Pero un experto escéptico pregunta: "¿Cuánto dinero estoy perdiendo durante este retraso?" Si su aplicación está orientada al usuario y el usuario abandona el carrito debido a ese retraso de 2 segundos, el costo de esa función es mucho mayor que los 0.00001 dólares del documento técnico.
Escalar es bueno, pero la línea entre el costo de una Provisioned Concurrency que está "inactiva" y el costo de una VM tradicional es más delgada de lo que crees.
3. Decisión Arquitectónica: ¿Cuándo Huir?
En algún punto necesitas detenerte y preguntar: "¿Por qué no estamos usando Kubernetes o un servidor bare-metal?" Si tu tráfico es estable, predecible y alto 24/7, Serverless es la opción más cara para ti.
Serverless es una bendición para tráficos spiky (que muestran aumentos inciertos y repentinos). Sin embargo, usar Serverless en un sistema que funciona continuamente es como ir al trabajo en taxi todos los días. Después de cierto punto, comprar (o alquilar) un coche tiene mucho más sentido.
4. La Receta "Real" para la Optimización
¿Entonces, cómo protegemos la billetera?
- Cultura FinOps: El seguimiento de costos no es solo trabajo de contabilidad, también es del desarrollador. No puedes ser "Senior" sin saber cuántos dólares cuesta el código que escribes.
- Trampa de Granularidad: Dividir la aplicación en miles de funciones pequeñas (Nano-servicios) dispara los costos de gestión y comunicación. Haz agrupaciones lógicas.
- Configuraciones de Timeout: Los tiempos de espera (timeouts) predeterminados de 5 minutos son peligrosos. No querrás pagar la factura de una función que entra en un bucle erróneo.