Escalado automático y App Service Environment v1Autoscaling and App Service Environment v1

Nota

Este artículo trata sobre App Service Environment v1.This article is about the App Service Environment v1. Hay una versión más reciente de App Service Environment que resulta más fácil de usar y se ejecuta en una infraestructura más eficaz.There is a newer version of the App Service Environment that is easier to use and runs on more powerful infrastructure. Para aprender más sobre la nueva versión, consulte Introducción a App Service Environment.To learn more about the new version start with the Introduction to the App Service Environment.

Los entornos de Azure App Service admiten el escalado automático.Azure App Service environments support autoscaling. Puede usar el escalado automático basado en métricas o programación grupos de trabajo individuales.You can autoscale individual worker pools based on metrics or schedule.

Opciones de escalado automático para un grupo de trabajo.

El escalado automático optimiza el uso de recursos gracias al crecimiento y reducción automáticos de un entorno de App Service para ajustarse a su presupuesto o a su perfil de carga.Autoscaling optimizes your resource utilization by automatically growing and shrinking an App Service environment to fit your budget and or load profile.

Configuración del escalado automático de grupo de trabajoConfigure worker pool autoscale

Puede acceder a la funcionalidad de escalado automático desde la pestaña Configuración del grupo de trabajo.You can access the autoscale functionality from the Settings tab of the worker pool.

Pestaña Configuración del grupo de trabajo.

A partir de ahí, la interfaz debe resultar bastante familiar ya que se trata de la misma experiencia que ve al escala un plan de App Service.From there, the interface should be fairly familiar since it is the same experience that you see when you scale an App Service plan.

Configuración de la escala manual.

También puede configurar un perfil de escalado automático.You can also configure an autoscale profile.

Configuración del escalado automático.

Los perfiles de escalado automático resultan útiles para establecer límites en la escala.Autoscale profiles are useful to set limits on your scale. De este modo tener una experiencia de rendimiento coherente, mediante el establecimiento de un valor de escala de límite inferior (1) y un techo de gasto predecible, mediante el establecimiento de un límite superior (2).This way, you can have a consistent performance experience by setting a lower bound scale value (1) and a predictable spend cap by setting an upper bound (2).

Configuración de la escala en el perfil.

Después de definir un perfil, puede agregar reglas de escalado automático para escalar o reducir verticalmente el número de instancias en el grupo de trabajo dentro de los límites definidos por el perfil.After you define a profile, you can add autoscale rules to scale up or down the number of instances in the worker pool within the bounds defined by the profile. Las reglas de escalado automático se basan en las métricas.Autoscale rules are based on metrics.

Regla de escala.

Se puede usar cualquier grupo de trabajo o métrica de front-end para definir las reglas de escalado automático.Any worker pool or front-end metrics can be used to define autoscale rules. Son las mismas métricas que puede supervisar en los gráficos de la hoja de recursos o para las que puede configurar alertas.These metrics are the same metrics you can monitor in the resource blade graphs or set alerts for.

Ejemplo de escalado automáticoAutoscale example

La mejor manera de ilustrar el escalado automático de un entorno de App Service es mediante un escenario.Autoscale of an App Service environment can best be illustrated by walking through a scenario.

Este artículo explica todas las consideraciones necesarias para configurar el escalado automático.This article explains all the necessary considerations when you set up autoscale. En este artículo veremos todas las interacciones que entran en juego cuando se aplica el escalado automático en los App Service Environment que se hospedan en un App Service Environment.The article walks you through the interactions that come into play when you factor in autoscaling App Service environments that are hosted in App Service Environment.

Introducción al escenarioScenario introduction

Frank es un administrador del sistema para una empresa que ha migrado parte de las cargas de trabajo que administran en un entorno de App Service.Frank is a sysadmin for an enterprise who has migrated a portion of the workloads that they manage to an App Service environment.

El entorno de App Service está configurado a escala manual de la siguiente manera:The App Service environment is configured to manual scale as follows:

  • Servidores front-end: 3Front ends: 3
  • Grupo de trabajo 1: 10Worker pool 1: 10
  • Grupo de trabajo 2: 5Worker pool 2: 5
  • Grupo de trabajo 3: 5Worker pool 3: 5

