Introducción a la escalabilidad automática en Azure

En este artículo se describe la característica de escalabilidad automática en Azure Monitor y sus ventajas.

La escalabilidad automática admite muchos tipos de recursos. Para obtener más información sobre los recursos admitidos, consulte Recursos compatibles con la escalabilidad automática.

Nota

Los conjuntos de disponibilidad son una característica de escalado anterior para máquinas virtuales con compatibilidad limitada. Para poder usar la escalabilidad automática de manera más rápida y confiable, se recomienda migrar a Azure Virtual Machine Scale Sets.

¿Qué es el escalado automático?

La escalabilidad automática es un servicio que puede usar para agregar y quitar automáticamente recursos según la carga de la aplicación.

Cuando la aplicación experimenta una carga mayor, el escalado automático agrega recursos para controlar la mayor carga. Cuando la carga es baja, la escalabilidad automática reduce el número de recursos, lo que reduce los costos. Puede modificar la escala de la aplicación en función de métricas, como el uso de CPU, la longitud de la cola y la memoria disponible. También puede modificar la escala en función de una programación. Las métricas y las programaciones se configuran en reglas. Las reglas incluyen un nivel mínimo de recursos que necesita para ejecutar la aplicación y un nivel máximo de recursos que no se superarán.

Por ejemplo, escale horizontalmente la aplicación agregando máquinas virtuales cuando el uso medio de CPU por máquina virtual sea superior al 70 %. Vuelva a modificar la escala para quitar VM cuando el uso de CPU baje al 40 %.

A diagram that shows scaling out by adding virtual machine instances.

Cuando se cumplen las condiciones de las reglas, se desencadenan una o varias acciones de escalado automático, agregando o quitando máquinas virtuales. Además, puede realizar otras acciones, como enviar correos electrónicos, notificaciones o webhooks para desencadenar procesos en otros sistemas.

Escalado horizontal frente a escalado vertical

La escalabilidad automática se reduce o amplía, u horizontalmente. El escalado horizontal es un aumento o disminución del número de instancias de recursos. Por ejemplo, para un conjunto de escalado de máquinas virtuales, el escalado horizontal significa agregar más máquinas virtuales. La reducción horizontal significa quitar máquinas virtuales. El escalado horizontal es flexible en un entorno en la nube, ya que se puede usar para ejecutar una gran cantidad de VM para administrar la carga.

El escalado automático no es compatible con el escalado vertical. Por el contrario, el escalado ascendente y descendente, o el escalado vertical, mantiene constante la misma cantidad de instancias de recursos, pero les brinda más capacidad en términos de memoria, velocidad de CPU, espacio en disco y red. El escalado vertical está limitado por la disponibilidad de hardware más grande, que finalmente alcanza un límite superior. La disponibilidad del tamaño de hardware varía en Azure por región. El escalado vertical también puede requerir un reinicio de la VM durante el proceso de escalado.

A diagram that shows scaling up by adding CPU and memory to a virtual machine.

Cuando se cumplen las condiciones de las reglas, se desencadenan una o varias acciones de escalado automático, agregando o quitando máquinas virtuales. Además, puede realizar otras acciones, como enviar correos electrónicos, notificaciones o webhooks para desencadenar procesos en otros sistemas.

Escalabilidad automática predictiva

La escalabilidad automática predictiva usa el aprendizaje automático para ayudar a administrar y escalar conjuntos de escalado de máquinas virtuales con patrones de carga de trabajo cíclicos. Prevee la carga total de CPU en el conjunto de escalado de máquinas virtuales, en función de los patrones de uso de CPU históricos. A continuación, el conjunto de escalado se puede escalar horizontalmente a tiempo para satisfacer la demanda prevista.

Configuración del escalado automático

Puede configurar el escalado automático en los siguientes lugares:

Architecture

En el siguiente diagrama se muestra la arquitectura de escalado automático.

Diagram that shows autoscale flow.

Métricas de los recursos

Los recursos generan métricas que se usan en reglas de escalado automático para desencadenar eventos de escalado. Los conjuntos de escalado de máquinas virtuales usan datos de telemetría de los agentes de diagnóstico de Azure para generar métricas. La telemetría para la característica Web Apps de Azure App Service y Azure Cloud Services procede directamente de la infraestructura de Azure. Algunas de las métricas que más se utilizan son el uso de CPU, el uso de memoria, el número de subprocesos, la longitud de la cola y el uso del disco. Para obtener una lista de las métricas disponibles, consulte Métricas comunes de escalado automático.

Métricas personalizadas

Use sus propias métricas personalizadas que genera la aplicación. Configure la aplicación para enviar métricas a Application Insights para que pueda usar esas métricas para decidir cuándo modificar la escala.

