A menudo, cuando un sistema empieza a ralentizarse bajo carga, la primera reacción es añadir más servidores. Parece lógico: duplicar la capacidad de cómputo debería duplicar el rendimiento. Sin embargo, la realidad es más sutil y peligrosa. En este artículo analizamos un experimento real que demuestra cómo duplicar servidores puede arruinar la disponibilidad si no se escala la capa de datos. Este error es especialmente común en proyectos que crecen rápido sin una arquitectura bien planificada, y precisamente por eso es fundamental contar con aplicaciones a medida que contemplen la escalabilidad desde el diseño.
El experimento enfrentó dos arquitecturas: un único servidor Node.js conectado a una base de datos MongoDB, frente a dos servidores Node.js detrás de un balanceador Nginx, ambos apuntando a la misma base de datos. Las pruebas con k6 inyectaron desde 100 hasta 2000 usuarios concurrentes. Los resultados fueron reveladores. Con un solo servidor, el sistema procesó 176.584 solicitudes con un p95 de latencia de 796 ms y una tasa de éxito del 100%. Era lento pero estable. Al agregar el segundo servidor, el throughput subió a 3.638 solicitudes por segundo y la latencia p95 cayó a 492 ms. Sin embargo, el 26,57% de las peticiones fallaron (93.069 errores), con timeouts de hasta 36 segundos. La disponibilidad se derrumbó.
¿Qué ocurrió? Al eliminar el cuello de botella en la capa de cómputo, el tráfico se duplicó hacia la base de datos, agotando su pool de conexiones. El sistema comenzó a rechazar peticiones y a generar errores HTTP 500. Este fenómeno ilustra la tensión fundamental entre rendimiento y escalabilidad: mejorar métricas como la latencia para una fracción de usuarios puede ocultar una catástrofe de disponibilidad para el resto. Es lo que llamamos sesgo de supervivencia: solo medimos las peticiones que lograron conexión, ignorando las que fracasaron.
La lección es clara: escalar de forma aislada es peligroso. Para que un sistema crezca sin perder disponibilidad, debe hacerlo de manera holística. Esto implica escalar también la base de datos (sharding, réplicas) o introducir colas asíncronas que desacoplen la ingesta del procesamiento. Además, es crucial monitorizar en tiempo real los indicadores clave como latencia, tasa de error y utilización de recursos. Aquí entran en juego los servicios cloud aws y azure, que ofrecen escalado automático y balanceo de cargas gestionado, pero siempre requieren un diseño consciente de los límites de cada capa.
En Q2BSTUDIO somos especialistas en crear software a medida que prioriza la resiliencia. Nuestro enfoque combina inteligencia artificial para anticipar picos de demanda, agentes IA que automatizan la gestión de recursos y servicios de inteligencia de negocio con Power BI para monitorizar el estado del sistema. También integramos ciberseguridad desde la arquitectura, protegiendo los datos incluso bajo alta concurrencia. Ya sea mediante ia para empresas o desarrollando aplicaciones a medida, nuestro objetivo es que duplicar servidores no signifique duplicar problemas, sino ofrecer un crecimiento real y fiable.
En conclusión, el experimento demuestra un principio clásico de sistemas distribuidos: la disponibilidad y el rendimiento pueden entrar en conflicto cuando los recursos compartidos no se escalan adecuadamente. La próxima vez que su sistema muestre signos de lentitud, antes de añadir más servidores, revise si su base de datos está preparada para soportar el nuevo tráfico. Una arquitectura bien diseñada, junto con el asesoramiento de expertos, es la única forma de garantizar que la escalabilidad no se convierta en una ilusión costosa.

.jpg)

.jpg)