El grupo de trabajo 1 se usa para las cargas de trabajo de producción, en tanto que los grupos de trabajo 2 y 3 se usan para las cargas de trabajo de control de calidad y desarrollo.Worker pool 1 is used for production workloads, while worker pool 2 and worker pool 3 are used for quality assurance (QA) and development workloads.

Los planes de App Service de QA y desarrollo están configurados para la escala manual.The App Service plans for QA and dev are configured to manual scale. El plan de App Service de producción se establece en escalado automático para tratar con las variaciones de carga y el tráfico.The production App Service plan is set to autoscale to deal with variations in load and traffic.

Frank está muy familiarizado con la aplicación.Frank is very familiar with the application. Saben que las horas pico de carga están entre las 9:00 A.M. y 6:00 P.M., porque se trata de una aplicación de línea de negocio (LOB) que los empleados usan mientras están en la oficina.They know that the peak hours for load are between 9:00 AM and 6:00 PM because this is a line-of-business (LOB) application that employees use while they are in the office. El uso cae después, una vez que los usuarios han terminado la jornada.Usage drops after that when users are done for that day. Fuera de las horas punta, sigue habiendo cierta carga porque los usuarios pueden acceder de forma remota a la aplicación mediante sus dispositivos móviles o equipos domésticos.Outside peak hours, there is still some load because users can access the app remotely by using their mobile devices or home PCs. El plan de App Service de producción ya está configurado para el escalado automático en función del uso de CPU con las reglas siguientes:The production App Service plan is already configured to autoscale based on CPU usage with the following rules:

Configuración específica para las aplicaciones LOB.

Perfil de escalado automático: Días laborables: plan de App ServiceAutoscale profile – Weekdays – App Service plan Perfil de escalado automático: Fines de semana: plan de App ServiceAutoscale profile – Weekends – App Service plan
Nombre: perfil Día laborableName: Weekday profile Nombre: perfil Fin de semanaName: Weekend profile
Escalar por: reglas de rendimiento y programaciónScale by: Schedule and performance rules Escalar por: reglas de rendimiento y programaciónScale by: Schedule and performance rules
Perfil: Días de la semanaProfile: Weekdays Perfil: Fin de semanaProfile: Weekend
Tipo: RepeticiónType: Recurrence Tipo: RepeticiónType: Recurrence
Rango objetivo: de 5 a 20 instanciasTarget range: 5 to 20 instances Rango objetivo: de 3 a 10 instanciasTarget range: 3 to 10 instances
Días: lunes, martes, miércoles, jueves, viernesDays: Monday, Tuesday, Wednesday, Thursday, Friday Días: sábado, domingoDays: Saturday, Sunday
Hora de inicio: 9:00 a. m.Start time: 9:00 AM Hora de inicio: 9:00 a. m.Start time: 9:00 AM
Zona horaria: UTC-08Time zone: UTC-08 Zona horaria: UTC-08Time zone: UTC-08
Regla de escalado automático (escalar verticalmente)Autoscale rule (Scale Up) Regla de escalado automático (escalar verticalmente)Autoscale rule (Scale Up)
Recurso: producción (App Service Environment)Resource: Production (App Service Environment) Recurso: producción (App Service Environment)Resource: Production (App Service Environment)
Métrica: % de CPUMetric: CPU % Métrica: % de CPUMetric: CPU %
Operación: mayor que el 60 %Operation: Greater than 60% Operación: mayor que el 80 %Operation: Greater than 80%
Duración: 5 minutosDuration: 5 Minutes Duración: 10 minutosDuration: 10 Minutes
Agregación de tiempo: PromedioTime aggregation: Average Agregación de tiempo: PromedioTime aggregation: Average
Acción: aumentar recuento en 2Action: Increase count by 2 Acción: aumentar recuento en 1Action: Increase count by 1
Tiempo de finalización (minutos): 15Cool down (minutes): 15 Tiempo de finalización (minutos): 20Cool down (minutes): 20
Regla de escalado automático (reducir verticalmente)Autoscale rule (Scale Down) Regla de escalado automático (reducir verticalmente)Autoscale rule (Scale Down)
Recurso: producción (App Service Environment)Resource: Production (App Service Environment) Recurso: producción (App Service Environment)Resource: Production (App Service Environment)
Métrica: % de CPUMetric: CPU % Métrica: % de CPUMetric: CPU %
Operación: menor que el 30 %Operation: Less than 30% Operación: menor que el 20 %Operation: Less than 20%
Duración: 10 minutosDuration: 10 minutes Duración: 15 minutosDuration: 15 minutes
Agregación de tiempo: PromedioTime aggregation: Average Agregación de tiempo: PromedioTime aggregation: Average
Acción: reducir el recuento en 1Action: Decrease count by 1 Acción: reducir el recuento en 1Action: Decrease count by 1
Tiempo de finalización (minutos): 20Cool down (minutes): 20 Tiempo de finalización (minutos): 10Cool down (minutes): 10

