Información general de la funcionalidad de escalado automático de Microsoft Azure Virtual Machines, Cloud Services y Web AppsOverview of autoscale in Microsoft Azure Virtual Machines, Cloud Services, and Web Apps

En este artículo se explican el concepto del escalado automático de Microsoft Azure y las ventajas que aporta, y se realiza una introducción para empezar a usarlo.This article describes what Microsoft Azure autoscale is, its benefits, and how to get started using it.

La escalabilidad automática de Azure Monitor solo se aplica a Virtual Machine Scale Sets, Cloud Services, App Service - Web Apps y los servicios de API Management.Azure Monitor autoscale applies only to Virtual Machine Scale Sets, Cloud Services, App Service - Web Apps, and API Management services.

Nota

Azure tiene dos métodos de escalado automático.Azure has two autoscale methods. Una versión anterior del escalado automático se aplica a Virtual Machines (conjuntos de disponibilidad).An older version of autoscale applies to Virtual Machines (availability sets). Esta característica tiene una compatibilidad limitada, por lo que, para poder usar el escalado automático de manera más rápida y fiable, recomendamos la migración a los conjuntos de escalado de máquinas virtuales.This feature has limited support and we recommend migrating to virtual machine scale sets for faster and more reliable autoscale support. En este artículo, se incluye un vínculo sobre cómo utilizar la tecnología antigua.A link on how to use the older technology is included in this article.

¿Qué es el escalado automático?What is autoscale?

Gracias al escalado automático, puede ejecutar la cantidad correcta de recursos para administrar la carga de la aplicación.Autoscale allows you to have the right amount of resources running to handle the load on your application. Permite agregar recursos para controlar el aumento de la carga y ahorrar dinero mediante la eliminación de recursos inactivos.It allows you to add resources to handle increases in load and also save money by removing resources that are sitting idle. Especifique un número mínimo y máximo de instancias para ejecutar y agregue o quite máquinas virtuales automáticamente en función de un conjunto de reglas.You specify a minimum and maximum number of instances to run and add or remove VMs automatically based on a set of rules. Tener un mínimo garantiza la ejecución de la aplicación aunque no exista carga.Having a minimum makes sure your application is always running even under no load. Tener un máximo limita el posible costo total por hora.Having a maximum limits your total possible hourly cost. Se escala automáticamente entre estos dos extremos en función de las reglas que se creen.You automatically scale between these two extremes using rules you create.

Explicación del escalado automático.

Cuando se cumplen las condiciones de las reglas, se desencadenan una o varias acciones de escalado automático.When rule conditions are met, one or more autoscale actions are triggered. Puede agregar y quitar máquinas virtuales o realizar otras acciones.You can add and remove VMs, or perform other actions. En el siguiente diagrama conceptual se muestra este proceso.The following conceptual diagram shows this process.

Diagrama de flujo de escalado automático

La explicación siguiente se aplica a las partes del diagrama anterior.The following explanation applies to the pieces of the previous diagram.

Métricas de los recursosResource Metrics

Los recursos generan métricas, que procesan posteriormente las reglas.Resources emit metrics, these metrics are later processed by rules. Las métricas proceden de métodos diferentes.Metrics come via different methods. Los conjuntos de escalado de máquinas virtuales usan datos de telemetría de los agentes de Diagnósticos de Azure, mientras que la telemetría de Web Apps y Cloud Services proviene directamente de la infraestructura de Azure.Virtual machine scale sets use telemetry data from Azure diagnostics agents whereas telemetry for Web apps and Cloud services comes directly from the Azure Infrastructure. Algunas de las estadísticas que se utilizan frecuentemente son el uso de CPU, el uso de memoria, el número de subprocesos, la longitud de la cola y el uso del disco.Some commonly used statistics include CPU Usage, memory usage, thread counts, queue length, and disk usage. Para ver una lista de los datos de telemetría que se pueden utilizar, consulte Métricas comunes de escalado automático de Azure Insights.For a list of what telemetry data you can use, see Autoscale Common Metrics.

Métricas personalizadasCustom Metrics

