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 de Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retiro 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 de consumo estándar 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 obtener más información, consulte Migrar el plan de consumo y dedicado Azure Spring Apps Standard a Azure Container Apps.
Este artículo se aplica a:✅ Consumo Estándar y dedicado (Versión preliminar) ❎ Basic/Standard ❎ 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
- Suscripción a Azure. Si no tienes una suscripción de Azure, consulta la Cuenta gratuita de Azure antes de comenzar.
- Una instancia de servicio del plan Estándar dedicado y de consumo de Azure Spring Apps. Para más información, vea Inicio rápido: aprovisionamiento de una instancia de servicio del plan Estándar de consumo y dedicado de Azure Spring Apps.
- Una aplicación de Spring implementada en Azure Spring Apps.
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.
- Inicie sesión en Azure Portal.
- Selecciona Azure Spring Apps en Servicios de Azure.
- En la columna Nombre, selecciona la instancia de Azure Spring Apps que deseas escalar automáticamente.
- En la página de información general de tu instancia de Azure Spring Apps, selecciona Aplicaciones en el panel de navegación.
- Selecciona la aplicación que deseas escalar automáticamente.
- En la página de descripción general de la aplicación seleccionada, selecciona Escalar horizontalmente en el panel de navegación.
- En la página Escalar horizontalmente (versión preliminar), selecciona la implementación que deseas escalar automáticamente.
- Configurar los límites de instancia de la implementación.
- Selecciona Agregar para agregar las reglas de escalado.
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.
Nota:
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación descrito en este procedimiento, como para bases de datos, memorias caché, mensajería o servicios de inteligencia artificial, requiere un grado de confianza muy alto en la aplicación y conlleva riesgos que no están presentes en otros flujos. Use este flujo solo cuando las opciones más seguras, como las identidades administradas para conexiones sin contraseña o sin claves, no sean viables. En el caso de las operaciones de máquina local, prefiera identidades de usuario para conexiones sin contraseña o sin claves.
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 ..."