Technology solutions that boost business performance

Contact
MX: Insurgentes Sur 318, Roma Norte
Cuauhtemoc (06700), CDMX, Mexico ARG: Juramento 1475, Piso 12, oficina 8
Belgrano (C14 28DMQ), CABA Argentina

Cómo hacer para evitar las caídas constantes de un sitio Web con auto escalamiento

error-page

Si su empresa experimenta caídas constantes, muy probablemente se deba a algún cuello de botella que mantiene a su sitio o aplicación en un estado de operación casi insostenible.

Relacionado: Cinco errores que debes evitar en este Hot Sale.

Una solución común es tener almacenamiento sobredimensionado, servidores o instancias que cuenten con más recursos como memoria, espacio en disco y procesador, que exceden las necesidades reales del servicio o aplicaciones. A pesar de ser una solución común, no es la más inteligente ya que si los picos de tráfico se resumen a unas cuantas horas al día, el resto del tiempo se gasta por recursos no utilizados, que no se pueden reducir ni aumentar.

Otra solución mucho más asertiva a las caídas de sitios web por cuellos de botella, es el auto escalamiento. Aunque la ejecución no es tan fácil, puede traer muchos más beneficios de los que espera a corto, mediano y largo plazo. Veamos algunos de ellos:

  • Mayor disponibilidad en el servicio. Una estrategia de auto escalamiento permite mantener siempre la capacidad y el procesamiento adecuado en todo momento que la demanda aumente o disminuya. En otras palabras: si su sitio tiene poco tráfico a las 2 de la madrugada, el auto escalamiento mantendrá los recursos al mínimo en ese horario, pero si a las 3 de la tarde tiene un pico de tráfico muy alto, el sistema incrementará los recursos con base en la demanda.
  • Ahorro de costos. Una infraestructura tradicional cuenta con ciertos recursos reservados por los que un cliente paga una tarifa plana, pero al encontrarse en una instancia en la nube, los costos pueden bajar o subir con base en el uso que se le dé, por lo que nunca se pagará por un espacio no utilizado El auto escalamiento permite ahorrar mejor; el sistema puede crear nuevas instancias y eliminarlas en cuanto se requieran, lo que garantiza nunca tener recursos desaprovechados ni pagar por aquello que no usas.
  • Tolerancia ante fallos. Un sistema de auto escalamiento puede detectar cuando una instancia tiene problemas, está en mal estado o está por llegar a su límite operativo. Esto no se resume a sólo poder identificar fallos o posibles fuentes de errores, también puede reemplazar instancias con errores o en mal estado, iniciar instancias bajo demanda, incluso lanzar instancias en diferentes zonas de disponibilidad, lo que garantiza una resistencia ante fallos sin igual.

Como se puede apreciar, las virtudes del auto escalamiento giran en torno a una mayor disponibilidad de las aplicaciones y servicios, sin olvidar la optimización de costos como un factor decisivo que puede impulsar mejoras en diferentes ámbitos. Incluso brindará la posibilidad de invertir ese dinero ahorrado en el desarrollo de otras mejoras.

¿Qué escalamiento es mejor según la necesidad?

Existen diferentes tipos de escalamiento y, dependiendo de sus necesidades puede optar un escalamiento horizontal, vertical o sharding: cada uno está orientado a diferentes estrategias y en conjunto pueden ser utilizados en el auto escalamiento.

Escalamiento vertical

Escalamiento vertical. Cuando una máquina está a punto de sobrepasar su capacidad operativa, el escalamiento vertical se encarga de agregarle recursos, principalmente procesador, memoria y espacio en disco. Hay que notar que este procedimiento no es tan simple como sumar memoria, en realidad lo que se hace es crear una nueva máquina con características superiores, copiar los datos existentes en ella y eventualmente eliminar la anterior.

Escalamiento horizontal. Esta metodología consiste en duplicar las instancias que existen y distribuir el tráfico entre cada una de ellas, de manera que se evite la saturación individual y, entre mayor sea el tráfico, más instancias se crearán para evitar que el servicio se caiga.

Sharding. Mayormente usado en bases de datos, el Sharding consiste en particionar los datos existentes en una instancia y compartirlos entre instancias, mientras que las consultas pueden ser manejadas por medio de un API que hará transparente todas las peticiones. La virtud del sardina radica en que entre más datos se tengan almacenados, más instancias se crearán, cada instancia con sus propios recursos impedirá que exista un cuello de botella, de manera que una gran piscina de datos puede ser consultada con la rapidez de una base de datos sencilla.

Cabe destacar que estas metodologías se llevan a cabo entre máquinas virtuales o instancias en la nube, la razón es simple: El escalamiento de una máquina hospedada en con un proveedor de hosting tradicional implica la migración a otra máquina con procesador, disco y memoria. En este tipo de proveedores implica una ventana de mantenimiento que sólo el proveedor puede controlar bajos sus esquemas de negocio que quizás no empaten con los requerimientos actuales de escalamiento. Entonces es mucho más sencillo aumentar los recursos de una máquina virtual, clonarla o dividir la información entre varias máquinas en la nube.

Automatización al alcance

AWS, Azure e IBM Cloud cuentan con robustas soluciones de escalamiento automático para instancias en la nube.

AWS tiene integrado el servicio EC2 Auto Scaling, que puede cubrir una demanda variable para aplicaciones y sitios que tengan tráfico impredecible o fluctuante y puede funcionar en diferentes capas de las aplicaciones si es que está dividida en microservicios. Para más información consulta la documentación de AWS en su documentación.

En cuanto Azure cuenta con varios servicios como Virtual Machine Sets, Service Fabric, Azure App Service o el auto escalamiento integrado en Azure Cloud Services. Todos estos servicios funcionan a diferentes niveles y obedecen a distintas necesidades, para más información consulta la documentación en el sitio de Microsoft

IBM cuenta con una solución específica para auto escalar aplicaciones web, además de soluciones conjuntas que están orientadas a un mejor nivel de disponibilidad. Puedes consultar más acerca de las soluciones de IBM para alta disponibilidad en su página de metodologías operativas.

En cualquiera de los casos tendrá que establecer umbrales de escalamiento en los que, dependiendo de las condiciones que se acomoden a tu sitio o aplicación, creará o eliminará instancias cuando el tráfico fluctúe.

Comienza a disfrutar de los beneficios del auto escalamiento.

Según Gartner, las pérdidas por tiempo fuera de servicio, en promedio ascendían a 300 mil dólares la hora ¿Has cuantificado cuánto es lo que pierdes cada vez que se cae tu sitio web?

El auto escalamiento revolucionará la operación de su negocio, ya que le ayudará en la evolución de tu tecnología al desplegar su infraestructura en la nube, mantener sus servicios siempre disponibles y optimizar los costos según las necesidades operativas de su empresa.

Comment (1)

Dos recursos clave que tiene que saber para optimizar su servicio en la Nube. - Blog Nubity
September 26, 2019
Reply

[…] Relacionado: Cómo hacer para evitar las caídas constantes de un sitio Web con auto escalamiento […]

Leave a Comment

English