También puede usar métricas personalizadas que las aplicaciones pueden generar.You can also leverage your own custom metrics that your application(s) may be emitting. Si ha configurado las aplicaciones para que envíen métricas a Application Insights, puede usarlas para tomar decisiones sobre si necesita escalar o no.If you have configured your application(s) to send metrics to Application Insights you can leverage those metrics to make decisions on whether to scale or not.

HoraTime

Las reglas basadas en programaciones emplean el huso horario UTC.Schedule-based rules are based on UTC. Debe establecer la zona horaria correctamente al configurar las reglas.You must set your time zone properly when setting up your rules.

ReglasRules

El diagrama solo muestra una única regla de escalado automático, pero puede tener muchas.The diagram shows only one autoscale rule, but you can have many of them. Puede crear reglas complejas de superposición según su situación.You can create complex overlapping rules as needed for your situation. Estos son algunos de los tipos de reglas:Rule types include

  • Basadas en métricas : por ejemplo, realizar esta acción cuando el uso de CPU sea superior al 50 %.Metric-based - For example, do this action when CPU usage is above 50%.
  • Basadas en tiempo : por ejemplo, desencadenar un webhook todos los sábados a las 8:00 en una zona horaria determinada.Time-based - For example, trigger a webhook every 8am on Saturday in a given time zone.

Las reglas basadas en métricas miden la carga de la aplicación y agregan o quitan máquinas virtuales en función de ella.Metric-based rules measure application load and add or remove VMs based on that load. Las reglas de programación permiten escalar al ver los modelos de tiempo de la carga, si quiere escalar antes de un posible aumento de carga o si esta disminuye.Schedule-based rules allow you to scale when you see time patterns in your load and want to scale before a possible load increase or decrease occurs.

Acciones y escalado automáticoActions and automation

Las reglas pueden desencadenar uno o varios tipos de acciones.Rules can trigger one or more types of actions.

  • Escalar : escalar o reducir horizontalmente máquinas virtualesScale - Scale VMs in or out
  • Enviar correo electrónico : enviar correo electrónico a los administradores y coadministradores de la suscripción, así como a otras direcciones de correo electrónico que especifiqueEmail - Send email to subscription admins, co-admins, and/or additional email address you specify
  • Automate via webhooks (Automatizar mediante webhooks): llamar a webhooks, que pueden desencadenar varias acciones dentro o fuera de Azure.Automate via webhooks - Call webhooks, which can trigger multiple complex actions inside or outside Azure. Dentro de Azure, puede iniciar runbooks de Azure Automation, Azure Function o Azure Logic Apps.Inside Azure, you can start an Azure Automation runbook, Azure Function, or Azure Logic App. La dirección URL de terceros de ejemplo fuera de Azure incluye servicios como Slack y Twilio.Example third-party URL outside Azure include services like Slack and Twilio.

Configuración de escalado automáticoAutoscale Settings

El escalado automático utiliza la siguiente terminología y estructura.Autoscale use the following terminology and structure.

  • El motor de escalado automático lee la configuración de escalado automático para determinar si se debe escalar hacia arriba o hacia abajo.An autoscale setting is read by the autoscale engine to determine whether to scale up or down. Contiene uno o más perfiles, información sobre el recurso de destino y la configuración de las notificaciones.It contains one or more profiles, information about the target resource, and notification settings.

    • Un perfil de escalado automático es una combinación de:An autoscale profile is a combination of a:

      • Una configuración de capacidad, que indica los valores mínimos, máximos y predeterminados para el número de instancias.capacity setting, which indicates the minimum, maximum, and default values for number of instances.

      • Un conjunto de reglas, cada una de las cuales incluye un desencadenador (tiempo o métrica) y una acción de escalado (escalado o reducción vertical).set of rules, each of which includes a trigger (time or metric) and a scale action (up or down).

      • Una periodicidad, que indica cuándo el escalado automático debe hacer entrar en vigor el perfil.recurrence, which indicates when autoscale should put this profile into effect.

        Puede tener varios perfiles, lo cual le permitirá ocuparse de diferentes requisitos coincidentes.You can have multiple profiles, which allow you to take care of different overlapping requirements. Puede tener perfiles de escalado automático diferentes, por ejemplo, para distintos momentos del día o días de la semana.You can have different autoscale profiles for different times of day or days of the week, for example.

    • La configuración de las notificaciones define qué notificaciones deben aparecer cuando se produce un evento de escalado automático en función de los criterios de los perfiles de configuración de escalado automático que cumpla.A notification setting defines what notifications should occur when an autoscale event occurs based on satisfying the criteria of one of the autoscale setting’s profiles. Con el escalado automático se pueden notificar a una o más direcciones de correo electrónico o realizar llamadas a uno o más webhooks.Autoscale can notify one or more email addresses or make calls to one or more webhooks.

