Ir al contenido

Cómo funciona el autoscaling

En la computación en la nube es muy importante gestionar la disponibilidad y el rendimiento de las plataformas, algo que depende directamente de la carga de tráfico que soportan en cada momento. Para poder gestionar bien el rendimiento se utilizan diferentes métodos como el balanceo de carga o el autoescalado.

AWS autoscaling es una herramienta que permite asignar siempre los recursos adecuados en el momento correcto para que las aplicaciones puedan funcionar de forma adecuada. Todo ello se forma automática, teniendo en cuenta los recursos necesarios en cada momento, gracias a una política de escalado predefinida.

Qué es el autoscaling

El autoscaling o autoescalado se utiliza en el cloud computing para ajustar automáticamente los recursos según la carga que se soporta en cada momento. A más carga de trabajo, un mayor número de servidores se activan, si la carga disminuye ocurre lo contrario, todo ello gestionado de forma automática.

Con AWS autoscaling se añaden o quitan instancias VM de un grupo de instancias administrado de manera automática según la variación de carga. Para que este ajuste automático sea eficiente es necesario definir una política de ajuste de escalado adecuada.

Gracias al autoscaling los usuarios pueden disponer de los recursos informáticos (memoria, red o capacidad de proceso) que necesiten según lo exijan los picos de tráfico o patrones de uso. Este sistema permite cumplir con uno de los objetivos que persigue la computación en la nube, que los usuarios solo paguen por lo que necesiten (aplicaciones o infraestructuras a las que acudir cuando sea necesario).

Balanceo de carga y autoescalado, ¿es lo mismo?

Aunque el concepto es similar, el autoescalado incrementa o disminuye los recursos (el número de servidores en funcionamiento) dependiendo de la carga de cada momento, mientras que el balanceo de carga distribuye de forma óptima las distintas peticiones entre los distintos servidores, incrementando el rendimiento de las aplicaciones.

Es habitual utilizar el autoescalado junto al balanceo de carga para optimizar los costos de la infraestructura  e incrementar el nivel de desempeño.​

Cómo funciona el autoscaling

El autoscaling comienza con una configuración de lanzamiento donde se definen los recursos informáticos que se necesitan inicialmente para la carga de trabajo que se espera. Luego se define una política de escalado donde se indican los valores que permitan al servicio escalar hasta una cantidad máxima especificada para satisfacer una demanda.

Siguiendo esta política de escalado se activa el proceso automático de escalado cuando es necesario y se realiza el ajuste correspondiente, también indicado en la propia política. 

Por qué es necesaria una política de escalado  

Especificar una política de escalado es fundamental para poder realizar el ajuste automático de recursos de forma óptima. En esta política se definen los distintos indicadores que deben tenerse en cuenta como el uso de CPU o el ancho de banda, fijando las métricas de escalado y los valores del umbral en el que se activa el proceso de escalado.  

En una política de escalado se puede especificar el tipo de ajuste a realizar como un porcentaje de la capacidad actual (si la capacidad actual es 20 y el ajuste es del 20 %. El autoscaling añade 2 a la capacidad para un total de 22, por ejemplo): También se puede ajustar utilizando números absolutos (si la capacidad es 15 y el ajuste es 5, se añaden esos 5 para un total de capacidad de 20).

Qué es un grupo de autoescalado

En AWS se pueden crear grupos de autoescalado que consisten en agrupar varias instancias que comparten características similares, tratándose como un grupo lógico a la hora de administrar las instancias. Este tipo de grupos se crean de forma muy sencilla en consola utilizando el comando “create auto scaling group” en AWS, y son una forma óptima de incrementar o disminuir los recursos cloud necesarios en el proceso de autoescalado.

Qué beneficios aporta el autoescalado

El autoescalado es fundamental para que las aplicaciones en la nube entreguen un rendimiento óptimo y tengan el nivel de accesibilidad adecuado en diferentes condiciones.

Las ventajas del autosca​ling son:

Mantener siempre niveles óptimos de disponibilidad y desempeño

El autoescalado es fundamental en el cloud computing para garantizar el nivel de desempeño en todo momento, incluso cuando las cargas de trabajo sean impredecibles o se modifiquen continuamente.

Este sistema realiza un monitoreo continuo de las aplicaciones para verificar si están funcionando de acuerdo a los niveles de desempeño definidos, y ajustar los recursos cuando la demanda se incrementa o reducirlos si disminuye.

Acelera los tiempos

Cuando se activa una alerta sobre la necesidad de más recursos por un exceso de carga, el sistema de autoescalado actúa de forma inmediata realizando los procesos necesarios para incrementar el número de servidores activos y los recursos disponibles.

Esta reacción automática permite reaccionar de forma inmediata ante nuevas demandas sin que se produzcan periodos de sobrecarga con un funcionamiento lento o no óptimo de las aplicaciones cloud.

Mejora la toma de decisiones

Ajustando la política de escalado se garantiza que el sistema incremente o disminuya los recursos de forma óptima cuando sea necesario. No será necesario realizar una valoración en cada momento para tomar la decisión de aumentar o disminuir los recursos, ya que la propia política incluye la información necesaria para saber cuándo actuar y que aumento o disminución hay que realizar.

Reducción de costes

Con el autoscaling se reducen los costes de la computación en la nube al realizar una gestión óptima de los recursos disponibles. AWS autoscaling permite solicitar spot instances con grandes descuentos, facilitando una reducción significativa en los costos del uso de su servicio (ya que son instancias que no están siendo utilizadas y que se ofrecen a un precio inferior al precio bajo demanda).

Qué tipos de autoscaling existen

Existen diferentes tipos de autoescalado que se pueden utilizar para gestionar y controlar el rendimiento de las aplicaciones y plataformas cloud:

  • Número de instancias fijo (Maintain Current Instance Levels). Con este sistema se mantiene un número mínimo o especificado de instancias activas al mismo tiempo. Si alguna deja de funcionar o no lo hace de forma óptima, es automáticamente sustituida por una nueva.
  • Escalado manual (Manual Scaling). Es la forma básica de autoescalado donde solo es necesario especificar el valor máximo, mínimo u óptimo a escalar.
  • Escalamiento por fecha (Scheduled Scaling). Se utiliza cuando es necesario incrementar los recursos en un día y hora específico (por ejemplo, en el lanzamiento de un nuevo producto donde se espera un gran incremento del tráfico)
  • Escalamiento dinámico (Dynamic scaling). Quizás es el tipo de autoescalado más interesante, ya que permite controlar el proceso de escalado mediante políticas.

El autoscaling es un método que permite optimizar el uso de los recursos cloud para poder ahorrar costes, ser más eficientes y ofrecer mayor calidad de servicio. Todo ello de forma automática, incrementando o disminuyendo los recursos según la demanda o carga de cada momento.

Compartir esta publicación
Nuestros blogs
Los principios DevOps: The Three Ways