Compartir vía


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:

Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retirada de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan Estándar por consumo y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.

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.

Captura de pantalla de la versión preliminar de Azure Portal que muestra la página Escalar horizontalmente para una aplicación en una instancia de Azure Spring Apps.

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