{"id":32,"date":"2015-05-16T17:30:00","date_gmt":"2015-05-16T15:30:00","guid":{"rendered":"http:\/\/63.33.187.195:8080\/?p=32"},"modified":"2020-10-08T20:31:38","modified_gmt":"2020-10-08T18:31:38","slug":"escalar-aplicaciones-bendito-problema","status":"publish","type":"post","link":"http:\/\/dev.arturobayo.com:8080\/escalar-aplicaciones-bendito-problema\/","title":{"rendered":"Escalar aplicaciones, bendito problema"},"content":{"rendered":"\n
Lanzar una aplicaci\u00f3n a producci\u00f3n<\/strong> conlleva sus riesgos, pero cuando coge la tracci\u00f3n adecuada se convierte en un gran logro. A todos nos gusta ver c\u00f3mo aumenta el n\u00famero de visitantes o seguidores<\/strong> a una velocidad pasmosa, \u00bfno? Pero \u00bfqu\u00e9 ocurre cuando el tr\u00e1fico se incrementa tanto que causa una ca\u00edda en la infraestructura de servidores que soporta la aplicaci\u00f3n<\/strong>? No importa qu\u00e9 hora o d\u00eda sea, el coste de tener tu aplicaci\u00f3n offline es demasiado alto, y en muchos casos podr\u00eda hasta originar p\u00e9rdidas irreversibles<\/strong> al negocio o empresa.<\/p>\n\n\n\n Si esto ocurre, \u00a1que no cunda el p\u00e1nico<\/em>! Siempre hay maneras de solucionar cualquier problema, y en este caso la soluci\u00f3n pasa por hacer que tu aplicaci\u00f3n sea mucho m\u00e1s fiable y consistente<\/strong>. En el mundo real decimos que \u201cla uni\u00f3n hace la fuerza<\/em>\u201c, en la inform\u00e1tica hablaremos de aumentar la \u201cescalabilidad<\/strong>\u201d de tu aplicaci\u00f3n.<\/p>\n\n\n\n En general, la escalabilidad es la cualidad de un sistema de soportar un incremento considerable en carga de procesamiento<\/strong> y acomodarse a ello mientras mantiene una experiencia de usuario excelente. Existen dos maneras de escalar un sistema: verticalmente<\/strong> y horizontalmente<\/strong>.<\/p>\n\n\n\n El escalado vertical<\/strong> es el m\u00e9todo m\u00e1s simple de solventar el problema de rendimiento. Cuando nos quejamos de que el viejo ordenador de casa funciona muy lento, enseguida pensamos en aumentar sus caracter\u00edsticas incrementando la cantidad de memoria RAM, cambiando el procesador o incluso considerando la opci\u00f3n de comprar uno nuevo. Esto es, a grandes rasgos, la definici\u00f3n de escalar verticalmente. Sin embargo, a pesar de que puede ser una soluci\u00f3n inmediata al problema realmente podr\u00edamos estar ocultando la problem\u00e1tica subyacente del sistema, no hay garant\u00edas de que un servidor doblemente potente ejecutar\u00e1 la aplicaci\u00f3n el doble de r\u00e1pido.<\/p>\n\n\n\n El escalado horizontal<\/strong>, por otro lado, se logra a\u00f1adiendo m\u00e1s servidores al cluster existente. Es en este m\u00e9todo donde aplicamos la frase c\u00e9lebre de la escalabilidad que coment\u00e1bamos antes \u00bfpero qu\u00e9 significa esto exactamente?<\/p>\n\n\n\n Un cluster<\/strong> es simplemente una agrupaci\u00f3n de servidores. Un balanceador de carga<\/strong> distribuye la carga de trabajo entre los servidores de un cluster. En alg\u00fan punto, un nuevo servidor puede ser a\u00f1adido al cluster existente para manejar m\u00e1s cantidad de carga de los procesos que requieren uso y acceso a tu aplicaci\u00f3n: esto es el escalado horizontal.<\/p>\n\n\n\n Centr\u00e1ndonos en el mundo de internet y en las tecnolog\u00edas web, a\u00f1adir un nuevo servidor a tu arquitectura va a permitir desahogar la saturaci\u00f3n de carga existente en un servidor debido al incremento puntual (o natural) de tr\u00e1fico en el tiempo.<\/p>\n\n\n\n