Tasa de inflación del plan de App ServiceApp Service plan inflation rate

Los planes de App Service configurados para el escalado automático se realizan a una tasa máxima por hora.App Service plans that are configured to autoscale do so at a maximum rate per hour. Esta tasa se puede calcular en función de los valores indicados en la regla de escalado automático.This rate can be calculated based on the values provided on the autoscale rule.

Comprender y calcular la tasa de inflación del plan de App Service es importante para el escalado automático del entorno de App Service, ya que los cambios en el escalado de un grupo de trabajo no son instantáneos.Understanding and calculating the App Service plan inflation rate is important for App Service environment autoscale because scale changes to a worker pool are not instantaneous.

La tasa de inflación del plan de App Service se calcula del siguiente modo:The App Service plan inflation rate is calculated as follows:

Cálculo de la tasa de inflación del plan de App Service.

De acuerdo con la regla Escalado automático: escalar verticalmente del perfil Días laborables del plan de App Service de producción:Based on the Autoscale – Scale Up rule for the Weekday profile of the production App Service plan:

Tasa de inflación del plan de App Service para los días laborables basándose en el escalado automático: regla escalar verticalmente.

En el caso de la regla Escalado automático: escalar verticalmente del perfil Fines de semana del plan de App Service de producción, la fórmula daría como resultado:In the case of the Autoscale – Scale Up rule for the Weekend profile of the production App Service plan, the formula would resolve to:

Tasa de inflación del plan de App Service para los fines de semana basado en el escalado automático: regla escalar verticalmente.

Este valor también se puede calcular para operaciones de reducción vertical.This value can also be calculated for scale-down operations.

De acuerdo con la regla Escalado automático: reducir verticalmente del perfil Días laborables del plan de App Service de producción, sería:Based on the Autoscale – Scale Down rule for the Weekday profile of the production App Service plan, this would look as follows:

Tasa de inflación del plan de App Service para los días laborables basándose en el escalado automático: regla reducir verticalmente.

En el caso de la regla Escalado automático: reducir verticalmente del perfil Fines de semana del plan de App Service de producción, la fórmula daría como resultado:In the case of the Autoscale – Scale Down rule for the Weekend profile of the production App Service plan, the formula would resolve to:

Tasa de inflación del plan de App Service para los fines de semana basado en el escalado automático: regla reducir verticalmente.

El plan de App Service de producción puede crecer a una tasa máxima de ocho instancias por hora durante la semana y de cuatro instancias por hora durante los fines de semana.The production App Service plan can grow at a maximum rate of eight instances/hour during the week and four instances/hour during the weekend. Puede liberar las instancias a una tasa máxima de cuatro instancias por hora durante la semana y seis instancias por hora durante los fines de semana.It can release instances at a maximum rate of four instances/hour during the week and six instances/hour during weekends.

Si se hospedan varios planes de App Service en un grupo de trabajo, debe calcular la tasa de inflación total como la suma de la tasa de inflación de todos los planes de App Service que se hospedan en dicho grupo de trabajo.If multiple App Service plans are being hosted in a worker pool, you have to calculate the total inflation rate as the sum of the inflation rate for all the App Service plans that are being hosting in that worker pool.

Cálculo de la tasa de inflación total para varios planes de App Service hospedados en un grupo de trabajo.