Time

Configure reglas basadas en programación para desencadenar eventos de escalado. Use reglas basadas en programación cuando vea patrones de tiempo en la carga y quiera modificar la escala antes de que se produzca un cambio previsto en la carga.

Reglas

Las reglas definen las condiciones necesarias para desencadenar un evento de escalado, la dirección del escalado y la cantidad por la que se va a escalar. Combine varias reglas mediante métricas diferentes, como el uso de CPU y la longitud de la cola. Defina hasta 10 reglas por perfil.

Las reglas pueden ser:

  • Basado en métricas: Desencadenador basado en un valor de métrica, por ejemplo, cuando el uso de CPU es superior al 50 %.
  • Basado en tiempo: Desencadenador basado en una programación, por ejemplo, cada sábado a las 8:00 a. m.

La escalabilidad automática escala horizontalmente si se cumple alguna de las reglas. La escalabilidad automática reduce horizontalmente si se cumplen todas las reglas En términos de operadores lógicos, el operador OR se usa para escalar horizontalmente con varias reglas. El operador AND se usa para reducir horizontalmente con varias reglas.

Acciones y escalado automático

Las reglas pueden desencadenar una o más acciones. Las acciones incluyen:

  • Modificar la escala: Escale o reduzca horizontalmente los recursos.
  • Enviar correo electrónico: Envíe un correo electrónico a los administradores y coadministradores de la suscripción, así como a otras direcciones de correo electrónico.
  • Webhooks: Llame a webhooks para desencadenar varias acciones complejas dentro o fuera de Azure. En Azure, ahora puede:

Opciones de escala automática

La configuración de escalado automático contiene la configuración de escalado automático. La configuración incluye las condiciones de escalado que definen reglas, límites, programaciones y notificaciones. Defina una o varias condiciones de escalado en la configuración y una configuración de notificación.

El escalado automático utiliza la siguiente terminología y estructura.

UI JSON/CLI Descripción
Condiciones de escalado profiles Recopilación de reglas, límites de instancia y programaciones, en función de una métrica o un tiempo. Puede definir una o varias condiciones de escalado o perfiles. Defina hasta 20 perfiles por configuración de escalabilidad automática.
Reglas reglas Conjunto de condiciones basadas en el tiempo o métricas que desencadena una acción de escalado. Puede definir una o varias reglas para las acciones de escalado y reducción horizontal. Defina un total de hasta 10 reglas por perfil.
Límites de instancia capacity Cada condición o perfil de escalado define el número predeterminado, máximo y mínimo de instancias que se pueden ejecutar en ese perfil.
Programación recurrence Indica cuándo el escalado automático debe hacer entrar en vigor el perfil. Puede tener varias condiciones de escalado, lo que le permite controlar requisitos diferentes y superpuestos. Por ejemplo, puede tener diferentes condiciones de escalado para distintos momentos del día o días de la semana.
Notificar notificación Define las notificaciones que se van a enviar cuando se produce un evento de escalado automático. Con la escalabilidad automática se pueden notificar a una o más direcciones de correo electrónico o realizar llamadas mediante uno o más webhooks. Puede configurar varios webhooks en JSON, pero solo uno en la interfaz de usuario.

Diagram that shows Azure autoscale setting, profile, and rule structure.

La lista íntegra de campos y descripciones configurables se encuentra en la API de REST de escalado automático.

Para ver ejemplos de código, consulte los siguientes artículos:

Servicios compatibles con el escalado automático

La escalabilidad automática admite los siguientes servicios.

Servicio Esquema y documentación
Azure Virtual Machines Scale Sets Introducción a la escalabilidad automática con conjuntos de escalado de máquinas virtuales de Azure
Característica Web Apps de Azure App Service Escalado en Web Apps
Servicio de Azure API Management Escalado automático de una instancia de Azure API Management
Clústeres de Azure Data Explorer Administración del escalado de clústeres de Azure Data Explorer para ajustarse a los cambios en la demanda
Azure Stream Analytics Unidades de streaming de escalabilidad automática (versión preliminar)
Azure SignalR Service (nivel Premium) Escalabilidad automática de unidades de una instancia de Azure SignalR Service
Área de trabajo de Azure Machine Learning Escalabilidad automática de un punto de conexión en línea
Azure Spring Apps Configuración de la escalabilidad automática para aplicaciones
Azure Media Services Escalado automático en servicios multimedia
Azure Service Bus Actualización automática de las unidades de mensajería de un espacio de nombres de Azure Service Bus
Azure Logic Apps: entorno del servicio de integración (ISE) Agregar capacidad ISE

Pasos siguientes

Para más información sobre el escalado automático, consulte los siguientes recursos: