Cuando la solución no escala

Imagen de Cuando la solución no escala

No toda solución escala. Algo puede funcionar muy bien para un tamaño pequeño pero apenas crece de tamaño ya no sirve.

Si una solución funciona para 5 personas ¿Funciona para 20? No, no siempre, puede que alguna sí, pero hay un problema, escalar nunca es lineal, no se amplifica sencillamente sino que se agregan variables, por ende escalar es transformativo.

Al introducir nuevas variables la solución inicial no las tenía en cuenta, por ende, la solución ya no aplica al problema grande, sólo al problema chico. Hace falta OTRA solución.

En sistemas tarde o temprano aprendemos esto, por ejemplo: un día instalás tu propio servidor, entran 20 personas por día a la página web que instalaste allí. Genial, anda perfecto.

Un dia entran 2000 personas en un minuto y tu sitio web está caído ¿Aumento la memoria RAM? Nada, sigue sin resolverse ¿Más CPU? Tampoco. La solución de atender a todos los visitantes sin caché, procesando la página, consultando la base de datos y entregando no escala. 

Para los nardos de sistemas esto tarde o temprano pasa y uno recurre a nuevas soluciones. Hay un punto en el que meterle más hardware no cubre el problema del software, ua no escala.

Entonces uno apela, por ejemplo, a cachear las consultas y las respuestas. Así no deberá impactar tanto a la base de datos ni deberá procesar el contenido antes de entregarlo.

Pero un día en vez de 2000 entran 1.000.000 personas al mismo tiempo. Ningún webserver pequeño puede ya no con procesar el pedido, siquiera con atenderlo, irá despachando de a uno mientras pueda, consumirá toda su memoria RAM y todo el CPU durante horas. Antes de que entregue ese millón de pedidos no habrá visitantes, timeouts por todos lados y la gente seguirá su camino.

Entonces ahí empieza a escalar la cosa, servidores replicados, distribución de carga, bases replicadas en distintos servidores, sincronización, CDN, todo un quilombo enorme pero que, a la larga, te permite atender millones de pedidos por segundo.

Como verán la solución de instalar un simple web server no escala linealmente y lo primero podías montarlo con un tutorial siguiendo pasos en un VPS de cinco dólares por mes y para lo último necesitás contratar un sysadmin, una empresa de servidores como Amazon o Microsoft y pagar una factura gigante. 

No vas a poder resolverlo con cien servidores de 5 dólares, o si lo hacés, felicitaciones: ahora vos sos el sysadmin y tenés un nuevo título y carrera 😁

Uso el ejemplo de sistemas pero esto se puede extender a cualquier otra cosa.

Desde construir una casa, apilando ladrillos se forma una pared, hasta construir un edificio de 50 pisos cumpliendo las normas de edificación, no, la pared ya no se hace igual, las vigas, el cálculo de fuerzas, la torsión, compresión, y un enorme trabajo de ingeniería. No es lo mismo, no escala.

De hecho, el único tipo de construcción que escala bastante bien es una pirámide perfecta 😜 pero en un punto ya no podrá crecer más, o se hunde en el terreno o el material se comprime sobre sí mismo y es más bien una montaña, pero escala! Todo lo demás requiere una nueva solución.

Si tu economía personal se resuelve con no gastar más de lo que ganás, bien por vos, pero eso no te transforma en Ministro de Economía de un país 🤪, bueno, creo que no hay nadie calificado pero la idea es la misma, las soluciones económicas hogareñas no son extensibles linealmente a las de un país, se parecen, sí, pero tienen MUCHAS más variables en juego.

Y así con todo, así que cuando te viene alguien a reducir tu problema en una solución simple, sin siquiera conocer las variables en juego, sin conocer al dimensión del problema y ni si la solución propuesta es del tamaño acorde al problema, no lo tomes literal. 

Seguramente NO es la solución pero podría ayudarte a mirar cierto camino. Analizando la propuesta y tu problema real, mirando con algo más de perspectiva, tal vez puedas encontrar una solución al problema en cuestión. Pero nunca podrás resolver un problemón con la solución de un problemita: no escala.


Volver al inicio Ver original

copyright©2024 Fabio Baccaglioni - Fabio.com.ar - Versión simplificada Old School