Uso de la tasa de inflación del plan de App Service para definir reglas de escalado automático del grupo de trabajoUse the App Service plan inflation rate to define worker pool autoscale rules

Los grupos de trabajo que hospedan planes del App Service que están configurados para el escalado automático tendrán que asignar un búfer de capacidad.Worker pools that host App Service plans that are configured to autoscale need to be allocated a buffer of capacity. El búfer permite que las operaciones de escalado automático aumenten y reduzcan el plan de App Service según sea necesario.The buffer allows for the autoscale operations to grow and shrink the App Service plan as needed. El búfer mínimo será la tasa de inflación total del plan de App Service calculada.The minimum buffer would be the calculated Total App Service Plan Inflation Rate.

Puesto que las operaciones de escalado del entorno de App Service tardan algún tiempo en aplicarse, deben tenerse en cuenta los cambios de demanda adicionales que se pueden producir mientras están en curso una operación de escalado.Because App Service environment scale operations take some time to apply, any change should account for further demand changes that could happen while a scale operation is in progress. Para dar cabida a esta latencia, se recomienda usar la tasa de inflación total del plan de App Service calculada como el número mínimo de instancias que se agregan para cada operación de escalado automático.To accommodate this latency, we recommend that you use the calculated Total App Service Plan Inflation Rate as the minimum number of instances that are added for each autoscale operation.

Con esta información, Frank puede definir el siguiente perfil y las siguientes reglas de escalado automático:With this information, Frank can define the following autoscale profile and rules:

Ejemplo de reglas de perfil de escalado automático para línea de negocio.

Perfil de escalado automático: Días laborablesAutoscale profile – Weekdays Perfil de escalado automático: Fines de semanaAutoscale profile – Weekends
Nombre: perfil Día laborableName: Weekday profile Nombre: perfil Fin de semanaName: Weekend profile
Escalar por: reglas de rendimiento y programaciónScale by: Schedule and performance rules Escalar por: reglas de rendimiento y programaciónScale by: Schedule and performance rules
Perfil: Días de la semanaProfile: Weekdays Perfil: Fin de semanaProfile: Weekend
Tipo: RepeticiónType: Recurrence Tipo: RepeticiónType: Recurrence
Rango objetivo: de 13 a 25 instanciasTarget range: 13 to 25 instances Rango objetivo: de 6 a 15 instanciasTarget range: 6 to 15 instances
Días: lunes, martes, miércoles, jueves, viernesDays: Monday, Tuesday, Wednesday, Thursday, Friday Días: sábado, domingoDays: Saturday, Sunday
Hora de inicio: 7:00 a. m.Start time: 7:00 AM Hora de inicio: 9:00 a. m.Start time: 9:00 AM
Zona horaria: UTC-08Time zone: UTC-08 Zona horaria: UTC-08Time zone: UTC-08
Regla de escalado automático (escalar verticalmente)Autoscale rule (Scale Up) Regla de escalado automático (escalar verticalmente)Autoscale rule (Scale Up)
Recurso: grupo de trabajo 1Resource: Worker pool 1 Recurso: grupo de trabajo 1Resource: Worker pool 1
Métrica: WorkersAvailableMetric: WorkersAvailable Métrica: WorkersAvailableMetric: WorkersAvailable
Operación: menor que 8Operation: Less than 8 Operación: menor que 3Operation: Less than 3
Duración: 20 minutosDuration: 20 minutes Duración: 30 minutosDuration: 30 minutes
Agregación de tiempo: PromedioTime aggregation: Average Agregación de tiempo: PromedioTime aggregation: Average
Acción: aumentar recuento en 8Action: Increase count by 8 Acción: aumentar recuento en 3Action: Increase count by 3
Tiempo de finalización (minutos): 180Cool down (minutes): 180 Tiempo de finalización (minutos): 180Cool down (minutes): 180
Regla de escalado automático (reducir verticalmente)Autoscale rule (Scale Down) Regla de escalado automático (reducir verticalmente)Autoscale rule (Scale Down)
Recurso: grupo de trabajo 1Resource: Worker pool 1 Recurso: grupo de trabajo 1Resource: Worker pool 1
Métrica: WorkersAvailableMetric: WorkersAvailable Métrica: WorkersAvailableMetric: WorkersAvailable
Operación: mayor que 8Operation: Greater than 8 Operación: mayor que 3Operation: Greater than 3
Duración: 20 minutosDuration: 20 minutes Duración: 15 minutosDuration: 15 minutes
Agregación de tiempo: PromedioTime aggregation: Average Agregación de tiempo: PromedioTime aggregation: Average
Acción: reducir el recuento en 2Action: Decrease count by 2 Acción: reducir el recuento en 3Action: Decrease count by 3
Tiempo de finalización (minutos): 120Cool down (minutes): 120 Tiempo de finalización (minutos): 120Cool down (minutes): 120

