Inicio rápido: Configuración de la escalabilidad automática para aplicaciones en el plan dedicado y de consumo Estándar de Azure Spring Apps

Nota

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a: ✔️ Plan dedicado y de consumo Estándar (versión preliminar) ❌ Básico/Estándar ❌ Enterprise

En este artículo se describe cómo configurar reglas de escalabilidad automática para tus aplicaciones en el plan dedicado y de consumo estándar de Azure Spring Apps. El plan utiliza un entorno de Azure Container Apps para hospedar tus aplicaciones Spring y proporciona la siguiente administración y soporte:

  • Administra el escalado horizontal automático a través de un conjunto de reglas de escalado declarativo.
  • Admite todas las reglas de escalado que admite Azure Container Apps.

Para más información, consulta la documentación de Azure Container Apps.

Requisitos previos

Definición de escala

El escalado se define mediante la combinación de límites y reglas.

  • Los límites son el número mínimo y máximo de instancias que permite Spring.

    Límite de escala Valor predeterminado Valor mínimo Valor máximo
    Número mínimo de instancias por implementación 1 0 30
    Número máximo de instancias por implementación 10 1 30

    De forma predeterminada, el recuento mínimo de instancias de su aplicación Spring se establece en 1 para garantizar que su implementación siempre se esté ejecutando. Si deseas escalar a cero, puedes establecer el recuento mínimo de instancias en cero.

  • Las reglas son los criterios que el escalado automático cumple para agregar o quitar instancias. Las reglas de escala incluyen HTTP, TCP y reglas personalizadas, como se describe en la sección Reglas de escala de Establecer reglas de escala en Azure Container Apps.

    Si defines más de una regla de escala, el ajuste de escala automático comienza cuando se cumple la primera condición de cualquier regla.

  • El intervalo de sondeo y el período de recuperación son dos lapsos de tiempo que ocurren durante el ajuste de escala automático.

    • El intervalo de sondeo define el lapso de tiempo entre cada acción de sondeo de datos en tiempo real según lo definido por sus reglas. El intervalo de sondeo se establece en 30 segundos de forma predeterminada.
    • El período de enfriamiento se aplica solo cuando se escala a cero, por ejemplo, para esperar cinco minutos después de la última vez que el escalado automático verificó la cola de mensajes y estaba vacía.

Configurar ajustes de escalado automático

Puedes establecer la configuración de escalado automático para tu aplicación mediante Azure Portal o la CLI de Azure.

Utiliza los siguientes pasos para definir la configuración y las reglas de escalado automático.

  1. Inicie sesión en Azure Portal.
  2. Selecciona Azure Spring Apps en Servicios de Azure.
  3. En la columna Nombre, selecciona la instancia de Azure Spring Apps que deseas escalar automáticamente.
  4. En la página de información general de tu instancia de Azure Spring Apps, selecciona Aplicaciones en el panel de navegación.
  5. Selecciona la aplicación que deseas escalar automáticamente.
  6. En la página de descripción general de la aplicación seleccionada, selecciona Escalar horizontalmente en el panel de navegación.
  7. En la página Escalar horizontalmente (versión preliminar), selecciona la implementación que deseas escalar automáticamente.
  8. Configurar los límites de instancia de la implementación.
  9. Selecciona Agregar para agregar las reglas de escalado.

Screenshot of the Azure portal preview version showing the Scale out page for an app in an Azure Spring Apps instance.

Reglas de escalado personalizadas

Para obtener información sobre cómo definir reglas personalizadas, consulte Escaladores de Keda. En las secciones siguientes se muestran dos ejemplos de configuración de reglas de escalado en MySQL y Cron.

Configuración de reglas de escalado automático en la base de datos MySQL

Los siguientes comandos de la CLI muestran cómo escalar automáticamente la aplicación Spring basada en el Escalador Keda de MySQL. En primer lugar, cree un secreto para almacenar la cadena de conexión SQL. Este secreto se usa para la autenticación de la regla de escalado. A continuación, configure una regla que escale la aplicación en función del recuento de filas de una tabla.

az spring app update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>" 

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type mysql \
    --scale-rule-name <your rule name> \
    --scale-rule-auth "connectionString=mysqlconnectionstring" \
    --scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
    --min-replicas 0 \
    --max-replicas 3

Creación de una regla basada en cron de Linux

Los siguientes comandos muestran cómo configurar una regla basada en el escalador Keda de Cron. Las réplicas se escalan al número deseado durante el intervalo de tiempo cron.

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type cron \
    --scale-rule-name testscalerule \
    --scale-rule-metadata timezone="Asia/Shanghai" \
                          start="10 * * * *" \
                          end="15 * * * *" \
                          desiredReplicas="3" \
    --min-replicas 0 \
    --max-replicas 3

Eventos de escalado

Puede encontrar los eventos de escalado desde los registros del sistema de la aplicación contenedora subyacente y filtrar EventSource mediante KEDA, como se muestra en el ejemplo siguiente:

ContainerAppSystemLogs_CL 
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'

Limpieza de recursos

Asegúrate de eliminar los recursos creados en este tutorial cuando ya no los necesites. Para eliminar los recursos, basta con eliminar el grupo de recursos que los contiene. Puedes eliminar el grupo de recursos mediante Azure Portal. Como alternativa, puedes eliminar el grupo de recursos mediante la CLI de Azure con estos comandos:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Pasos siguientes