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 %.
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.
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:
- Azure Portal
- PowerShell
- Interfaz de la línea de comandos (CLI) multiplataforma
- API de REST de Azure Monitor
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:
- Iniciar un runbook de Azure Automation.
- Llamar a una función de Azure.
- Desencadenar una aplicación lógica de Azure.
Opciones de escala automática
La configuración de la escalabilidad automática incluye condiciones de escalado que definen reglas, límites y 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 la escalabilidad automática pone en marcha esta condición o perfil de escalado. 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. |
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:
- Tutorial: Escalado automático de un conjunto de escalado de máquinas virtuales con la CLI de Azure
- Tutorial: Escalado automático de conjuntos de escalado de máquinas virtuales con una plantilla de Azure
Servicios compatibles con el escalado automático
La escalabilidad automática admite los siguientes servicios.
Pasos siguientes
Para más información sobre el escalado automático, consulte los siguientes recursos:
- Métricas comunes de escalado automático de Azure Monitor
- Uso de acciones de escalado automático para enviar notificaciones de alerta por correo electrónico y Webhook en Azure Insights
- Tutorial: Escalado automático de un conjunto de escalado de máquinas virtuales con la CLI de Azure
- Tutorial: escalado automático de conjuntos de escalado de máquinas virtuales con Azure PowerShell
- Referencia de la CLI de escalabilidad automática
- Definición de recursos de plantilla de ARM
- Referencia de Az.Monitor de PowerShell
- Referencia de la API REST: configuración de la escalabilidad automática