No te dejes engañar por el serverless
(world.hey.com)- Un texto de DHH, creador de RoR
- Los fans de la nube dicen que todo —costos, rendimiento, complejidad, etc.— se resuelve como por arte de magia si te pasas a "serverless"
- La nube/VPS funciona según el principio de comprar al mayoreo y vender por partes
- Compras un servidor grande por $1000 y se lo arriendas a 7 personas por $200, obteniendo $400 de ganancia al mes
- Funciona bien si esas 7 personas no cargan mucho el servidor o si lo usan en horarios distintos
- Si necesitas toda la capacidad del servidor, terminas usando una computadora de $1000 por $1400
- Si te comprometes por 1 año, incluso puede haber descuento a $1250 al mes (básicamente un contrato de crédito con una tasa anual del 25%)
- Serverless es igual, pero permite dividir el servidor en partes mucho más pequeñas
- En vez de dar un gran servidor a 7 personas por $200 al mes, se lo ofrecen a 100 clientes que ejecutan funciones, a $20 al mes cada uno
- Ya no obtienen $400 de ganancia al mes, sino $1000
- No sorprende que a los proveedores de nube les encante serverless
- Está bien si solo necesitas unas cuantas funciones que se ejecutan de vez en cuando (al menos a corto plazo)
- Pero es terrible si estás en un nivel donde necesitas usar toda la capacidad de una computadora
- Porque pagas más por la misma velocidad de reloj y además el lock-in es enorme
- Mientras más uses servicios "cloud-native" en serverless, más difícil será salir de ahí
-
"No te dejes engañar por serverless. No hay ninguna magia que cambie el hecho de que, si necesitas todos los ciclos de cómputo de una computadora, tienes que comprar esa computadora. Si empiezas con una configuración serverless propietaria, vas a descubrir que no puedes escapar del lock-in"
-
"La nube es para empresas con cambios muy grandes en su uso, como Amazon, que tiene una demanda enorme en Black Friday y Navidad, y mucha capacidad ociosa el resto del tiempo, o para empresas que no tienen un negocio lo bastante grande como para justificar tener computadoras propias, o startups tempranas cuyo gasto en nube es tan bajo que no importa. Serverless no cambia eso."
8 comentarios
También influye si es o no un servicio con horas pico. En el caso de una app de reparto, claramente hay franjas horarias en las que se concentra la demanda, así que una nube que pueda escalar horizontalmente solo en esos momentos resulta atractiva. Pero en el ámbito de IoT, donde el 99% del tráfico es constante, puede ser mejor operar servidores físicos.
Parece que, más allá de la utilidad real de lo serverless, hay un aspecto que se está hypeando demasiado, así que creo que ofrece una perspectiva que vale la pena considerar.
Si uno reflexiona sobre estos dos temas y decide en función de eso, parece poco probable que termine fracasando en grande.
En lo personal, me da curiosidad si serverless es realmente la abstracción correcta; creo que eso lo demostrará el tiempo. Y en cuanto al problema del lock-in de serverless, seguirá siendo un dolor de cabeza, y me parece que es un problema de toda la industria que habrá que resolver, aunque no será fácil lograrlo.
Aunque no hay dinero, para una startup que todavía tiene menos gente y tiempo, me parece que lo serverless es una opción sumamente atractiva
Al final, este es un ámbito donde se pueden tomar decisiones racionales sobre oferta y demanda, así que no siento que se trate de engañar o ser engañado.
En el mercado, según el tamaño de la empresa, el tipo de industria y la clase de servicio, siempre habrá empresas y personas que necesiten de forma adecuada cloud, on-premise y serverless.
Que sea más conveniente pagar 200 dólares por un servidor o usar una function por 20 dólares es, al final, algo que cada CEO/CTO de cada empresa puede analizar y decidir de manera racional. Si lo urgente son los costos y los plazos, 20 dólares puede ser mejor; si hay un poco más de margen, una opción de 200 o 1000 dólares también puede ser una decisión razonable. Más bien, desde el punto de vista del demandante, tener más opciones para distintas situaciones no hace que sea algo mejor? Además, no es una tecnología monopólica, sino un mercado donde las grandes empresas compiten ferozmente, así que los precios seguirán bajando.
Sin un ingeniero de infraestructura dedicado (DevOps, SRE, platform engineer o similar), parece que el límite sería algo como AWS Fargate o GCP Cloud Run.
container as a service.Claro, incluso eso tendrá sus pros y sus contras...
Relacionado con esto, también hay un artículo que critica a AWS por cobrar tanto dinero por Lambda y, aun así, no mejorar el runtime como debería.
https://www.lastweekinaws.com/blog/aws-is-asleep-at-the-lambda-wheel/
Estoy de acuerdo.
Al ver el ciclo de actualizaciones de plataforma de Lambda y otros servicios de AWS, no me da la impresión de que sean ágiles, sino más bien de que son bastante conservadores o de que no invierten demasiados recursos. Supongo que será porque agregar versiones de la plataforma requiere muchas pruebas y, además, eso también aumentaría mucho los costos de soporte, así que probablemente priorizan la estabilidad y mantienen la cantidad de versiones de la plataforma dentro de cierto límite... pero es solo una suposición.
Como siempre, DHH es alguien que suele expresarse de forma bastante fuerte. Tómenlo en cuenta jaja