El rango objetivo definido en el perfil se calcula sumando el número mínimo de instancias definido en el perfil para el plan de App Service al búfer.The Target range defined in the profile is calculated by the minimum instances defined in the profile for the App Service plan + buffer.

El rango máximo debe ser la suma de todos los rangos máximos de todos los planes de App Service alojados en el grupo de trabajo.The Maximum range would be the sum of all the maximum ranges for all App Service plans hosted in the worker pool.

El recuento de aumento de las reglas de escalado vertical se debe configurar al menos en 1X de la tasa de inflación del plan de App Service para el escalado vertical.The Increase count for the scale up rules should be set to at least 1X the App Service Plan Inflation Rate for scale up.

El recuento de reducción se puede ajustar en un valor situado entre 1/2X y 1X de la tasa de inflación del plan de App Service para la reducción vertical.Decrease count can be adjusted to something between 1/2X or 1X the App Service Plan Inflation Rate for scale down.

Escalado automático para un grupo de servidores front-endAutoscale for front-end pool

Las reglas de escalado automático de front-end son más sencillas que las de los grupos de trabajo.Rules for front-end autoscale are simpler than for worker pools. En primer lugar, debePrimarily, you should
asegurarse de que dicha duración de la medida y los temporizadores de enfriamiento tienen en cuenta que las operaciones de escala no son instantáneas en un plan de App Service.make sure that duration of the measurement and the cooldown timers consider that scale operations on an App Service plan are not instantaneous.

En este escenario, Frank sabe que la tasa de errores aumenta una vez que los servidores front-end alcanzan el 80 % de uso de CPU y configura la regla de escalado automático para que aumente las instancias como sigue:For this scenario, Frank knows that the error rate increases after front ends reach 80% CPU utilization and sets the autoscale rule to increase instances as follows:

Configuración del escalado automático para un grupo de servidores front-end.

Perfil de escalado automático: Servidores front-endAutoscale profile – Front ends
Nombre: escalabilidad automática: Servidores front-endName: Autoscale – Front ends
Escalar por: reglas de rendimiento y programaciónScale by: Schedule and performance rules
Perfil: todos los díasProfile: Everyday
Tipo: RepeticiónType: Recurrence
Rango objetivo: de 3 a 10 instanciasTarget range: 3 to 10 instances
Días: todos los díasDays: Everyday
Hora de inicio: 9:00 a. m.Start time: 9:00 AM
Zona horaria: UTC-08Time zone: UTC-08
Regla de escalado automático (escalar verticalmente)Autoscale rule (Scale Up)
Recurso: grupo de front-endResource: Front-end pool
Métrica: % de CPUMetric: CPU %
Operación: mayor que el 60 %Operation: Greater than 60%
Duración: 20 minutosDuration: 20 minutes
Agregación de tiempo: PromedioTime aggregation: Average
Acción: aumentar recuento en 3Action: Increase count by 3
Tiempo de finalización (minutos): 120Cool down (minutes): 120
Regla de escalado automático (reducir verticalmente)Autoscale rule (Scale Down)
Recurso: grupo de trabajo 1Resource: Worker pool 1
Métrica: % de CPUMetric: CPU %
Operación: menor que el 30 %Operation: Less than 30%
Duración: 20 minutosDuration: 20 Minutes
Agregación de tiempo: PromedioTime aggregation: Average
Acción: reducir el recuento en 3Action: Decrease count by 3
Tiempo de finalización (minutos): 120Cool down (minutes): 120