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.

Si te gustó esta nota podés...
Invitame un café en cafecito.app

Categoría: General Etiquetas:  escala ideas opinión rant solución soluciones

Otros posts que podrían llegar a gustarte...

Comentarios

  • Cattel     21/09/2022 - 12:49:20

    Es un tema fascinante por fuera de los sistemas, por ejemplo me intriga mucho con esas empresas o comercios que arrancan a escala familiar y en algún momento tienen que escalar a tener sucursales, depósitos, decenas de empleados. Esa transición es muy peligrosa porque de pronto pasas de controlar todas las variables a hacer un salto de fe para delegar un montón de cosas.

  • furoya     21/09/2022 - 13:30:21

    Hay métodos que no tienen arreglo. Pensaba en el anarquismo, que funciona en un pueblo, una aldea, pero a medida que incorporamos más gente ya es inmanejable. Si crece deja de ser anarquismo.
    Aunque como concepto filosófico se puede mantener.

  • Danbat     21/09/2022 - 15:08:12

    Caso de los microemprendimientos familiares, como menciona Cattel. Arrancás con una mínima inversión, empieza a andar, crecen los pedidos, pasás de comprar unos insumos sueltos a ir al mayorista y comprar en cantidad por ML. Invertís en muebles y máquinas y vas depurando la organización. Optimizás tiempos, flujos de trabajo y distintos stocks.

    Hasta que, de pronto, no podés crecer más.

    Mi esposa tiene un emprendimiento, Desayunos Bariloche, que viene creciendo de manera sostenida desde que inició hace varios años. Ha llegado al límite de la escalabilidad hogareña. ¿Y ahora? Cualquier cosa que pensamos implica una inversión importante en todo sentido y es difícil pensar algo así en este país.

    Pero, por el otro lado, tenemos un amigo que también arrancó en la cocina de su casa y viene escalando de manera sostenida prácticamente sin techo a la vista. Su emprendimiento es diferente y demuestra que nunca se puede simplificar y que no hay un método "mágico" para crecer al infinito.

  • Arbitror     22/09/2022 - 17:34:02

    Pasa también a nivel carrera. Gente que son unos crack solos, le dan un sector y andan bárbaro, después una gerencia...y cuando están con mucha responsabilidad y gente a cargo no dan pie con bola y los terminan rajando

  • CoYo     25/09/2022 - 03:08:02

    Justo en estos días me he topado con esa clase de problemas y como dicen varios, depende mucho del problema puntual.
    Las reglas de oro son "divide y conquistaras" y "keep it simple".
    Tengo CDNs, donde, para escalar, lo mejor es dividir las cargas entre varios equipos (que en realidad utilizan su ancho de banda mas que otra cosa) y los escalo de a 5 dolah! (si, se puede, con 100 vps de 5 dolares, atender miles de pedidos sin sobrecargar nada)
    Pero el verdadero secreto (o lo que hace que puedas usar pocos recursos) es el "keep it simple" (mantenelo simple).
    Esto, viene de vicios de las épocas donde 1kb era un montón. Ahí aprendes a mover el mínimo necesario, correr los procesos mínimos y mas simples posible, haciendo que, un host de 2 mangos, escupa como una ferrari.
    Hoy, donde 2mb no es nada, es un error pensar en mover tanto dato, si con 2k (si la pensás bien) quizás, haces lo mismo. En esto, siempre, menos es mas.
    Ejemplo:
    Poné una bestia de host, a hacer 1 tarea pesada, y seguro se rompe.
    Poné el mismo host a hacar 1000 tareas simples, y vuela.
    Pone 1000 host pedorros a hacer 1000 tareas simples, y la bestia muerde el polvo.
    Todo es escalable, dependiendo de la tarea y la habilidad del arquitecto para diseñar la escala.

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https

Negrita Cursiva Imagen Enlace


Comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador. Los comentarios son filtrados por ReCaptcha V3.