Configuración, perfil y estructura de las reglas de escalado automático de Azure

La lista íntegra de campos y descripciones configurables se encuentra en la API de REST de escalado automático.The full list of configurable fields and descriptions is available in the Autoscale REST API.

Para ver ejemplos de código, consulte los siguientes artículos:For code examples, see

Escalado horizontal frente a escalado verticalHorizontal vs vertical scaling

El escalado automático solo escala horizontalmente, que es un aumento o una reducción del número de instancias de máquina virtual.Autoscale only scales horizontally, which is an increase ("out") or decrease ("in") in the number of VM instances. El escalado horizontal resulta más flexible en un entorno en la nube, ya que puede llegar a ejecutar miles de máquinas virtuales para administrar la carga.Horizontal is more flexible in a cloud situation as it allows you to run potentially thousands of VMs to handle load.

En contraste, el escalado vertical es diferente.In contrast, vertical scaling is different. Mantiene el mismo número de máquinas virtuales, pero hace que sean más o menos potentes.It keeps the same number of VMs, but makes the VMs more ("up") or less ("down") powerful. La potencia se mide en memoria, velocidad de CPU, espacio en disco, etc. El escalado vertical tiene más limitaciones,Power is measured in memory, CPU speed, disk space, etc. Vertical scaling has more limitations. ya que depende de la disponibilidad de hardware de mayor tamaño, que supera el límite rápidamente y puede variar según la región.It's dependent on the availability of larger hardware, which quickly hits an upper limit and can vary by region. El escalado vertical también suele requerir que se detenga y reinicie una máquina virtual.Vertical scaling also usually requires a VM to stop and restart.

Métodos de accesoMethods of access

Puede configurar el escalado automático en los siguientes lugares:You can set up autoscale via

Servicios compatibles con el escalado automáticoSupported services for autoscale

ServicioService Esquema y documentosSchema & Docs
Web AppsWeb Apps Escalado en Web AppsScaling Web Apps
Cloud ServicesCloud Services Escalado automático de un servicio en la nubeAutoscale a Cloud Service
Virtual Machines: ClásicoVirtual Machines: Classic Escalado de conjuntos de disponibilidad clásicos de máquina virtualScaling Classic Virtual Machine Availability Sets
Virtual Machines: Conjuntos de escalado de WindowsVirtual Machines: Windows Scale Sets Escalado de conjuntos de escalado de máquinas virtuales en WindowsScaling virtual machine scale sets in Windows
Virtual Machines: Conjuntos de escalado de LinuxVirtual Machines: Linux Scale Sets Escalado de conjuntos de escalado de máquinas virtuales en LinuxScaling virtual machine scale sets in Linux
Virtual Machines: Ejemplo de WindowsVirtual Machines: Windows Example Configuración avanzada de escalado automático con plantillas de Resource Manager para VM Scale SetsAdvanced Autoscale configuration using Resource Manager templates for VM Scale Sets
Servicio API ManagementAPI Management service Escalado automático de una instancia de Azure API ManagementAutomatically scale an Azure API Management instance

Pasos siguientesNext steps

Para más información sobre el escalado automático, consulte los tutoriales de escalado automático anteriores o los siguientes recursos:To learn more about autoscale, use the Autoscale Walkthroughs listed previously or refer to the following resources: