Por qué seguimos pagando un VPS propio en vez de subirnos a la ola serverless

Hace un par de meses un cliente que lleva su propio ecommerce nos preguntó, medio en broma medio en serio, por qué seguíamos pagando un servidor cuando “todo el mundo” despliega en Vercel o Netlify y se olvida del tema. Buena pregunta. La respuesta corta es que no nos hemos olvidado del tema porque preferimos no olvidarnos del tema.
Preferimos un VPS propio a una plataforma serverless sobre todo porque el coste es predecible: pagamos una cuota fija cada mes en vez de por invocación de función, y no hay sorpresas de facturación cuando un proyecto recibe un pico de tráfico inesperado. La respuesta larga empieza en 2023, cuando movimos la primera versión de esta misma web a un VPS que compartimos entre varios proyectos pequeños de clientes. Pagamos alrededor de 12 euros al mes por una máquina que hoy sirve cuatro sitios distintos con Docker y nginx delante. En Vercel, solo el plan Pro ya cuesta 20 dólares por usuario y mes, y eso antes de que ningún proyecto empiece a generar tráfico de verdad o a usar funciones serverless con cierta frecuencia.
El argumento del ahorro convence a algunos clientes y a otros les da igual, la verdad. Lo que de verdad nos hizo quedarnos con el VPS fue un susto muy concreto. Un proyecto de un cliente del sector moda tuvo un pico de tráfico por una campaña de Instagram que nadie había planificado, y en la plataforma serverless que usábamos entonces (no fue Vercel, fue un proveedor anterior que ya ni existe con ese nombre) la factura de ese mes se disparó por encima de los 300 euros solo por invocaciones de funciones. El cliente no lo entendió. Y sinceramente yo tampoco lo entendí del todo hasta que me puse a leer la letra pequeña del pricing con calma, ya con el susto encima.
Desde entonces preferimos saber exactamente cuánto va a costar un mes, aunque eso signifique renunciar al autoescalado automático y a los deploys instantáneos que sí tiene Vercel. Nosotros hacemos build en un runner de GitHub Actions, empaquetamos en una imagen Docker, la subimos a un registry y el propio VPS, el mismo servidor que auditamos hace poco, hace el pull y reinicia el contenedor por SSH. Tarda entre dos y tres minutos, no es instantáneo, y si el runner de GitHub falla un jueves por la tarde (nos pasó hace tres semanas) alguien de aquí tiene que enterarse y mirarlo a mano en vez de confiar en que el sistema se recupere solo.
Eso es lo que casi nadie cuenta cuando defiende “vamos a lo simple, subimos a una plataforma y no tocamos infraestructura nunca más”: simple para quién. Para el desarrollador que hace el deploy, sí. Para el que tiene que explicarle a un cliente por qué la factura de este mes es tres veces la del mes pasado sin haber cambiado ni una línea de código — bastante menos.
No digo que un VPS sea la opción correcta para todo el mundo. Para un proyecto que arranca solo, sin presupuesto para mantenimiento, la capa gratuita de Vercel es sencillamente mejor. Pero para los clientes que llevamos en contratos de mantenimiento a largo plazo, poder decirles “esto cuesta X al mes y no va a cambiar aunque tengáis un pico de tráfico” pesa más que ahorrarnos media hora de configuración de nginx. Lo que todavía no tengo claro es si dentro de cinco años seguiré defendiendo lo mismo, o si para entonces el pricing serverless habrá madurado lo suficiente como para que este artículo quede desfasado.